我的 中有以下行~/.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 上存在竞争条件。