
私のには次の行があります~/.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でキーボードバインディングを使用して実行すると、有効にするwifi、決して無効にする。
奇妙なことに、スクリプトを何度も素早く実行するためにキーを押すと、Wireless disabled
1 回 と表示されます。それ以外の場合は常に と表示されますWireless enabled
。
同じことを行うための代替スクリプトを誰か助けたり提供したりしてくれませんか?
答え1
これは競合状態のようです。別のアプリが同じキーを解析して Wi-Fi を切り替えている可能性があります。
これは、スクリプトを無関係なキーにバインドすることで確認できます。この別のキーによってスクリプトが期待どおりに動作する場合、XF86WLAN で競合状態が発生しています。