(defwindow linebar :monitor 0 :geometry (geometry :x "30px" :y "0%" :width "100%" :height "2px" :anchor "top center") :stacking "fg" :windowtype "dock" :wm-ignore false (wlinebar)) (defwindow mainbar :monitor 0 :geometry (geometry :x "0%" :y "0%" :width "100%" :height "30px" :anchor "top center") :stacking "fg" :windowtype "dock" :wm-ignore 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 lworkspaces "./scripts/workspaces.sh") (deflisten llineworkspaces "./scripts/line-workspaces.sh") (deflisten ltitle "./scripts/title.sh") (defwidget bar [] (eventbox :onscroll "./scripts/scroll.sh {}" (centerbox :orientation "h" :class "bar" (workspaces) (title) (time)))) (defwidget wlinebar [] (eventbox :onscroll "./scripts/scroll.sh {}" (line_workspaces))) (defwidget workspaces [] (literal :content lworkspaces)) (defwidget line_workspaces [] (literal :content llineworkspaces)) (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 : ""}) )))