mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-15 07:27:17 +00:00
ItsDrike
ac23da55c5
This configuration was simply copied from my old Arch Linux system. There are some issues that still need to be solved, namely with fonts and missing bitcoin price script, but it's mostly minor.
53 lines
1.4 KiB
Bash
Executable file
53 lines
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# shellcheck source=include
|
|
source "./scripts/include"
|
|
|
|
STRENGTH_ICONS=("" "" "" "" "" "")
|
|
DISCONNECTED_ICON=""
|
|
WIFI_OFF=""
|
|
|
|
toggle() {
|
|
status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "wlan") | .soft' | head -1)
|
|
|
|
if [ "$status" = "unblocked" ]; then
|
|
rfkill block wlan
|
|
else
|
|
rfkill unblock wlan
|
|
fi
|
|
}
|
|
|
|
get_report() {
|
|
connection_details="$(nmcli -t -f NAME,TYPE,DEVICE connection show --active | grep wireless | head -n1)"
|
|
essid="$(echo $connection_details | cut -d':' -f1)"
|
|
device="$(echo $connection_details | cut -d':' -f3)"
|
|
if [ -n "$device" ]; then
|
|
state="$(nmcli -t -f DEVICE,STATE device status | grep "$device" | head -n1 | cut -d':' -f2)"
|
|
signal="$(nmcli -t -f in-use,signal dev wifi | grep "\*" | cut -d':' -f2)"
|
|
else
|
|
state="unknown"
|
|
signal="0"
|
|
fi
|
|
|
|
if [ "$state" = "disconnected" ] ; then
|
|
icon="$DISCONNECTED_ICON"
|
|
elif [ "$state" = "unknown" ]; then
|
|
icon="$WIFI_OFF"
|
|
else
|
|
icon="$(pick_icon "$signal" 0 100 "${STRENGTH_ICONS[@]}")"
|
|
fi
|
|
|
|
jq -n -c --monochrome-output \
|
|
--arg essid "$essid" \
|
|
--arg icon "$icon" \
|
|
--arg state "$state" \
|
|
--arg signal "$signal" \
|
|
'$ARGS.named'
|
|
}
|
|
|
|
case "$1" in
|
|
"toggle") toggle ;;
|
|
"status") get_report ;;
|
|
*) >&2 echo "Invalid usage, argument '$1' not recognized."; exit 1 ;;
|
|
esac
|