El script de conmutación de Wifi no se ejecuta correctamente a través de i3

El script de conmutación de Wifi no se ejecuta correctamente a través de i3

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.shpero 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 disableduna 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.

información relacionada