diff options
Diffstat (limited to '.local/bin/statusbar')
| -rwxr-xr-x | .local/bin/statusbar/clock | 2 | ||||
| -rwxr-xr-x | .local/bin/statusbar/cpubars | 44 | ||||
| -rwxr-xr-x | .local/bin/statusbar/crypto | 2 | ||||
| -rwxr-xr-x | .local/bin/statusbar/nettraf | 4 | ||||
| -rwxr-xr-x | .local/bin/statusbar/price | 6 |
5 files changed, 51 insertions, 7 deletions
diff --git a/.local/bin/statusbar/clock b/.local/bin/statusbar/clock index 1b43392..af50117 100755 --- a/.local/bin/statusbar/clock +++ b/.local/bin/statusbar/clock @@ -20,7 +20,7 @@ esac case $BLOCK_BUTTON in 1) notify-send "This Month" "$(cal --color=always | sed "s/..7m/<b><span color=\"red\">/;s/..27m/<\/span><\/b>/")" && notify-send "Appointments" "$(calcurse -D ~/.config/calcurse -d3)" ;; - 2) setsid -f "$TERMINAL" -e calcurse -D ~/.config/calcurse ;; + 2) setsid -f "$TERMINAL" -e calcurse ;; 3) notify-send "📅 Time/date module" "\- Left click to show upcoming appointments for the next three days via \`calcurse -d3\` and show the month via \`cal\` - Middle click opens calcurse if installed" ;; 6) "$TERMINAL" -e "$EDITOR" "$0" ;; diff --git a/.local/bin/statusbar/cpubars b/.local/bin/statusbar/cpubars new file mode 100755 index 0000000..297424e --- /dev/null +++ b/.local/bin/statusbar/cpubars @@ -0,0 +1,44 @@ +#!/bin/sh + +# Module showing CPU load as a changing bars. +# Just like in polybar. +# Each bar represents amount of load on one core since +# last run. + +# Cache in tmpfs to improve speed and reduce SSD load +cache=/tmp/cpubarscache + +case $BLOCK_BUTTON in + 2) setsid -f "$TERMINAL" -e htop ;; + 3) notify-send "🪨 CPU load module" "Each bar represents +one CPU core";; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; +esac + +# id total idle +stats=$(awk '/cpu[0-9]+/ {printf "%d %d %d\n", substr($1,4), ($2 + $3 + $4 + $5), $5 }' /proc/stat) +[ ! -f $cache ] && echo "$stats" > "$cache" +old=$(cat "$cache") +printf "🪨" +echo "$stats" | while read -r row; do + id=${row%% *} + rest=${row#* } + total=${rest%% *} + idle=${rest##* } + + case "$(echo "$old" | awk '{if ($1 == id) + printf "%d\n", (1 - (idle - $3) / (total - $2))*100 /12.5}' \ + id="$id" total="$total" idle="$idle")" in + + "0") printf "▁";; + "1") printf "▂";; + "2") printf "▃";; + "3") printf "▄";; + "4") printf "▅";; + "5") printf "▆";; + "6") printf "▇";; + "7") printf "█";; + "8") printf "█";; + esac +done; printf "\\n" +echo "$stats" > "$cache" diff --git a/.local/bin/statusbar/crypto b/.local/bin/statusbar/crypto index ef025d4..94ed949 100755 --- a/.local/bin/statusbar/crypto +++ b/.local/bin/statusbar/crypto @@ -36,7 +36,7 @@ printprices() { # Print/format all prices # If currencies haven't been updated today, try to update them. [ "$(stat -c %x "$HOME/.local/share/crypto-prices" | cut -d' ' -f1)" != "$(date '+%Y-%m-%d')" ] && - { ping -q -c 1 1.1.1.1 >/dev/null 2>&1 && getprices || exit ;} + { ping -q -c 1 example.org >/dev/null 2>&1 && getprices || exit ;} case $BLOCK_BUTTON in 1) uptime="$(date -d "$(stat -c %x "$dir")" '+%D at %T' | sed "s|$(date '+%D')|Today|")" diff --git a/.local/bin/statusbar/nettraf b/.local/bin/statusbar/nettraf index ac43416..71e6fe4 100755 --- a/.local/bin/statusbar/nettraf +++ b/.local/bin/statusbar/nettraf @@ -19,10 +19,10 @@ update() { cache=${XDG_CACHE_HOME:-$HOME/.cache}/${1##*/} [ -f "$cache" ] && read -r old < "$cache" || old=0 printf %d\\n "$sum" > "$cache" - printf %d\\n $(( (sum - old) / 1024 )) + printf %d\\n $(( sum - old )) } rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes) tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes) -printf "🔻%dKiB 🔺%dKiB\\n" "$rx" "$tx" +printf "🔻%4sB 🔺%4sB\\n" $(numfmt --to=iec $rx) $(numfmt --to=iec $tx) diff --git a/.local/bin/statusbar/price b/.local/bin/statusbar/price index 3f87f7a..45b01ad 100755 --- a/.local/bin/statusbar/price +++ b/.local/bin/statusbar/price @@ -11,18 +11,18 @@ dir="${XDG_DATA_HOME:-$HOME/.local/share}/crypto-prices" pricefile="$dir/$1" chartfile="$dir/$1-chart" -updateprice() { ping -q -c 1 1.1.1.1 >/dev/null 2>&1 && +updateprice() { ping -q -c 1 example.org >/dev/null 2>&1 && curl -s "rate.sx/1$1" > "$pricefile" && curl -s "rate.sx/$1$interval" > "$chartfile" ;} [ -d "$dir" ] || mkdir -p "$dir" [ "$(stat -c %x "$pricefile" 2>/dev/null | cut -d' ' -f1)" != "$(date '+%Y-%m-%d')" ] && - updateprice + updateprice "$1" case $BLOCK_BUTTON in 1) setsid "$TERMINAL" -e less -Sf "$chartfile" ;; - 2) notify-send -u low "$3 Updating..." "Updating $2 price..." && + 2) notify-send -u low "$3 Updating..." "Updating $2 price..." updateprice "$1" && notify-send "$3 Update complete." "$2 price is now \$$(cat "$pricefile")" ;; 3) uptime="$(date -d "$(stat -c %x "$pricefile")" '+%D at %T' | sed "s|$(date '+%D')|Today|")" |
