101 lines
1.8 KiB
Bash
Executable file
101 lines
1.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
symbol() {
|
|
[ $(cat /sys/class/net/w*/operstate) = down ] && echo 睊 && exit
|
|
echo
|
|
}
|
|
|
|
name() {
|
|
iwgetid -r
|
|
}
|
|
|
|
cut () {
|
|
toshow="$1"
|
|
maxlen="$2"
|
|
|
|
sufix=""
|
|
|
|
if test $(echo $toshow | wc -c) -ge $maxlen ; then
|
|
sufix=" ..."
|
|
fi
|
|
|
|
echo "${toshow:0:$maxlen}$sufix"
|
|
}
|
|
|
|
[ "$1" = "icon" ] && symbol
|
|
|
|
if [[ $1 == "ssid" ]]; then
|
|
ssid=$(name)
|
|
if [[ "$ssid" == "" ]]; then
|
|
cut "Disconnected" 10
|
|
else
|
|
cut "$ssid" 10
|
|
fi
|
|
fi
|
|
|
|
if [[ $1 == "name" || $1 == "class" ]]; then
|
|
wifiname=$(name)
|
|
if [[ $wifiname == "" ]]; then
|
|
if [[ $1 == "name" ]]; then
|
|
echo "Disconnected"
|
|
elif [[ $1 == "class" ]]; then
|
|
echo "disconnected"
|
|
fi
|
|
else
|
|
if [[ $1 == "name" ]]; then
|
|
echo "Connected to $wifiname"
|
|
elif [[ $1 == "class" ]]; then
|
|
echo "connected"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [[ $1 == "status" ]]; then
|
|
name=$(name)
|
|
if [[ $name != "" ]]; then
|
|
echo "Connected"
|
|
else
|
|
echo "Disconnected"
|
|
fi
|
|
fi
|
|
|
|
if [[ $1 == "disconnect" ]]; then
|
|
wifiname=$(nmcli d | grep wifi | sed 's/^.*wifi.*connected//g' | xargs)
|
|
nmcli con down id "${wifiname}"
|
|
fi
|
|
|
|
if [[ $1 == "connect" ]]; then
|
|
nmcli con up ifname "$(/usr/bin/ls /sys/class/ieee80211/*/device/net/)"
|
|
fi
|
|
|
|
if [[ $1 == "toggle" ]]; then
|
|
name=$(name)
|
|
if [[ "$name" == "" ]]; then
|
|
nmcli con up ifname "$(/usr/bin/ls /sys/class/ieee80211/*/device/net/)"
|
|
else
|
|
wifiname=$(nmcli d | grep wifi | sed 's/^.*wifi.*connected//g' | xargs)
|
|
nmcli con down id "${wifiname}"
|
|
fi
|
|
fi
|
|
|
|
radio_status () {
|
|
radio_status=$(nmcli radio wifi)
|
|
if [[ $radio_status == "enabled" ]]; then
|
|
echo "on"
|
|
else
|
|
echo "off"
|
|
fi
|
|
}
|
|
|
|
if [[ $1 == "radio-status" ]]; then
|
|
radio_status
|
|
fi
|
|
|
|
if [[ $1 == "toggle-radio" ]]; then
|
|
stat=$(radio_status)
|
|
if [[ $stat == "on" ]]; then
|
|
nmcli radio wifi off
|
|
else
|
|
nmcli radio wifi on
|
|
fi
|
|
fi
|