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의 키 바인딩을 사용하여 실행하면만들다와이파이 절대 안됨장애를 입히다.

이상한 점은 스크립트를 실행하기 위해 키를 여러 번 빠르게 누르면 Wireless disabled한 번만 말한다는 것입니다. 그렇지 않으면 항상 이라고 표시됩니다 Wireless enabled.

누구든지 동일한 작업을 수행하기 위해 대체 스크립트를 돕거나 제공할 수 있습니까?

답변1

이는 경쟁 조건처럼 들립니다. 다른 앱이 Wi-Fi를 전환하기 위해 동일한 키를 구문 분석할 수 있습니다.

이는 스크립트를 관련되지 않은 키에 바인딩하여 확인할 수 있습니다. 다른 키로 인해 스크립트가 예상대로 작동하면 XF86WLAN에 경쟁 조건이 있는 것입니다.

관련 정보