blob: b34f8f47b163dd3334b09cdc13543e413da300df (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/bin/bash
[[ "$(nmcli -g WIFI general)" == "disabled" ]] && nmcli radio wifi on
NETWORKS=$(nmcli -f SSID,SIGNAL,SECURITY dev wifi list | tail -n +2 | \
awk -F ' +' '
$1 != "" {
display = sprintf("%s (%s%%) [%s]", $1, $2, $3)
print display
}
' | sort -u)
CHOICE=$(echo "$NETWORKS" | rofi -dmenu -i -p "WiFi")
[[ -z "$CHOICE" ]] && exit 0
SSID=$(echo "$CHOICE" | sed 's/ (.*//')
BSSID=$(nmcli -t -f BSSID,SIGNAL dev wifi list | grep "^.*:$SSID$" | \
awk -F: '{print $1}' | sort -nr | head -n1)
[[ -z "$BSSID" ]] && BSSID="$SSID"
if nmcli dev wifi connect "$BSSID" 2>/dev/null; then
notify-send -u normal -i network-wireless "WiFi Status" "$SSID Connected Successfully"
else
PASSWORD=$(rofi -dmenu -password -p "Password for $SSID")
[[ -z "$PASSWORD" ]] && exit 1
nmcli dev wifi connect "$BSSID" password "$PASSWORD" && \
notify-send -u normal -i network-wireless "WiFi Status" "$SSID Connected Successfully"
fi
|