#!/usr/bin/env bash ## Script to toggle WireGuard tunnel using wg command for state determination # Define the WireGuard interface name WG_INTERFACE="wg0" # Function to check if WireGuard interface is active is_wg_active() { sudo /usr/bin/wg show | grep -q "interface" } if is_wg_active; then # If the interface is active, disable it sudo /usr/bin/wg-quick down "$WG_INTERFACE" if ! is_wg_active; then notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i network-vpn "WireGuard Tunnel" "Tunnel Deactivated" else notify-send --urgency=critical -i network-vpn "WireGuard Tunnel" "Error: Failed to deactivate tunnel" fi else # If the interface is not active, enable it sudo /usr/bin/wg-quick up "$WG_INTERFACE" if is_wg_active; then notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i network-vpn "WireGuard Tunnel" "Tunnel Activated" else notify-send --urgency=critical -i network-vpn "WireGuard Tunnel" "Error: Failed to activate tunnel" fi fi