dotfiles/bin/set-wlp
2023-05-22 13:44:18 +02:00

36 lines
746 B
Bash
Executable File

#!/bin/bash -e
RESCAN=0
NMCLI=(nmcli dev wifi)
CON=("${NMCLI[@]}" connect)
function connect() {
if ! "${CON[@]}" "$1" 2> /dev/null; then
if [ "$RESCAN" = 1 ]; then
return
fi
RESCAN=1
"${NMCLI[@]}" list --rescan yes > /dev/null
if ! "${CON[@]}" "$1"; then
return
fi
fi
kill -36 "$(cat "$HOME/.cache/pidofbar")"
exit
}
if [ -n "$1" ]; then
connect "$1"
else
readarray -t NET <<< \
"$(nmcli -f SSID,CHAN,RATE,SIGNAL,BARS,SECURITY dev wifi list \
| awk '!seen[$1]++')"
COLUMNS=1
select net in "${NET[@]}"; do
connect "$(awk '{print $1}' <<< "$net")" && break
done
fi