Wifi 切换脚本无法通过 i3 正常运行

Wifi 切换脚本无法通过 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 的键盘绑定运行它时,它只使无线网络,从来没有禁用

奇怪的是,如果我多次快速按下该键来运行脚本,它会说Wireless disabled一次。否则它总是说Wireless enabled

任何人都可以帮助或提供任何替代脚本来完成同样的事情吗?

答案1

这听起来像是一个竞争条件:另一个应用程序可能正在解析相同的密钥来切换 Wifi。

可以通过将脚本绑定到不相关的密钥来检查这一点:如果另一个密钥使您的脚本按预期工作,则 XF86WLAN 上存在竞争条件。

相关内容