summaryrefslogtreecommitdiff
path: root/dotfiles/hyprland/.local/bin/stash-others
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-29 23:06:41 -0600
committerCraig Jennings <c@cjennings.net>2026-01-29 23:06:41 -0600
commitc378c2f075845f6a8110be37ca7fbb7fc98721c7 (patch)
treeecad884574df40ac80f44cf9001eb201d5362110 /dotfiles/hyprland/.local/bin/stash-others
parent0da19ea3454ec54b47c31f921c5c9697c10648f9 (diff)
feat(hyprland): add pyprland for scratchpads, magnify, and window stashing
Replace native special workspace scratchpads with pyprland to fix issue where new windows were captured by visible scratchpads. Add magnify on mod+Z and window stash scripts (mod+O to stash, mod+Alt+O stash others, mod+Shift+O restore).
Diffstat (limited to 'dotfiles/hyprland/.local/bin/stash-others')
-rwxr-xr-xdotfiles/hyprland/.local/bin/stash-others12
1 files changed, 12 insertions, 0 deletions
diff --git a/dotfiles/hyprland/.local/bin/stash-others b/dotfiles/hyprland/.local/bin/stash-others
new file mode 100755
index 0000000..5af6743
--- /dev/null
+++ b/dotfiles/hyprland/.local/bin/stash-others
@@ -0,0 +1,12 @@
+#!/bin/bash
+# Stash all unfocused windows on current workspace to special:stash
+
+focused=$(hyprctl activewindow -j | jq -r '.address')
+workspace=$(hyprctl activewindow -j | jq -r '.workspace.id')
+
+# Get all windows on current workspace except the focused one
+hyprctl clients -j | jq -r --arg focused "$focused" --argjson ws "$workspace" \
+ '.[] | select(.workspace.id == $ws and .address != $focused) | .address' | \
+while read -r addr; do
+ hyprctl dispatch movetoworkspacesilent special:stash,address:"$addr"
+done