diff options
Diffstat (limited to '.local/bin')
| -rwxr-xr-x | .local/bin/statusbar/batinfo | 65 | ||||
| -rwxr-xr-x | .local/bin/statusbar/bluetoothinfo | 8 | ||||
| -rwxr-xr-x | .local/bin/statusbar/cpuinfo | 2 | ||||
| -rwxr-xr-x | .local/bin/statusbar/timeinfo | 15 | ||||
| -rwxr-xr-x | .local/bin/statusbar/volinfo | 22 |
5 files changed, 84 insertions, 28 deletions
diff --git a/.local/bin/statusbar/batinfo b/.local/bin/statusbar/batinfo index 86ef565..58ad4e3 100755 --- a/.local/bin/statusbar/batinfo +++ b/.local/bin/statusbar/batinfo @@ -2,34 +2,53 @@ set -e -status="$(acpi -abi)" # get battery and adapter info +# get charge of battery/batteries +POWER="$(acpi -b |\ + sed -Ee 's/^.* ([0-9]+)%/\1/g' |\ + awk '//{s+=$1;c++};END{printf "%.1f", s/c}' || true)" -ARG=${1:-$BLOCK_BUTTON} +# get charging state of adapter +[ -n "$(acpi -a | sed -E '/on-line/!d' || true)" ] && CHARGING=1 -case $ARG in - 1) notify-send -t $((15 * 1000)) --urgency=low "Battery status" "$status" ;; - 4) brightnessctl -q s 10%+ ;; - 5) brightnessctl -q s 10%- ;; -esac +ARG=${1:-${BLOCK_BUTTON}} -power=$(echo "${status}" | awk '/Battery [0-9]+: [A-Z]/{s+=$4;c++}; END{printf "%.1f%%", s/c}') +if [ -n "${ARG}" ]; then + if [ -z "${CHARGING}" ]; then + CHARGINGTXT="Not charging" + else + CHARGINGTXT="Charging" + fi -icon='?' -if [[ -z $(echo $status | sed -n '/on-line/p') ]]; then - case "${power%.*}" in - 100 | 9[0-9]) icon='\x0d\uf578\x0b' ;; - 8[0-9]) icon='\uf581';; - 7[0-9]) icon='\uf580';; - 6[0-9]) icon='\uf57f';; - 5[0-9]) icon='\uf57e';; - 4[0-9]) icon='\uf57d';; - 3[0-9]) icon='\uf57c';; - 2[0-9]) icon='\uf57b';; - 1[0-9]) icon='\x0e\uf57a\x0b';; - [0-9]) icon='\x1c\uf579\x0b';; + case ${ARG} in + 1) notify-send -t $((15 * 1000)) --urgency=low \ + "Battery status" \ + "Battery: ${POWER}\n${CHARGINGTXT}" + exit 0;; + 4) brightnessctl -q s 10%+; exit 0;; + 5) brightnessctl -q s 10%-; exit 0;; + *) exit 1 + esac +fi + +[ -n "${CHARGING}" ] && [ -n "$(echo "${POWER%.*}" | sed -En '/9[0-9]|100/p' || true)" ] && exit 0 + +ICON='?' +if [ -z "${CHARGING}" ]; then + case "${POWER%.*}" in + 100 | 9[0-9]) ICON=$'\uf578' ;; + 8[0-9]) ICON=$'\uf581';; + 7[0-9]) ICON=$'\uf580';; + 6[0-9]) ICON=$'\uf57f';; + 5[0-9]) ICON=$'\uf57e';; + 4[0-9]) ICON=$'\uf57d';; + 3[0-9]) ICON=$'\uf57c';; + 2[0-9]) ICON=$'\uf57b';; + 1[0-9]) ICON=$'\uf57a';; + [0-9]) ICON=$'\uf579';; + *) exit 1 esac else - icon='\uf583' + ICON=$'\uf583' fi -echo -en "$icon $power" +printf "%s %s%%\n" "${ICON}" "${POWER}" diff --git a/.local/bin/statusbar/bluetoothinfo b/.local/bin/statusbar/bluetoothinfo index 708f51e..80f85ab 100755 --- a/.local/bin/statusbar/bluetoothinfo +++ b/.local/bin/statusbar/bluetoothinfo @@ -13,7 +13,7 @@ DAEMONSTATUS="$(systemctl is-active bluetooth.service)" if [ "$DAEMONSTATUS" == "inactive" ]; then echo -en '\x0c\uf5b1\x0b' case $ARG in - 1) systemctl start bluetooth.service;; + 1) systemctl start bluetooth.service || notify-send 'Bluetooth' 'Please start the bluetooth service by running `systemctl start bluetooth.service`';; esac else CONNECTED="$(bluetoothctl info | awk '/Name/{$1=""; print $0}')" @@ -31,3 +31,9 @@ else esac fi fi + +if [ "${XDG_SESSION_TYPE}" = "wayland ];then + sigblock -b bt +else + sigdwmblocks 4 +fi diff --git a/.local/bin/statusbar/cpuinfo b/.local/bin/statusbar/cpuinfo index 78920a5..11b9efe 100755 --- a/.local/bin/statusbar/cpuinfo +++ b/.local/bin/statusbar/cpuinfo @@ -28,4 +28,4 @@ LOAD_1m=$(sed -E 's/^([^ ]+).*/\1/' /proc/loadavg | tr -d '\n') # Thermals TEMP="$(awk '{s+=$1}END{printf "%.1f", s / (1000*NR)}' /sys/class/thermal/thermal_zone*/temp)" -printf "[%s %s°]" "${LOAD_1m}" "${TEMP}" +printf "[%s %.01f°]\n" "${LOAD_1m}" "${TEMP}" diff --git a/.local/bin/statusbar/timeinfo b/.local/bin/statusbar/timeinfo index 884e165..762a490 100755 --- a/.local/bin/statusbar/timeinfo +++ b/.local/bin/statusbar/timeinfo @@ -7,6 +7,19 @@ TODAY_BEGIN='3c623e3c753e' # echo -en '</b></u>' | xxd -p - TODAY_END='3c2f753e3c2f623e' +function timeuntil() { + if ! [[ "${1}" =~ "[0-9]{4}-[0-9]{1,2}-[0-9]{1,2} [0-9]{2}:[0-9]{2}" ]]; then + echo "argument must be of the form \"YYYY-MM-DD hh:mm\"" + else + local TDIFF=$(($(date -d "${1}" +%s) - $(date +%s) - 24 * 60 * 60)) + if [ $(($TDIFF)) -lt 0 ]; then + echo 'YEEHAW' + else + date -u -d @${TDIFF} '+[%d %H:%M:%S]' + fi + fi +} + case $ARG in 1) notify-send --urgency=low \ "Calendar" \ @@ -14,7 +27,7 @@ case $ARG in | xxd -p - \ | tr -d '\n' \ | sed -Ee "s/1b5b376d/${TODAY_BEGIN}/g;s/1b5b32376d/${TODAY_END}/g" \ - | xxd -p -r -)" + | xxd -p -r -)" ;; 3) notify-send --urgency=low \ "Weather" \ diff --git a/.local/bin/statusbar/volinfo b/.local/bin/statusbar/volinfo index 692fe4d..72b0b1f 100755 --- a/.local/bin/statusbar/volinfo +++ b/.local/bin/statusbar/volinfo @@ -2,10 +2,28 @@ ARG=${1:-$BLOCK_BUTTON} +SIG="sigdwmblocks 4" + +[ "$XDG_SESSION_TYPE" = "wayland" ] && SIG="sigblock -b vol" + case $ARG in - 1) pamixer -t && sigdwmblocks 4;; + 1) pamixer -t + $SIG + ;; + 4) pamixer -i 5 + $SIG + ;; + 5) pamixer -d 5 + $SIG + ;; + *) + ;; esac VOL=$(pamixer --get-volume) -[ "$(pamixer --get-mute)" == "true" ] && echo -ne "\x0c\ufa80${VOL}\x0b" || echo -ne "\ufa7d${VOL}" +if [ "$(pamixer --get-mute)" = "true" ]; then + echo -e "\ufa80${VOL}" +else + echo -e "\ufa7d${VOL}" +fi |
