
Ich habe die folgende Zeile in meinem ~/.i3/config
:
bindsym XF86WLAN exec ~/.i3/i3-scripts/toggle-wifi.sh
toggle-wifi.sh
:
#!/bin/bash
if nmcli nm wifi | grep -q "disabled" ; then
nmcli nm wifi on
notify-send -i network-wireless-full "Wireless enabled" "Your wireless adaptor has been enabled."
else
nmcli nm wifi off
notify-send -i network-wireless-disconnected "Wireless disabled" "Your wireless adaptor has been disabled."
fi
Das Skript funktioniert einwandfrei, wenn es vom Terminal aus ausgeführt wird. ./toggle-wifi.sh
Wenn ich es jedoch mit der Tastaturbelegung mit i3 ausführe,ermöglichtWLAN, niedeaktiviert.
Merkwürdig ist, wenn ich die Taste zum Ausführen des Skripts mehrere Male schnell hintereinander drücke, kommt die Meldung „ Wireless disabled
einmal“. Sonst kommt immer die Meldung „ Wireless enabled
.
Kann jemand helfen oder alternative Skripte anbieten, mit denen dasselbe erreicht werden kann?
Antwort1
Das klingt nach einem Wettlaufzustand: Eine andere App analysiert möglicherweise dieselbe Taste, um WLAN umzuschalten.
Dies lässt sich prüfen, indem Sie Ihr Skript an einen nicht verwandten Schlüssel binden: Wenn Ihr Skript mit diesem anderen Schlüssel wie erwartet funktioniert, liegt ein Race Condition auf XF86WLAN vor.