#!/bin/sh # show mountpoint usage fs_perc() { df -h $1 | awk 'NR==2 {print $5}' } volume() { sndioctl output.level | awk -F = '{printf "%d",$2*100}' } cputemp() { sysctl hw.sensors.cpu0.temp0 | awk -F'=' '{split($2,a,"."); printf "[%s°C]", a[1]}' } cpuspeed() { sysctl hw.cpuspeed | awk -F'=' '{print $2}' } cpuperc() { vmstat | awk 'END {printf $16}' } ramperc() { vmstat -s | awk ' /pages managed/ { page_tot = $1; next } /pages active/ { page_active = $1; next } /pages inactive/ { page_inactive = $1; next } END { used = page_active + page_inactive perc = used / page_tot * 100 perc = int(perc) print perc } ' } loadavg() { #uptime | awk -F'[a-z]:' '{print $2}' | tr -d ' ' sysctl -n vm.loadavg } upsince() { uptime | awk ' $3 ~ /secs,/ { printf "%ss", $2 } $4 ~ /min/ { sub(",", "", $4) printf "%s%s", $3, $4 } $4 ~ /hrs/ { sub(",", "", $4) printf "%sh", $3 } $3 ~ /[0-9]+:[0-9]/ { sub(",", "", $3) printf "%s", $3 } ' } bat() { apm | awk ' NR==1 { if ($3 == "charging,") { batstr = "+" $4 } else { batstr = "-" $4 } sub("%","",$4) lvl = $4 + 0 } NR==2 && /not connected/ { if (lvl < 90) { printf(" [bat:%s] ", batstr) } } ' #test $(apm -a) -eq 0 && printf "🗲 %s%%" $(apm -l) } mpdstatus() { pgrep -q mpd if [ $? -eq 0 ]; then mpc -f "[[%artist% - ]%title%]|[%file%]" | awk ' (NR == 1) { status = $0 if (length(status) > 50) { status = substr($0, 1, 50) "..." } } (NR == 2) && /playing/ { isplaying = 1 #progress = $3 } END { if (isplaying) { printf " [%s] ", status } } ' else printf "" fi } temp() { sysctl hw.sensors | awk -F"=" '{print $2; exit}' } # wifi iface wifi() { ifconfig $1 | awk ' END { ap = $3 match($0, "[0-9]+%") if ( RLENGTH != -1 ) { perc = substr($0, RSTART, RLENGTH) printf("📶:%s %s", ap, perc) } } ' } pubip() { #ftp -M -V -o- https://ipecho.net/plain ftp -M -V -o- https://ipaddress.sh/ } # ratio of the year yearratio() { # number of days in the year awk 'BEGIN { year = strftime("%Y") today = strftime("%j") days = 365 if (year % 4 == 0) { days=366 if ((year % 100 == 0) && (year % 400 != 0)) { days == 365 } } perc = today / days * 100 print today "/" days }' } # percentage of the year yearperc() { # number of days in the year awk 'BEGIN { elapsed = (strftime("%j") - 1 ) * 86400 \ + strftime("%H") * 3600 \ + strftime("%M") * 60 \ + strftime("%S") year = strftime("%Y") days = 365 if (year % 4 == 0) { days=366 if ((year % 100 == 0) && (year % 400 != 0)) { days = 365 } } total = days * 86400 perc = elapsed * 100 / total # check if there is a dot perc = int(perc) date = strftime("%d/%m %H:%M") printf "[%s:%s%% %s]", year, perc, date }' } datetime() { date "+%d/%m %H:%M" } #printf "%s %s 🌡 %s°C 💾 %s %s" \ printf "%s%s%s [up:%s] [%s] " \ "$(mpdstatus)" \ "$(bat)" \ "$(cputemp)" \ "$(upsince)" \ "$(datetime)"