55 lines
1.7 KiB
Bash
Executable File
55 lines
1.7 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
connected_interface=$(awg show interfaces | grep -P "awg\d+" -o)
|
|
|
|
connect() {
|
|
# doas wg-quick up wg0 && doas route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1 enp5s0 && notify-send -i /home/$USER/.config/dunst/scripts/vpn.png 'VPN connected'
|
|
doas awg-quick up awg0 && sleep 3 && doas route add -host 178.49.132.41 gw 192.168.1.1 enp5s0 && doas systemctl restart dnsproxy.service && notify-send -i /home/$USER/.config/dunst/scripts/vpn.png 'VPN connected'
|
|
|
|
# sudo wg-quick up wg0 && sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1 enp9s0 && notify-send -i /home/$USER/.config/dunst/scripts/vpn.png 'VPN connected'
|
|
|
|
# sudo wg-quick up wg0 && sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1 enp9s0 && sudo route add -host 78.47.125.180 gw 192.168.1.1 enp9s0 && notify-send -i /home/$USER/.config/dunst/scripts/vpn.png 'VPN connected'
|
|
}
|
|
|
|
disconnect() {
|
|
# Normally we should have a single connected interface but technically
|
|
# there's nothing stopping us from having multiple active intgerfaces so
|
|
# let's do this in a loop:
|
|
for connected_config in $(awg show interfaces | grep -P "awg\d+" -o); do
|
|
doas awg-quick down awg0 && notify-send -i /home/$USER/.config/dunst/scripts/vpn.png 'VPN disconnected'
|
|
done
|
|
}
|
|
|
|
toggle() {
|
|
if [[ $connected_interface ]]; then
|
|
disconnect
|
|
else
|
|
connect
|
|
fi
|
|
}
|
|
|
|
print() {
|
|
if [[ $connected_interface ]]; then
|
|
echo "%{T1}說%{T-} %{T2}VPN: ON%{T-}"
|
|
#echo "%{F#FFDE7D}%{T1}說%{T-} %{T2}VPN: ON%{T-}"
|
|
else
|
|
echo "%{T1}說%{T-} %{T2}VPN: OFF%{T-}"
|
|
#echo "%{F#5f5f5f}%{T1}說%{T-} %{T2}VPN: OFF%{T-}"
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
--connect)
|
|
connect
|
|
;;
|
|
--disconnect)
|
|
disconnect
|
|
;;
|
|
--toggle)
|
|
toggle
|
|
;;
|
|
*)
|
|
print
|
|
;;
|
|
esac
|