flakes/res/eww/eww.yuck
2024-01-16 13:33:43 +07:00

67 lines
2.3 KiB
Text

(defwindow mainbar :monitor 0
:geometry (geometry :x "0%"
:y "0%"
:width "100%"
:height "30px"
:anchor "top center")
:stacking "fg"
:exclusive false
:focusable false
(bar))
(defvar time-extended false) ; for :run-while property of below variable
; when this turns true, the polling starts and
; var gets updated with given interval
(defpoll ptime :interval "1s"
:run-while !time-extended
`date +%H:%M`)
(defpoll petimea :interval "1s"
:run-while time-extended
`date "+%A, %d %B %Y "`)
(defpoll petimeb :interval "1s"
:run-while time-extended
`date "+:%S"`)
(deflisten ltitle "./scripts/title.sh")
(defwidget bar []
(eventbox :onscroll "./scripts/scroll.sh {}"
(centerbox :orientation "h"
:class "bar"
(workspaces)
(title)
(time))))
(deflisten workspaces :initial "[]" "./scripts/workspaces.sh")
(deflisten current_workspace :initial "1" "./scripts/active-workspace.sh")
(defwidget workspaces []
(box :class "widget workspaces"
:halign "start"
:valign "center"
:vexpand true
:hexpand true
(for workspace in workspaces
(eventbox :cursor "hand"
(button :class "${workspace.id == current_workspace ? "focused" : (workspace.windows > 0 ? "occupied" : "empty")}"
:onclick "hyprctl dispatch workspace ${workspace.id}"
"${workspace.id == current_workspace ? "" : (workspace.windows > 0 ? "" : "")}")))))
(defwidget title []
(literal :content ltitle))
(defwidget time_extension [text]
(label :text text
:class "extension"))
(defwidget time []
(button :onclick `eww update time-extended=${time-extended ? "false" : "true"}`
(box :orientation "horizontal"
:space-evenly false
:halign "end"
:class "widget time"
(time_extension :text {time-extended ? petimea : ""})
(label :text ptime
:class "base")
(time_extension :text {time-extended ? petimeb : ""}))))