Скрипт переключения Wi-Fi не работает должным образом через i3

Скрипт переключения Wi-Fi не работает должным образом через i3

У меня в файле есть следующая строка ~/.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

Скрипт работает нормально при запуске из терминала с помощью ./toggle-wifi.shi3, но когда я запускаю его с помощью привязки клавиатуры, он всегда...позволяетWi-Fi, никогдаотключает.

Странно, если я нажимаю клавишу для запуска скрипта много раз быстро, он говорит Wireless disabledодин раз. В противном случае он всегда говорит Wireless enabled.

Может ли кто-нибудь помочь или предложить альтернативные скрипты, позволяющие сделать то же самое?

решение1

Это похоже на состояние гонки: другое приложение может анализировать тот же ключ для переключения Wi-Fi.

Это можно проверить, привязав ваш скрипт к несвязанному ключу: если этот другой ключ заставляет ваш скрипт работать так, как ожидается, то у вас возникло состояние гонки на XF86WLAN.

Связанный контент