hypr,waybar: rework workspace numbering to support named workspaces ordering

Renumber regular workspaces to IDs 21-30 with defaultName 1-10, giving
named workspaces IDs 1-6 so they sort before numbered ones in waybar.
Add persistent named workspaces (comms, element, mail, joplin, steam,
spotify) with monitor/layout assignments. Update keybinds to use name:
dispatch. Add spotify as dedicated monocle workspace on DP-2.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 01:27:45 +01:00
parent 93496b7622
commit 399596b88e
4 changed files with 40 additions and 36 deletions

View File

@@ -1,7 +1,7 @@
{{- range $monitor := .monitors }}
{{- range $index, $ws := $monitor.workspaces }}
{{- if kindIs "map" $ws }}
workspace = {{ $ws.id }}, monitor:{{ $monitor.name }}{{ if eq $index 0 }}, default:true{{ end }}{{ if index $ws "layout" }}, layout:{{ $ws.layout }}{{ end }}{{ range index $ws "layoutopts" }}, layoutopt:{{ . }}{{ end }}
workspace = {{ $ws.id }}, monitor:{{ $monitor.name }}{{ if eq $index 0 }}, default:true{{ end }}{{ if index $ws "name" }}, defaultName:{{ $ws.name }}{{ end }}{{ if index $ws "layout" }}, layout:{{ $ws.layout }}{{ end }}{{ range index $ws "layoutopts" }}, layoutopt:{{ . }}{{ end }}
{{- else }}
workspace = {{ $ws }}, monitor:{{ $monitor.name }}{{ if eq $index 0 }}, default:true{{ end }}
{{- end }}

View File

@@ -76,10 +76,13 @@ windowrule = match:xwayland 1, no_initial_focus on
## ========== Special Workspaces ==========
workspace = special:passwordmgr, on-created-empty:bitwarden-desktop
## ========== Workspace Layout Overrides ==========
workspace = name:comms, monitor:DP-2, layout:scrolling, layoutopt:direction:down
workspace = name:element, monitor:DP-2, layout:scrolling, layoutopt:direction:down
workspace = name:steam, layout:scrolling
## ========== Named Workspaces (IDs 1-5, sort before numbered) ==========
workspace = 1, defaultName:comms, monitor:DP-2, layout:scrolling, layoutopt:direction:down, persistent:true
workspace = 2, defaultName:element, monitor:DP-2, layout:scrolling, layoutopt:direction:down, persistent:true
workspace = 3, defaultName:mail, persistent:true
workspace = 4, defaultName:joplin, persistent:true
workspace = 5, defaultName:steam, layout:scrolling, persistent:true
workspace = 6, defaultName:spotify, monitor:DP-2, layout:monocle, persistent:true
#windowrule = float, class:org.keepassxc.KeePassXC
#windowrule = noscreenshare, class:org.keepassxc.KeePassXC
@@ -99,7 +102,7 @@ windowrule = match:class ^(org\.mozilla\.Thunderbird)$, workspace name:mail
windowrule = match:class ^(@joplin/app-desktop)$, workspace name:joplin
## ========== Multimedia ==========
windowrule = match:class Spotify, workspace 10
windowrule = match:class Spotify, workspace name:spotify
### ========== Development ==========
#windowrule = match:class jetbrains-webstorm, match:title Welcome to WebStorm, float on

View File

@@ -138,16 +138,16 @@ bind = $mainMod, Tab, workspace, m+1
bind = $mainMod SHIFT, Tab, workspace, m-1
# SWITCH WORKSPACES with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod, 1, workspace, name:1
bind = $mainMod, 2, workspace, name:2
bind = $mainMod, 3, workspace, name:3
bind = $mainMod, 4, workspace, name:4
bind = $mainMod, 5, workspace, name:5
bind = $mainMod, 6, workspace, name:6
bind = $mainMod, 7, workspace, name:7
bind = $mainMod, 8, workspace, name:8
bind = $mainMod, 9, workspace, name:9
bind = $mainMod, 0, workspace, name:10
# Monitor focus / workspace move
bind = $mainMod, O, focusmonitor, l
@@ -160,28 +160,28 @@ bind = $mainMod ALT SHIFT, K, movecurrentworkspacetomonitor, u
bind = $mainMod ALT SHIFT, L, movecurrentworkspacetomonitor, r
# MOVE ACTIVE WINDOW TO A WORKSPACE with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, 1, movetoworkspace, name:1
bind = $mainMod SHIFT, 2, movetoworkspace, name:2
bind = $mainMod SHIFT, 3, movetoworkspace, name:3
bind = $mainMod SHIFT, 4, movetoworkspace, name:4
bind = $mainMod SHIFT, 5, movetoworkspace, name:5
bind = $mainMod SHIFT, 6, movetoworkspace, name:6
bind = $mainMod SHIFT, 7, movetoworkspace, name:7
bind = $mainMod SHIFT, 8, movetoworkspace, name:8
bind = $mainMod SHIFT, 9, movetoworkspace, name:9
bind = $mainMod SHIFT, 0, movetoworkspace, name:10
# MOVE ACTIVE WINDOW TO A WORKSPACE SILENTLY with mainMod + CTRL + SHIFT + [0-9]
bind = $mainMod CTRL SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod CTRL SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod CTRL SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod CTRL SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod CTRL SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod CTRL SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod CTRL SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod CTRL SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod CTRL SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod CTRL SHIFT, 0, movetoworkspacesilent, 10
bind = $mainMod CTRL SHIFT, 1, movetoworkspacesilent, name:1
bind = $mainMod CTRL SHIFT, 2, movetoworkspacesilent, name:2
bind = $mainMod CTRL SHIFT, 3, movetoworkspacesilent, name:3
bind = $mainMod CTRL SHIFT, 4, movetoworkspacesilent, name:4
bind = $mainMod CTRL SHIFT, 5, movetoworkspacesilent, name:5
bind = $mainMod CTRL SHIFT, 6, movetoworkspacesilent, name:6
bind = $mainMod CTRL SHIFT, 7, movetoworkspacesilent, name:7
bind = $mainMod CTRL SHIFT, 8, movetoworkspacesilent, name:8
bind = $mainMod CTRL SHIFT, 9, movetoworkspacesilent, name:9
bind = $mainMod CTRL SHIFT, 0, movetoworkspacesilent, name:10
# Group tab switching
bind = $mainMod, Z, changegroupactive, f

View File

@@ -81,6 +81,7 @@
"mail": "",
"joplin": "",
"steam": "",
"spotify": "",
"default": "",
"special": ""
},