
我的 中有以下行~/.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 的鍵盤綁定運行它時,它只使無線網絡,從來沒有停用。
奇怪的是,如果我多次快速按下該鍵來運行腳本,它會說Wireless disabled
一次。否則它總是說Wireless enabled
。
任何人都可以幫助或提供任何替代腳本來完成相同的事情嗎?
答案1
這聽起來像是一個競爭條件:另一個應用程式可能正在解析相同的金鑰來切換 Wifi。
可以透過將腳本綁定到不相關的金鑰來檢查這一點:如果另一個金鑰使您的腳本按預期工作,則 XF86WLAN 上存在競爭條件。