私は次のような行を持っています~/.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に競合状態があります。