dotfiles/de/home/.config/eww/eww.yuck
2025-03-03 20:00:02 -08:00

122 lines
3.1 KiB
Text

(defwidget bar []
(centerbox :orientation "h"
(workspaces :array workspacesArray)
(music)
(rightgroup)))
(defwidget rightgroup []
(box :class "rightgroup" :orientation "h" :space-evenly false :halign "end"
(metric :label "🔊"
:value volume
:onchange "amixer -D pulse sset Master {}%")
(metric :label ""
:value {EWW_RAM.used_mem_perc}
:onchange "")
(metric :label "💾"
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
:onchange "")
(systeminfo)
{formattime(EWW_TIME,"%b %d, %Y %H:%M")}
(systemtray)))
(deflisten workspacesArray :initial "${[1]}"
`~/.config/eww/scripts/getWorkspaces.sh`)
(defwidget workspaces [array]
(box :class "workspaces"
:orientation "h"
:space-evenly true
:halign "start"
(for entry in array
(button :onclick `swaymsg workspace "${entry.name}"`
:class {entry.focused ? "focused" : ""}
`${entry.name}`))))
(defwidget systemtray []
(systray
:orientation "h"
:space-evenly true
:spacing 10
:prepend-new true))
(defwidget revealer-on-hover [revealvar revealvar-name ?class ?duration ?transition]
(box
:class "${class} revealer-on-hover"
:orientation "h"
:space-evently false
(eventbox
:onhover "eww update ${revealvar-name}=true"
:onhoverlost "eww update ${revealvar-name}=false"
(box
:space-evenly false
(children :nth 0)
(revealer
:reveal revealvar
:transition {transition ?: "slideright"}
:duration {duration ?: "500ms"}
(children :nth 1))))))
(defvar reveal_systeminfo false)
(defwidget systeminfo []
(revealer-on-hover
:revealvar reveal_systeminfo
:revealvar-name "reveal_systeminfo"
(metric :label "💾"
:value {EWW_RAM.used_mem_perc}
:onchange "")
(metric :label "RAM"
:value {EWW_RAM.used_mem_perc}
:onchange "")))
(defwidget music []
(box :class "music"
:orientation "h"
:space-evenly false
:halign "center"
{music != "" ? "🎵${music}" : ""}))
(defwidget metric [label value onchange]
(box :orientation "h"
:class "metric"
:space-evenly false
(box :class "label" label)
(circular-progress :min 0
:active {onchange != ""}
:value value
:onchange onchange)))
(deflisten music :initial ""
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
(defpoll volume :interval "1s"
"scripts/getvol")
(defpoll time :interval "10s"
"date '+%H:%M %b %d, %Y'")
(defwindow bar
:monitor 2
:windowtype "dock"
:exclusive true
:geometry (geometry :x "0%"
:y "0%"
:width "99%"
:height "10px"
:anchor "top center")
:reserve (struts :side "top" :distance "4%")
(bar))
(defwindow example
:monitor 2
:geometry (geometry :x "0%"
:y "30px"
:width "90%"
:height "30px"
:anchor "top center")
:stacking "fg"
:exclusive false
:reserve (struts :distance "40px" :side "top")
:windowtype "dock"
:wm-ignore false
"example content")