64 lines
1.7 KiB
Bash
Executable File
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
|