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.shが、i3でキーボードバインディングを使用して実行すると、有効にするwifi、決して無効にする

奇妙なことに、スクリプトを何度も素早く実行するためにキーを押すと、Wireless disabled1 回 と表示されます。それ以外の場合は常に と表示されますWireless enabled

同じことを行うための代替スクリプトを誰か助けたり提供したりしてくれませんか?

答え1

これは競合状態のようです。別のアプリが同じキーを解析して Wi-Fi を切り替えている可能性があります。

これは、スクリプトを無関係なキーにバインドすることで確認できます。この別のキーによってスクリプトが期待どおりに動作する場合、XF86WLAN で競合状態が発生しています。

関連情報