diff options
| author | subh <subh@example.com> | 2026-01-19 21:47:02 +0530 |
|---|---|---|
| committer | subh <subh@example.com> | 2026-01-19 21:47:02 +0530 |
| commit | 65aad59ef0802708a8a7c8a312755232cc1823d3 (patch) | |
| tree | fe0a437f3e9a71ab5b9197d9b8fa72c24d2170ea /scripts/wifi-connect.sh | |
initial commit
Diffstat (limited to 'scripts/wifi-connect.sh')
| -rwxr-xr-x | scripts/wifi-connect.sh | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/scripts/wifi-connect.sh b/scripts/wifi-connect.sh new file mode 100755 index 0000000..b34f8f4 --- /dev/null +++ b/scripts/wifi-connect.sh @@ -0,0 +1,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 + |
