dotfiles/.config/eww/eww.yuck

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)))