diff --git a/modules/wm/hyprland/config/eww/eww.yuck b/modules/wm/hyprland/config/eww/eww.yuck index 7e40a6a..db19da3 100644 --- a/modules/wm/hyprland/config/eww/eww.yuck +++ b/modules/wm/hyprland/config/eww/eww.yuck @@ -1,3 +1,5 @@ +(include "/home/horseman/.config/eww/vars.yuck") + (defwindow main :monitor 0 :geometry (geometry @@ -10,5 +12,21 @@ :exclusive false :focusable false - (box {workspace}) + (workspaces) +) + +(defwidget workspaces [] + (box :class="workspaces" + ("a") + (button :onclick "hyprctl dispatch workspace 1" { workspace == 1 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 2" { workspace == 2 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 3" { workspace == 3 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 4" { workspace == 4 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 5" { workspace == 5 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 6" { workspace == 6 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 7" { workspace == 7 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 8" { workspace == 8 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 9" { workspace == 9 ? "◆" : "◇" }) + (button :onclick "hyprctl dispatch workspace 10" { workspace == 10 ? "◆" : "◇" }) + ) ) diff --git a/modules/wm/hyprland/config/eww/vars.yuck b/modules/wm/hyprland/config/eww/vars.yuck index 1169564..3d906c5 100644 --- a/modules/wm/hyprland/config/eww/vars.yuck +++ b/modules/wm/hyprland/config/eww/vars.yuck @@ -1,12 +1,71 @@ -(defpoll workspace - :interval '0.1s' - :initial-value "" - "hyprctl -j activeworkspace | jq '.id'" -) - (defpoll time :interval "1s" :initial-value "" "date +'%H:%M:%S'" ) +(defpoll workspace + :interval '0.1s' + :initial-value "" + "hyprctl -j activeworkspace | jq '.id'" +) + +(defpoll windows-1 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 1 | wc -l" +) + +(defpoll windows-2 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 2 | wc -l" +) + +(defpoll windows-3 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 3 | wc -l" +) + +(defpoll windows-4 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 4 | wc -l" +) + +(defpoll windows-5 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 5 | wc -l" +) + +(defpoll windows-6 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 6 | wc -l" +) + +(defpoll windows-7 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 7 | wc -l" +) + +(defpoll windows-8 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 8 | wc -l" +) + +(defpoll windows-9 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 9 | wc -l" +) + +(defpoll windows-10 + :interval '0.1s' + :initial-value "" + "hyprctl -j clients | jq '[].workspace.id' | grep -w 10 | wc -l" +) diff --git a/modules/wm/hyprland/default.nix b/modules/wm/hyprland/default.nix index 2b5ebb1..eb4a55c 100644 --- a/modules/wm/hyprland/default.nix +++ b/modules/wm/hyprland/default.nix @@ -32,6 +32,7 @@ in { hyprlock brightnessctl swaybg + jq ]; services.logind.extraConfig = ''