2024-10-21 09:34:11 +02:00
|
|
|
; Brightness
|
|
|
|
(defpoll brightness :interval "1m" "cat /sys/class/backlight/amdgpu_bl1/brightness")
|
|
|
|
(defvar brightness-icons '["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]')
|
|
|
|
(defvar brightness-slide false)
|
|
|
|
|
|
|
|
; Battery
|
|
|
|
(defvar battery-icons '{"Full": {"10": ""}, "Charging": ["", "", "", "", "", "", "", "", "", "", ""], "Discharging": ["", "", "", "", "", "", "", "", "", "", ""]}')
|
|
|
|
|
|
|
|
; DateTime
|
|
|
|
(defpoll datetime :interval "1s" "date +'%a %e %b %X'")
|
|
|
|
(defpoll month :interval "1m" "date +'%m'")
|
|
|
|
(defpoll day :interval "1m" "date +'%d'")
|
|
|
|
(defpoll year :interval "1m" "date +'%Y'")
|
|
|
|
|
2024-10-21 09:58:57 +02:00
|
|
|
; Window Title
|
|
|
|
(deflisten window-title "hyprctl activewindow -j | jq --raw-output .title; socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | stdbuf -o0 awk -F '>>|,' '/^activewindow>>/{print $3}'")
|
|
|
|
|
2024-10-21 09:34:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
; Widgets
|
|
|
|
(defwidget bar-left []
|
|
|
|
(box :halign "start"
|
|
|
|
:space-evenly false
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2024-10-21 09:58:57 +02:00
|
|
|
(defwidget bar-middle []
|
|
|
|
(label :limit-width 2
|
|
|
|
:text "${window-title}"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2024-10-21 09:34:11 +02:00
|
|
|
(defwidget bar-right []
|
|
|
|
(box :halign "end"
|
|
|
|
:space-evenly false
|
|
|
|
(brightness :brightness {brightness})
|
|
|
|
(battery :percent {EWW_BATTERY.BAT0.capacity}
|
|
|
|
:status {EWW_BATTERY.BAT0.status}
|
|
|
|
)
|
|
|
|
(ram)
|
|
|
|
(cpu-temp)
|
|
|
|
(label :text " ${round(EWW_CPU.avg, 0)}%"
|
|
|
|
:tooltip " ${arraylength(EWW_CPU.cores)} cores available"
|
|
|
|
)
|
|
|
|
(tooltip
|
|
|
|
(calendar :day {day}
|
|
|
|
:month {month}
|
|
|
|
:year {year}
|
|
|
|
)
|
|
|
|
(label :text " ${datetime}")
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
(defwidget brightness [brightness]
|
|
|
|
(eventbox :onhover "${EWW_CMD} update brightness-slide=true"
|
|
|
|
:onhoverlost "${EWW_CMD} update brightness-slide=false"
|
|
|
|
(box :space-evenly false
|
|
|
|
(label :text "${brightness-icons[round(brightness / 18.2, 0)]} ${round(brightness /255 * 100, 0)}%")
|
|
|
|
(revealer :transition "slideleft"
|
|
|
|
:reveal {brightness-slide}
|
|
|
|
(scale :value {brightness}
|
|
|
|
:min 0
|
|
|
|
:max 255
|
|
|
|
:onchange "echo {} > /sys/class/backlight/amdgpu_bl1/brightness; eww update brightness={}"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
(defwidget battery [percent status]
|
|
|
|
(label :text "${battery-icons[status][round(percent / 10, 0)]} ${percent}%"
|
|
|
|
:tooltip "${percent}% (${status})"
|
|
|
|
:class "${percent <= 30 ? percent <= 15 ? 'crit' : 'alert' : ''}"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
(defwidget ram []
|
|
|
|
(label :text " ${round(EWW_RAM.used_mem / 1073741824, 2)}GiB"
|
|
|
|
:tooltip " ${round(EWW_RAM.used_mem / 1073741824, 2)}GiB out of ${round(EWW_RAM.total_mem / 1073741824, 2)}GiB used"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
(defwidget threshold [val unit alert-val crit-val icon alert-icon crit-icon]
|
|
|
|
(label :text "${val < alert-val ? icon : (val < crit-val ? alert-icon : crit-icon)} ${round(val, 0)}${unit}"
|
|
|
|
:class "${val < alert-val ? '' : (val < crit-val ? 'alert' : 'crit')}"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
(defwidget cpu-temp []
|
|
|
|
(threshold :val {EWW_TEMPS.K10TEMP_TCTL}
|
|
|
|
:unit "°C"
|
|
|
|
:alert-val 65
|
|
|
|
:crit-val 75
|
|
|
|
:icon ""
|
|
|
|
:alert-icon ""
|
|
|
|
:crit-icon ""
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
; Bar
|
|
|
|
(defwidget bar []
|
|
|
|
(box
|
|
|
|
(bar-left)
|
2024-10-21 09:58:57 +02:00
|
|
|
(bar-middle)
|
2024-10-21 09:34:11 +02:00
|
|
|
(bar-right)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
(defwindow bar :monitor 0
|
|
|
|
:geometry (geometry :x "0%"
|
|
|
|
:y "0%"
|
|
|
|
:width "100%"
|
|
|
|
:anchor "top center"
|
|
|
|
)
|
|
|
|
:stacking "fg"
|
|
|
|
:exclusive true
|
|
|
|
(bar)
|
|
|
|
)
|