From 7ee913b544cd5fedc1d3ac81f0d9088b73fd9e89 Mon Sep 17 00:00:00 2001 From: k4rli Date: Sun, 1 Feb 2026 13:42:29 +0200 Subject: [PATCH] initial commit --- nm_vpn | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 nm_vpn diff --git a/nm_vpn b/nm_vpn new file mode 100755 index 0000000..0c51661 --- /dev/null +++ b/nm_vpn @@ -0,0 +1,29 @@ +#!/bin/bash + +set -Eeu -o pipefail + +VALUE_COLOR=${color:-$(xrescat i3xrocks.value.color "#D8DEE9")} +VALUE_FONT=${font:-$(xrescat i3xrocks.value.font "Source Code Pro Medium 13")} +BUTTON="${button:-}" + +VALUE_VPN_NAME="MB VPN" +VPN_STATUS=$(nmcli -f GENERAL.STATE con show "${VALUE_VPN_NAME}" | tr -s 'GENERAL.STATE:' ' ' | awk '{gsub(/^ +| +$/,"")}1') + +NETWORK_ICON=" " + +# nmcli statuses +STATUS_ACTIVATED="activated" +STATUS_ACTIVATING="activating" + +# texts +ACTIVE_ICON="ON" +ACTIVATING_ICON="WAIT" +INACTIVE_ICON="OFF" + +STATUS_TEXT=$([ "$VPN_STATUS" == "$STATUS_ACTIVATED" ] && echo "$ACTIVE_ICON" || ([ "$VPN_STATUS" == "$STATUS_ACTIVATING" ] && echo "$ACTIVATING_ICON" || echo "$INACTIVE_ICON")) +echo "${NETWORK_ICON} ${STATUS_TEXT}" + +if [ ! "x${BUTTON}" == "x" ]; then + ACTION=$([ "$VPN_STATUS" == "$STATUS_ACTIVATED" ] && nmcli con down id "${VALUE_VPN_NAME}" || nmcli con up id "${VALUE_VPN_NAME}") + /usr/bin/i3-msg -q exec "$ACTION" +fi