diff --git a/dependencies/pacman.txt b/dependencies/pacman.txt index adf3563..a56cae7 100644 --- a/dependencies/pacman.txt +++ b/dependencies/pacman.txt @@ -65,3 +65,5 @@ gnome-screenshot bash-completion flameshot otf-font-awesome +openvpn +networkmanager-openvpn diff --git a/i3/config b/i3/config index 8957767..c1d1965 100644 --- a/i3/config +++ b/i3/config @@ -40,6 +40,7 @@ set $workspace12 " Enpass" # scripts set $spotify ~/.config/i3/scripts/spotify-cli.sh +set $vpnmanager ~/.config/i3/scripts/vpn-manager.sh ############################################ # i3 management keys # @@ -129,6 +130,7 @@ bindsym $mod+shift+b exec /bin/bash ~/.config/i3/scripts/brightness.sh # active: background bindsym $mod+d exec "rofi -color-window '#1e1e1e, #333333, #333333' -color-normal '#1e1e1e, #848484, #1e1e1e, #333333, #f6f6f7' -lines 10 -line-padding 5 -show run" bindsym $mod+Tab exec "rofi -color-window '#1e1e1e, #333333, #333333' -color-normal '#1e1e1e, #848484, #1e1e1e, #333333, #f6f6f7' -color-active '#333333, #ef5350, #0000ff, #333333, #f6f6f7' -lines 10 -line-padding 5 -show" +bindsym $mod+n exec $vpnmanager ############################################ # Media keys # diff --git a/i3/scripts/vpn-manager.sh b/i3/scripts/vpn-manager.sh new file mode 100755 index 0000000..83d2116 --- /dev/null +++ b/i3/scripts/vpn-manager.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# VPN = list con | skip first line, if type == vpn print name | show in rofi +VPN=$(nmcli con | awk 'NR>1 && $3 == "vpn" {print $1}' | rofi -dmenu -p "Select a vpn to (dis)connect") + +# if $VPN not set, exit. +[ -z "$VPN" ] && exit + +# Check whether vpn is activated +STATE=$(nmcli con show "$VPN" | grep GENERAL.STATE: | awk '{print $2}') + +# if state == activated +if [ "$STATE" == "activated" ]; then + nmcli con down "$VPN" +else + nmcli con up "$VPN" +fi