summaryrefslogtreecommitdiff
path: root/scripts/qubes-i3-sensible-terminal
blob: 5311dc14e0f9c1e308a46b0c8e3d912dc8ab3d90 (plain)
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
29
30
31
32
33
34
35
#!/usr/bin/bash
# Slightly modified from original to prioritize xfce4-terminal and st

run_terminal='
for t in "$TERMINAL" xfce4-terminal st x-terminal-emulator urxvt rxvt termit terminator Eterm aterm gnome-terminal konsole roxterm termite lxterminal mate-terminal terminology xterm; do
    command -v "$t" > /dev/null 2>&1 && exec "$t";
done
'

get_id() {
    local id=$(xprop -root _NET_ACTIVE_WINDOW)
    echo ${id##* } # extract id
}

get_vm() {
    local id=$(get_id)
    local vm=$(xprop -id $id | grep '_QUBES_VMNAME(STRING)')
    local vm=${vm#*\"} # extract vmname
    echo ${vm%\"*} # extract vmname
}

main() {
    local vm=$(get_vm)
    if [[ -n "$vm" ]]; then
        if command -v qrexec-client >/dev/null; then
            qrexec-client -e -d "$vm" DEFAULT:"bash -c '$run_terminal'"
        else
            qvm-run "$vm" qvm-run "$vm" "bash -c '$run_terminal'"
        fi
    else # run terminal in dom0
        exec bash -c "$run_terminal"
    fi
}

main