(defwidget bar [] (centerbox :orientation "h" (workspaces) (music) (sidestuff))) (defwidget sidestuff [] (box :class "sidestuff" :orientation "h" :space-evenly false :halign "end" (metric :label "󰕾" :value { volume * 100 } :onchange "VOL=$(bc -l <<<\"scale=2; {} / 100\") ; wpctl set-volume @DEFAULT_AUDIO_SINK@ $VOL") (metric :label "󰍛" :value {EWW_RAM.used_mem_perc} :onchange "") (metric :label "" :value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)} :onchange "") time)) (deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces") (deflisten current_workspace :initial "1" "bash ~/.config/eww/scripts/get-active-workspace") (defwidget workspaces [] (eventbox :onscroll "bash ~/.config/eww/scripts/change-active-workspace {} ${current_workspace}" :class "workspaces-widget" (box :space-evenly false (label :text "${workspaces}${current_workspace}" :visible false) (for workspace in workspaces (eventbox :onclick "hyprctl dispatch workspace ${workspace.id}" (box :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}" (label :text "${workspace.id}") ) ) ) ) ) ) (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) (scale :min 0 :max 101 :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 %F'") (defwindow bar :monitor 0 :windowtype "dock" :exclusive true :geometry (geometry :x "0%" :y "0%" :width "90%" :height "10px" :anchor "top center") :reserve (struts :side "top" :distance "100px") (bar))