;; Variables (defvar dtfull true) ;; Listeners (deflisten active-workspace `stdbuf -oL $HOME/.local/bin/scripts/eww-hyprland-active-workspace-listener`) (deflisten workspace-list :initial '[1]' `stdbuf -oL $HOME/.local/bin/scripts/eww-hyprland-workspace-list-listener`) (deflisten datetime `stdbuf -oL $HOME/.local/bin/scripts/eww-datetime-listener`) ;; Windows (defwindow bar :monitor 0 :stacking "fg" :exclusive true :geometry (geometry :width "100%" :height "28px" :anchor "top center") (bar)) (defwidget bar [] (centerbox (start) (middle) (end))) (defwidget start [] (workspaces)) (defwidget middle [] (box :class "middle" (clock))) (defwidget end [] (box :halign "end" :class "end" :space-evenly false (systray :icon-size "16" :pack-direction "rtl"))) (defwidget workspaces [] (box :class "workspaces" :space-evenly false (for id in workspace-list (button :class {active-workspace == id ? "active" : ""} :onclick `hyprctl dispatch workspace ${id}` id)))) (defwidget clock [] (eventbox :class "clock" :onclick `eww update dtfull=${!dtfull}` (label :text {dtfull ? datetime.full : datetime.date}))) (defwidget pair [icon text] (box :width 70 :space-evenly false (label :text icon) (label :text text)))