나는 다음과 같은 줄을 가지고 있습니다 ~/.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에 경쟁 조건이 있는 것입니다.