aboutsummaryrefslogtreecommitdiff
path: root/sway/terminal.sh
blob: ec864ab1b519896c9d510f6c08a29368af5a02dc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh

DESKTOP=term
INSTANCE=tmux_term

TERM_WORKSPACE="9:term"
TERM_APP_ID=tmux_term

FOCUSED_OUTPUT=$(swaymsg -t get_outputs -r |
                 jq '.[] | select(.focused == true) | .name' |
                 tr -d '"')
FOCUSED_WORKSPACE=$(swaymsg -t get_workspaces -r |
                    jq '.[] | select(.focused == true) | .name' |
                    tr -d '"')

if [ "$FOCUSED_WORKSPACE" = "$TERM_WORKSPACE" ]; then
    swaymsg workspace back_and_forth
else
    swaymsg workspace $TERM_WORKSPACE
    swaymsg move workspace to $FOCUSED_OUTPUT
    swaymsg workspace $TERM_WORKSPACE

    if ! (swaymsg -t get_tree -r |
          jq -e "recurse(.nodes[]) | select(.app_id == \"$TERM_APP_ID\")" > /dev/null); then
        exec alacritty --class $TERM_APP_ID -e \
            tmux new-session -A -s default
    fi
fi