From ee9977c26753088dfd20006fe3427737419ab264 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Fri, 17 Jan 2025 17:54:37 +1100 Subject: main: special workspace toggles --- toggles/util.fish | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 toggles/util.fish (limited to 'toggles/util.fish') diff --git a/toggles/util.fish b/toggles/util.fish new file mode 100644 index 0000000..599627c --- /dev/null +++ b/toggles/util.fish @@ -0,0 +1,21 @@ +function move-client -a selector -a workspace + if hyprctl -j clients | jq -e 'first(.[] | select('$selector')).workspace.name != "special:'$workspace'"' > /dev/null + # Window not in correct workspace + set -l window_addr (hyprctl -j clients | jq -r 'first(.[] | select('$selector')).address') + hyprctl dispatch movetoworkspacesilent "special:$workspace,address:$window_addr" + end +end + +function spawn-client -a selector + # Spawn if doesn't exist + hyprctl -j clients | jq -e "first(.[] | select($selector))" > /dev/null + set -l stat $status + if test $stat != 0 + uwsm app -- $argv[2..] & disown + end + return $stat +end + +function spawn-or-move -a selector -a workspace + spawn-client $selector $argv[3..] || move-client $selector $workspace +end -- cgit v1.2.3-freya