41 lines
982 B
Plaintext
41 lines
982 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
# shellcheck source=/dev/null
|
||
|
source "$(dirname "$0")"/utils
|
||
|
|
||
|
STATUS="$(rfkill list | sed -n 2p | awk '{print $3}')"
|
||
|
|
||
|
icon() {
|
||
|
[ "$STATUS" = "no" ] && echo "" || echo ""
|
||
|
}
|
||
|
|
||
|
toggle() {
|
||
|
if [ "$STATUS" = "no" ]; then
|
||
|
rfkill block all
|
||
|
notify-send --urgency=normal -i airplane-mode-symbolic "Airplane Mode" "Airplane mode has been turned on!"
|
||
|
else
|
||
|
rfkill unblock all
|
||
|
notify-send --urgency=normal -i airplane-mode-disabled-symbolic "Airplane Mode" "Airplane mode has been turned off!"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
if [ "$1" = "toggle" ]; then
|
||
|
toggle
|
||
|
else
|
||
|
last_time=$(get_time_ms)
|
||
|
STATUS="$(rfkill list | sed -n 2p | awk '{print $3}')"
|
||
|
icon
|
||
|
|
||
|
rfkill event | while read -r _; do
|
||
|
current_time=$(get_time_ms)
|
||
|
delta=$((current_time - last_time))
|
||
|
# 50ms debounce
|
||
|
if [[ $delta -gt 50 ]]; then
|
||
|
STATUS="$(rfkill list | sed -n 2p | awk '{print $3}')"
|
||
|
icon
|
||
|
# reset debounce timer
|
||
|
last_time=$(get_time_ms)
|
||
|
fi
|
||
|
done
|
||
|
fi
|