diff options
Diffstat (limited to 'toggles/util.fish')
| -rw-r--r-- | toggles/util.fish | 21 |
1 files changed, 21 insertions, 0 deletions
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 |