
Eu tenho a seguinte linha no meu ~/.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
O script funciona bem ao executar a partir do terminal, ./toggle-wifi.sh
mas quando o executo usando a ligação do teclado com o i3, ele só funcionahabilitaWi-Fi, nuncadesabilita.
O estranho é que se eu pressionar a tecla para executar o script muitas vezes rapidamente, ele diz Wireless disabled
uma vez. Caso contrário, sempre diz Wireless enabled
.
Alguém pode ajudar ou oferecer scripts alternativos para fazer a mesma coisa?
Responder1
Isso soa como uma condição de corrida: outro aplicativo pode estar analisando a mesma chave para alternar o Wifi.
Isso pode ser verificado vinculando seu script a uma chave não relacionada: se essa outra chave fizer seu script funcionar conforme o esperado, então você terá uma condição de corrida no XF86WLAN.