initial commit
This commit is contained in:
commit
1eca57b40e
9 files changed
+441
No files matched your search
@@ -0,0 +1,24 @@
|
||||
(include "bar/widget.yuck")
|
||||
|
||||
(include "bar/widgets/sys.yuck")
|
||||
(include "bar/widgets/wss.yuck")
|
||||
(include "bar/widgets/info.yuck")
|
||||
|
||||
(defwidget bar [monitor]
|
||||
(centerbox :class "bar" :orientation "h"
|
||||
(bar-left)
|
||||
(bar-center :monitor monitor)
|
||||
(bar-right)))
|
||||
|
||||
(defwidget bar-left []
|
||||
(box :class "bar-left" :space-evenly false :halign "start"
|
||||
(bat) (cpu) (temp) (mem) (disk)))
|
||||
|
||||
(defwidget bar-center [monitor]
|
||||
(box :class "bar-center" :space-evenly false
|
||||
(workspaces :monitor monitor)))
|
||||
|
||||
(defwidget bar-right []
|
||||
(box :class "bar-right" :space-evenly false :halign "end"
|
||||
(brightness) (vol) (net) (date) (time)))
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
(defvar eww "eww")
|
||||
|
||||
(defwidget metric [label value min max onchange]
|
||||
(box :orientation "h"
|
||||
:class "metric mod"
|
||||
:space-evenly false
|
||||
(box :class "label" label)
|
||||
(scale :min min
|
||||
:max max
|
||||
:active {onchange != ""}
|
||||
:value value
|
||||
:onchange onchange)))
|
||||
|
||||
(defwidget hover-metric [icon value ?class revealname reveal onchange]
|
||||
(eventbox :onhover "${eww} update ${revealname}=true"
|
||||
:onhoverlost "${eww} update ${revealname}=false"
|
||||
(box :orientation "h"
|
||||
:class "metric mod"
|
||||
:space-evenly false
|
||||
(box :class {class ?: ""} {icon})
|
||||
(revealer :transition "slideleft"
|
||||
:reveal reveal
|
||||
:duration "300ms"
|
||||
(scale :min 0
|
||||
:max 100
|
||||
:value value
|
||||
:onchange onchange)))))
|
||||
|
||||
(defwidget hover-text [icon value ?class revealname reveal]
|
||||
(eventbox :onhover "${eww} update ${revealname}=true"
|
||||
:onhoverlost "${eww} update ${revealname}=false"
|
||||
(box :orientation "h"
|
||||
:class "metric mod"
|
||||
:space-evenly false
|
||||
(box :class {class ?: ""} {icon})
|
||||
(revealer :transition "slideleft"
|
||||
:reveal net_reveal
|
||||
:duration "300ms"
|
||||
(label :text {value}
|
||||
:class "purple")))))
|
||||
|
||||
(defwidget status [label poll]
|
||||
(box :orientation "h"
|
||||
:class "metric mod"
|
||||
:space-evenly false
|
||||
(box :class "label" label)
|
||||
(text :poll poll)))
|
||||
|
||||
(defwidget text [poll]
|
||||
(box :class "text mod"
|
||||
poll))
|
||||
|
||||
(defwidget circle [value ?icon class]
|
||||
(box :class "mod"
|
||||
(circular-progress :value value
|
||||
:width 30
|
||||
:class "circle-bar ${class}"
|
||||
:thickness 4
|
||||
:start-at 75
|
||||
(label :text {icon ?: ""}
|
||||
:class "circle ${class}"))))
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
(defvar vol_reveal false)
|
||||
(defvar bright_reveal false)
|
||||
(defvar net_reveal false)
|
||||
|
||||
(defpoll vol :interval "2s" "wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print $2 * 100}'")
|
||||
(defwidget vol []
|
||||
(hover-metric :icon {vol < 33 ? "" : vol < 66 ? "" : ""}
|
||||
:value vol
|
||||
:class "green"
|
||||
:revealname "vol_reveal"
|
||||
:reveal vol_reveal
|
||||
:onchange "wpctl set-volume @DEFAULT_SINK@ {}% && eww update vol={}"))
|
||||
|
||||
(defpoll bright :interval "10s" "light")
|
||||
(defwidget brightness []
|
||||
(hover-metric :icon ""
|
||||
:value bright
|
||||
:class "yellow"
|
||||
:revealname "bright_reveal"
|
||||
:reveal bright_reveal
|
||||
:onchange "light -S {}%"))
|
||||
|
||||
(defpoll net :interval "2s" "iw dev wlan0 link | awk 'NR==2 {print $2}'")
|
||||
(defwidget net []
|
||||
(hover-text :icon " "
|
||||
:value net
|
||||
:class "cyan"
|
||||
:revealname "net_reveal"
|
||||
:reveal net_reveal))
|
||||
|
||||
(defpoll time :interval "1s" "date '+%H:%M:%S'")
|
||||
(defwidget time []
|
||||
(text :poll time))
|
||||
|
||||
(defpoll date :interval "10s" "date '+%y-%m-%d'")
|
||||
(defwidget date []
|
||||
(text :poll date))
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
(defwidget cpu []
|
||||
(circle :value {EWW_CPU.avg}
|
||||
:icon ""
|
||||
:class "cyan"))
|
||||
|
||||
(defwidget temp []
|
||||
(circle :value {EWW_TEMPS.CORETEMP_PACKAGE_ID_0}
|
||||
:icon ""
|
||||
:class "magenta"))
|
||||
|
||||
(defwidget mem []
|
||||
(circle :value {EWW_RAM.used_mem_perc}
|
||||
:icon ""
|
||||
:class "yellow"))
|
||||
|
||||
(defwidget disk []
|
||||
(circle :value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
|
||||
:icon ""
|
||||
:class "red"))
|
||||
|
||||
(defwidget bat []
|
||||
(circle :value {EWW_BATTERY.BAT0.capacity}
|
||||
:icon "⏻"
|
||||
:class "green"))
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
;; (deflisten wslist0
|
||||
;; "scripts/getwss eDP-1")
|
||||
;; (deflisten wslist1
|
||||
;; "scripts/getwss DP-")
|
||||
(deflisten wslist0
|
||||
"scripts/getwss 0")
|
||||
(deflisten wslist1
|
||||
"scripts/getwss 1")
|
||||
(defwidget workspaces [monitor]
|
||||
(box :class "workspaces"
|
||||
(for entry in {monitor == 0 ? wslist0 : wslist1}
|
||||
(button :class "${
|
||||
entry.urgent ? "urgent"
|
||||
: entry.focused ? "focused"
|
||||
: "unfocused"
|
||||
} id${entry.id}"
|
||||
:onclick "hyprctl dispatch workspace ${entry.id}"
|
||||
{entry.name}
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user