
Tengo la siguiente línea en mi ~/.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
El script funciona bien cuando se ejecuta desde la terminal, ./toggle-wifi.sh
pero cuando lo ejecuto usando el enlace del teclado con i3, solo funcionapermitewifi, nuncadesactiva.
Algo extraño es que si presiono la tecla para ejecutar el script muchas veces rápidamente, dice Wireless disabled
una vez. De lo contrario siempre dice Wireless enabled
.
¿Alguien puede ayudar u ofrecer scripts alternativos para hacer lo mismo?
Respuesta1
Esto suena como una condición de carrera: otra aplicación puede estar analizando la misma clave para alternar Wifi.
Esto se puede verificar vinculando su secuencia de comandos a una clave no relacionada: si esta otra clave hace que su secuencia de comandos funcione como se esperaba, entonces tiene una condición de carrera en XF86WLAN.