dotfiles/.config/eww/eww.yuck
2024-05-15 10:36:16 +07:00

57 lines
1.3 KiB
Text

;; 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
`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" :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)))