Files
dotfiles_i3_notebook_arch/polybar/scripts/wlan_format.sh
2025-09-22 08:27:51 +02:00

64 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Toggle file for switching between SSID and signal strength
TOGGLE_FILE="$HOME/.toggle_wlan_label"
# Function to check Ethernet connection
check_ethernet() {
if ip a show enp8s0 | grep -q "state UP"; then
echo "E"
return 0
else
return 1
fi
}
# Function to get WiFi signal strength as a percentage
get_signal_strength() {
local strength=$(iwconfig wlan0 2>/dev/null | grep 'Link Quality' | awk -F'=' '{print $2}' | awk '{print $1}')
if [ -z "$strength" ]; then
echo 0
return
fi
local level=$(echo "$strength" | cut -d'/' -f1)
local max=$(echo "$strength" | cut -d'/' -f2)
local percent=$(( ($level * 100) / $max ))
echo $percent
}
# Check Ethernet connection first
if check_ethernet; then
echo "E"
exit 0
fi
# Check if the toggle file exists
if [ -f "$TOGGLE_FILE" ]; then
# Display SSID if connected
essid=$(iwgetid -r)
if [ -z "$essid" ]; then
# Display disconnected icon if not connected
echo "%{A1:~/.config/polybar/scripts/toggle_module_label.sh wlan:}󰖪%{A}"
elif [ "$essid" == "Hacker" ]; then
# Display "H" if connected to "Hacker"
echo "H"
else
# Display SSID
echo "%{A1:~/.config/polybar/scripts/toggle_module_label.sh wlan:} $essid %{A}"
fi
else
# Display signal strength icon
strength=$(get_signal_strength)
icon="󰤯" # Default icon for no signal
if [ "$strength" -ge 80 ]; then
icon="" # Signal 4
elif [ "$strength" -ge 60 ]; then
icon="󰤥" # Signal 3
elif [ "$strength" -ge 40 ]; then
icon="󰤢" # Signal 2
elif [ "$strength" -ge 20 ]; then
icon="󰤟" # Signal 1
fi
echo "%{A1:~/.config/polybar/scripts/toggle_module_label.sh wlan:} $icon %{A}"
fi