;; Variables (defvar dtfull true) ;; Listeners (deflisten active-workspace `stdbuf -oL ./scripts/hypr/workspace-active-listener`) (deflisten workspace-list :initial "[1]" `stdbuf -oL ./scripts/hypr/workspace-list-listener`) (deflisten datetime :initial "{}" `stdbuf -oL ./scripts/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 :class "tray" :icon-size "16"))) (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)))