i3를 통해 Wi-Fi 토글 스크립트가 제대로 실행되지 않습니다.

i3를 통해 Wi-Fi 토글 스크립트가 제대로 실행되지 않습니다.

내에는 다음 줄이 있습니다 ~/.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에 경쟁 조건이 있는 것입니다.

관련 정보