
У меня в файле есть следующая строка ~/.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.sh
i3, но когда я запускаю его с помощью привязки клавиатуры, он всегда...позволяетWi-Fi, никогдаотключает.
Странно, если я нажимаю клавишу для запуска скрипта много раз быстро, он говорит Wireless disabled
один раз. В противном случае он всегда говорит Wireless enabled
.
Может ли кто-нибудь помочь или предложить альтернативные скрипты, позволяющие сделать то же самое?
решение1
Это похоже на состояние гонки: другое приложение может анализировать тот же ключ для переключения Wi-Fi.
Это можно проверить, привязав ваш скрипт к несвязанному ключу: если этот другой ключ заставляет ваш скрипт работать так, как ожидается, то у вас возникло состояние гонки на XF86WLAN.