From 329c54f5e5b532d062e6c5514e61b743096cb6b8aef4acd3458f1c822534894f Mon Sep 17 00:00:00 2001 From: Mikkel Harboe Arp Henriksen Date: Sun, 29 Jun 2025 14:21:21 +0200 Subject: [PATCH] =?UTF-8?q?fikset=20wifi=20menu=20s=C3=A5=20der=20ogs?= =?UTF-8?q?=C3=A5=20kan=20v=C3=A6lges=20wifi=20netv=C3=A6rk=20med=20kode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/launch-wifi-menu.sh.j2 | 37 +++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/templates/launch-wifi-menu.sh.j2 b/templates/launch-wifi-menu.sh.j2 index 6d8f8fd..8cf7c57 100644 --- a/templates/launch-wifi-menu.sh.j2 +++ b/templates/launch-wifi-menu.sh.j2 @@ -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 netværk 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