78 lines
2.2 KiB
Plaintext
78 lines
2.2 KiB
Plaintext
(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))
|