diff options
Diffstat (limited to 'ar/.local/bin/statusbar/sb-internet')
| -rwxr-xr-x | ar/.local/bin/statusbar/sb-internet | 52 |
1 files changed, 46 insertions, 6 deletions
diff --git a/ar/.local/bin/statusbar/sb-internet b/ar/.local/bin/statusbar/sb-internet index df43676..baa5ebd 100755 --- a/ar/.local/bin/statusbar/sb-internet +++ b/ar/.local/bin/statusbar/sb-internet @@ -4,34 +4,74 @@ # Show 🌐 if connected to ethernet or ❎ if none. # Show 🛰️ if a vpn connection is active +eth_con="$(nmcli -t -f NAME,TYPE,DEVICE connection show | + awk -F: '$2=="ethernet" && $3!="" { print $1; exit }')" + +wifi_con="$(nmcli -t -f NAME,TYPE connection show | + awk -F: '$2=="wifi" { print $1; exit }')" + +if [ -n "$eth_con" ]; then + nmcli connection modify "$eth_con" ipv4.method auto + nmcli connection modify "$eth_con" ipv4.never-default no + nmcli connection modify "$eth_con" ipv4.dns-priority -42 + nmcli connection modify "$eth_con" ipv4.route-metric 100 + nmcli connection modify "$eth_con" connection.autoconnect yes +fi + +if [ -n "$wifi_con" ]; then + nmcli connection modify "$wifi_con" ipv4.dns-priority 100 + nmcli connection modify "$wifi_con" ipv4.route-metric 600 +fi + case $BLOCK_BUTTON in 1) "$TERMINAL" -e nmtui pkill -RTMIN+7 dwmblocks ;; +2) + wifi_dev="$(nmcli -t -f DEVICE,TYPE device | + awk -F: '$2=="wifi" { print $1; exit }')" + + wifi_state="$(nmcli -t -f DEVICE,STATE device | + awk -F: -v dev="$wifi_dev" '$1==dev { print $2 }')" + + if [ "$wifi_state" = "connected" ]; then + nmcli radio wifi off + notify-send "Wi-Fi" "Wi-Fi disconnected" + else + nmcli radio wifi on + notify-send "Wi-Fi" "Wi-Fi connected" + fi + + pkill -RTMIN+7 dwmblocks + ;; 3) notify-send "🌐 Internet module" "\- Left click to connect ❌: wifi disabled 📡: no wifi connection 🛜: wifi connection with quality ❎: no ethernet 🌐: ethernet working -🛰️: vpn is active +🛰: vpn is active " ;; 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac # Wifi -if grep -q 'up' /sys/class/net/w*/operstate; then - wifiicon="$(awk '/^\s*w/ { print "🛜" int($3 * 100 / 70) "%" }' /proc/net/wireless)" -elif grep -q 'down' /sys/class/net/w*/operstate; then - grep -q '0x1003' /sys/class/net/w*/flags && wifiicon="📡" || wifiicon="❌" +if grep -q 'up' /sys/class/net/w*/operstate 2>/dev/null; then + if grep -q '^\s*w' /proc/net/wireless; then + wifiicon="$(awk '/^\s*w/ { print "🛜" int($3 * 100 / 70) "%" }' /proc/net/wireless)" + else + wifiicon="📡" + fi +elif grep -q 'down' /sys/class/net/w*/operstate 2>/dev/null; then + wifiicon="❌" fi # Ethernet grep -q 'up' /sys/class/net/e*/operstate && ethericon="🌐" || ethericon="❎" # TUN -[ -n "$(cat /sys/class/net/tun*/operstate 2>/dev/null)" ] && tunicon="🛰️" +grep -q 'up' /sys/class/net/tun*/operstate 2>/dev/null && tunicon="🛰" icons="" [ -n "$wifiicon" ] && icons="${icons}$wifiicon " |
