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 上存在競爭條件。

相關內容