diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-02-22 14:01:49 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-02-22 14:02:20 +0100 |
commit | 4dd5ad747ac6f8f8002a511c38d11516241d95a8 (patch) | |
tree | b90de39a66c5b2b1cddb28e22bd064e63e6b22c5 /.config/eww | |
parent | 8163f5d0cde2c1f2795ff9a416281d578c56b9af (diff) |
eww: Better support multimonitor setups
Diffstat (limited to '.config/eww')
-rw-r--r-- | .config/eww/eww.yuck | 16 | ||||
-rwxr-xr-x | .config/eww/scripts/active-workspace-listener | 22 |
2 files changed, 18 insertions, 20 deletions
diff --git a/.config/eww/eww.yuck b/.config/eww/eww.yuck index afcce11..b50fcc0 100644 --- a/.config/eww/eww.yuck +++ b/.config/eww/eww.yuck @@ -36,24 +36,24 @@ :stacking "fg" :exclusive true :geometry (geometry :width "100%" :height "40px" :anchor "top center") - (bar)) + (bar :monitor 0)) (defwindow bar-2 :monitor 1 :stacking "fg" :exclusive true :geometry (geometry :width "100%" :height "40px" :anchor "top center") - (bar)) + (bar :monitor 1)) ;; Widgets -(defwidget bar [] +(defwidget bar [monitor] (centerbox - (start) + (start :monitor monitor) (middle) (end))) -(defwidget start [] - (workspaces)) +(defwidget start [monitor] + (workspaces :monitor monitor)) (defwidget middle [] (clock)) @@ -70,11 +70,11 @@ (battery) (user))) -(defwidget workspaces [] +(defwidget workspaces [monitor] (box :class "workspaces" :space-evenly false (for id in workspace-list - (button :class {active-workspace == id ? "active" : ""} + (button :class {active-workspace[monitor] == id ? "active" : ""} :onclick `hyprctl dispatch workspace ${id}` id)))) diff --git a/.config/eww/scripts/active-workspace-listener b/.config/eww/scripts/active-workspace-listener index 359a0f2..3f57ec5 100755 --- a/.config/eww/scripts/active-workspace-listener +++ b/.config/eww/scripts/active-workspace-listener @@ -2,15 +2,13 @@ readonly IPC=/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock -hyprctl -j activeworkspace | jq -r '.name' -socat -u UNIX-CONNECT:"$IPC" - | while read -r line -do - case "$line" in - 'workspace>>'*) - echo "${line#*'>>'}" - ;; - 'moveworkspace>>'*) - hyprctl -j activewindow | jq -r .workspace.name - ;; - esac -done +{ + hyprctl -j monitors + socat -u UNIX-CONNECT:"$IPC" - | while read -r _ + do + case "${_%>>*}" in + workspace|moveworkspace) + hyprctl -j monitors + esac + done +} | jq -cr '[.[] | .activeWorkspace.name]' |