; 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'") ; 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}'") ; Widgets (defwidget bar-left [] (box :halign "start" :space-evenly false ) ) (defwidget bar-middle [] (label :limit-width 2 :text "${window-title}" ) ) (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) (bar-middle) (bar-right) ) ) (defwindow bar :monitor 0 :geometry (geometry :x "0%" :y "0%" :width "100%" :anchor "top center" ) :stacking "fg" :exclusive true (bar) )