57 lines
1.4 KiB
Text
57 lines
1.4 KiB
Text
;; 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)))
|