Dotfiles/desktopenvs/hyprland/eww/eww.yuck

105 lines
2.5 KiB
Plaintext

(defwindow bar [monitor]
:monitor monitor
:class "ewwbar"
:windowtype "dock"
:geometry (geometry :x "0%"
:y "1%"
:width "99%"
:height "20px"
:anchor "top center")
:exclusive true
(bar :monitor_ monitor))
(defpoll battery :interval "2s"
"scripts/batteryperc")
(defwidget bar [monitor_]
(centerbox :orientation "h"
(winsworks :monitor monitor_)
(music)
(sidestuff)))
(defwidget winsworks [monitor]
(box :orientation "h" :space-evenly false :halign "start"
(box :class "music" {"${battery}"})
(workspaceWidget :monitor monitor)
(box :onclick "scripts/windowswitcher" :class "music" {" ${activewindow}"})
(box :class "music" {"󰛳 ${IP}"})
)
)
(defwidget sidestuff []
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
(metric :label "󰓃"
:value volume
:onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%")
(metric :label ""
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
:onchange "")
(clock)
))
(defwidget music []
(box :class "music"
:orientation "h"
:space-evenly false
:halign "center"
{music != "" ? " ${music}" : " None"}))
(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 workspaces "hyprland-workspaces _")
(defwidget workspaceWidget [monitor]
(eventbox :onscroll "hyprctl dispatch workspace `echo {} | sed 's/up/+/\' | sed 's/down/-/'`1"
(box :class "workspaces"
:space-evenly false
:width 20
(for i in {workspaces[monitor].workspaces}
(button
:width 20
:onclick "hyprctl dispatch workspace ${i.id}"
:class "${i.class}"
{i.name == "special:magic" ? "󱂬" : "󱂬${i.name}"})))))
(deflisten workspace-old "scripts/workspace")
(defwidget workspaces-old []
(literal :content workspace-old))
(defpoll music :interval "0.5s"
"scripts/playerget")
(defpoll activewindow :interval "0.5s"
"scripts/activewindow")
(defpoll IP :interval "600s"
"hostname -i")
(defpoll volume :interval "0.5s"
"scripts/getvol")
(defpoll time :interval "1s"
"date '+%H:%M:%S|%d.%m.%Y'")
(defwidget clock []
(box :class "clock"
(label :text {"${time}"})
)
)