blob: de8f307fb8f8d98e2e2cf933205c40142e588287 (
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
36
37
38
39
40
|
#!/bin/sh
# Connect to/disconnect from wireguard tunnel using dmenu
sudo="${SUDO:-sudo}"
pass="$(xsudo --get-pass)"
ssudo() { echo "$pass" | $sudo $@ ; }
dmenu_confirm_continue() {
case "$(echo "yes\nno" | dmenu -p "$1")" in
yes)
;;
*) exit 0 ;;
esac
}
curtun="$(ssudo wg show | sed 's/interface: //;q')"
# Ask to disconnect from current interface
if [ -n "$curtun" ]; then
dmenu_confirm_continue "Currently connected to tunnel $curtun. Disconnect?"
output="$(ssudo wg-quick down "$curtun" 2>&1)"
notify-send "Disconnected from $curtun" "$output"
dmenu_confirm_continue "Connect to another interface?"
fi
# Connect to new interface
tundir=/etc/wireguard
tun="$tundir/$(ssudo ls "$tundir" | grep "\.conf$" | dmenu -p "Connect to which tunnel?")"
if ! ssudo cat $tun >/dev/null 2>/dev/null; then
notify-send "Couldn't connect to tunnel $tun"
exit 1
fi
output="$(ssudo wg-quick up "$tun" 2>&1)"
notify-send "Connected to $tun" "$output"
|