fikset wifi menu så der også kan vælges wifi netværk med kode

This commit is contained in:
2025-06-29 14:21:21 +02:00
parent db13a0d2cc
commit 329c54f5e5

View File

@@ -1,15 +1,32 @@
#!/bin/bash
# Dette script viser en liste af Wi-Fi netværk i en korrekt positioneret Wofi-menu
# og forsøger at forbinde til det valgte netværk.
# Et avanceret script til at vælge og forbinde til Wi-Fi via wofi
# 1. Viser en liste af tilgængelige Wi-Fi SSID'er med nmcli
# 2. Sender listen til wofi, som bruger vores specielle 'config-network' fil
SSID=$(nmcli -t -f SSID device wifi list --rescan yes | sort -u | wofi --show dmenu --conf-file "$HOME/.config/wofi/config-network" --location top_right --x -70 --y 45 --width 200 --style "$HOME/.config/wofi/style.css" -p "Vælg Wi-Fi Netværk")
# Viser en renset liste af Wi-Fi SSID'er i vores special-placerede wofi-menu
# Bruger `sed` til at fjerne stjernen '*' fra det aktive netrk for et renere look
CHOSEN_SSID=$(nmcli --terse --fields=SSID,IN-USE device wifi list --rescan yes | sed '/\*/d' | sed 's/\\:/-/g' | sort -u | wofi \
--show dmenu \
--style "$HOME/.config/wofi/style.css" \
--conf "$HOME/.config/wofi/config-network" \
-p "Vælg Wi-Fi Netværk")
# 3. Hvis et netværk blev valgt (brugeren trykkede ikke Esc), så prøv at forbinde
if [ -n "$SSID" ]; then
# NetworkManager vil selv håndtere at spørge efter adgangskode via en grafisk prompt,
# hvis det er en ny forbindelse.
nmcli device wifi connect "$SSID"
# Afslut hvis intet blev valgt (brugeren trykkede Esc)
if [ -z "$CHOSEN_SSID" ]; then
exit 0
fi
# Tjek om der allerede findes en gemt forbindelse med dette navn
# Vi bruger `grep -w` for at sikre et præcist match
if nmcli connection show | grep -wq "^${CHOSEN_SSID}"; then
# Hvis ja, bare aktiver den. NetworkManager bruger den gemte adgangskode.
nmcli connection up "$CHOSEN_SSID"
else
# Hvis nej, er det et nyt netværk. Spørg efter adgangskode i et nyt wofi-vindue.
# Dette vindue bruger standard wofi-konfigurationen og vises i midten.
CHOSEN_PASSWORD=$(wofi --show dmenu --password -p "Adgangskode til: $CHOSEN_SSID")
# Kun fortsæt hvis en adgangskode blev indtastet
if [ -n "$CHOSEN_PASSWORD" ]; then
nmcli device wifi connect "$CHOSEN_SSID" password "$CHOSEN_PASSWORD"
fi
fi