Wifi alternar script não está sendo executado corretamente através do i3

1

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 quando executado do terminal com ./toggle-wifi.sh , mas quando eu o executo usando a ligação do teclado com o i3, ele só ativa wifi, nunca desativa .

Uma coisa estranha é que, se eu pressionar a tecla para executar o script várias 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?

    
por Proletariat 19.02.2016 / 12:57

1 resposta

1

Isso soa como uma condição de corrida: outro aplicativo pode analisar a mesma chave para alternar o Wifi.

Isso pode ser verificado ligando seu script a uma chave não relacionada: se essa outra chave fizer seu script funcionar como esperado, você terá uma condição de corrida em XF86WLAN.

    
por 23.02.2016 / 13:10