aboutsummaryrefslogtreecommitdiff
path: root/x/status-bar
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2024-01-20 12:31:58 -0500
committerMitchell Riedstra <mitch@riedstra.dev>2024-01-20 12:31:58 -0500
commite2a0cf2a79b43f9f86b74270f3d96fe300687804 (patch)
treea87edf55f81e78f4d0968d6f006562090260e068 /x/status-bar
parentec83443853116b07f18fbef8c6de31cf157939a0 (diff)
downloaddotfiles-e2a0cf2a79b43f9f86b74270f3d96fe300687804.tar.gz
dotfiles-e2a0cf2a79b43f9f86b74270f3d96fe300687804.tar.xz
Cleanup unused files and code.
Diffstat (limited to 'x/status-bar')
-rwxr-xr-xx/status-bar204
1 files changed, 204 insertions, 0 deletions
diff --git a/x/status-bar b/x/status-bar
new file mode 100755
index 0000000..30fdbd7
--- /dev/null
+++ b/x/status-bar
@@ -0,0 +1,204 @@
+#!/bin/sh
+timeout=10
+
+_sys_memory() {
+ free -m | awk '/^Mem/{print $6;exit 0;}'
+}
+
+_sys_uptime() {
+uptime | sed -re's/^.*up[ ]+//g' -e's/^([^,]*),.*/\1/g' -e's/^([^ ]+)[ ]*(.).*/\1\2/g'
+}
+
+wireless_info() {
+ _if="$1"
+
+ printf "WiFi: %s %s %s %s" \
+ "$_if" \
+ "$(nmcli c | awk "/$_if/"'{print $1}')" \
+ "$(ip -4 addr show dev "$_if" | awk '/inet /{print $2}')" \
+ "$(awk "/^$_if/"'{print $4+0}' /proc/net/wireless)dbm"
+}
+
+eth_info() {
+ _if="$1"
+
+ printf "Eth: %s %s %s" \
+ "$_if" \
+ "$(ip -4 addr show dev "$_if" | awk '/inet /{print $2}')" \
+ ""
+
+ # "$(ifconfig "$_if" | grep -oE '[0-9]+baseT')"
+}
+
+network_info() {
+ # default_if="$(netstat -rnf inet | awk '/^default/{print $8}')"
+ default_if="$(ip route | awk '/^default/{print $5;exit 0;}')"
+
+ if [ -z "$default_if" ] ; then
+ echo "No conn"
+ elif [ -d "/sys/class/net/$default_if/wireless" ] ; then
+ wireless_info "$default_if"
+ else
+ eth_info "$default_if"
+ fi
+}
+
+
+pine_batt_status() {
+ cat \
+ /sys/class/power_supply/axp20x-battery/capacity \
+ /sys/class/power_supply/axp20x-battery/status
+}
+
+batt_status() {
+ # sudo tlp-stat -b | awk 'BEGIN{ORS=" "} /\/status/{print $3}/^Charge/{print $3}';
+ batt="BAT0"
+ supplyN="AC"
+ while [ $# -gt 0 ] ; do case $1 in
+ -b) batt="$2"; shift ; shift ;;
+ -s) supplyN="$2"; shift ; shift ;;
+ *) exit 2;
+ esac ; done
+ printf "%s %s" \
+ "$(cat "/sys/class/power_supply/$batt/capacity")" \
+ "$(charging_status -s "$supplyN")"
+}
+
+charging_status() {
+ supplyN="AC"
+ while [ $# -gt 0 ] ; do case $1 in
+ -s) supplyN="$2"; shift ; shift ;;
+ *) exit 2;
+ esac ; done
+ online_f="/sys/class/power_supply/$supplyN/online"
+ online="$(cat "$online_f")"
+ if [ "$online" = "1" ] ; then
+ printf "Charging"
+ elif [ "$online" = "0" ] ; then
+ printf "Discharging"
+ else
+ printf "Unknown charging status"
+ fi
+}
+
+cpu_freq() {
+# cat /proc/cpuinfo | grep '^cpu MHz' | awk '{print $4}' | sort -nr | sed 1q
+# Average out the CPU frequency
+# cat /proc/cpuinfo | awk 'BEGIN{n=0;mhz=0;}/^cpu MHz/{mhz += $4;n++;}END{print mhz/n;}'
+# Max/min
+# cat /proc/cpuinfo \
+# | grep '^cpu MHz' \
+# | sort -rnk 4,4 \
+# | sed -n -e 1p -e '$p' \
+# | awk '{printf("%0.2f ", $4/1000)} END{print ""}'
+# Just show the first four CPUs
+# grep '^cpu MHz' /proc/cpuinfo \
+# | awk '{printf("%0.1f\n", $4/1000)}' \
+# | sort \
+# | uniq \
+# | sort -rn \
+# | sed 4q \
+# | tr '\n' ' '
+#
+grep '^cpu MHz' /proc/cpuinfo \
+| awk '{
+ average = average + $4;
+ counter = counter + 1
+} END {
+ printf("%0.1f\n", (average/counter)/1000)
+}'
+}
+
+tlp_status() {
+tlp-stat -s | sed -n 's/^Mode *= //p'
+}
+
+_fan() {
+ sensors | sed -n 's/^fan1:[\t ]*//p'
+}
+
+k10Temp() {
+sensors | sed -n '/^k10/,/^$/p' | awk '/^Tctl/{print $2}' \
+ | sed -e's/+//g' -e's/\.[0-9][^0-9]*$//g'
+}
+
+core_0_temp() {
+sensors | grep 'Core 0' | awk '{print $3}' | grep -oE '[0-9.]*'
+}
+
+pine_Temp() {
+ sensors | sed -n -e 's/^temp1[ \t:]*//p' | sed 1q
+}
+
+pine_status_line() {
+echo \
+"Batt: $(pine_batt_status)|"\
+"Temp: $(pine_Temp)|"\
+"$(network_info)|"\
+"$(date '+%m.%d.%Y %H:%M:%S')"
+}
+
+status_line() {
+echo \
+"Temp: $(sensors | sed -n 's/^temp1:[\t ]*//p' | sed 's/ *//g' | sed 1q | tr -d '\n')|"\
+
+"Fan: $(_fan)|"\
+"Cpu Freq: $(cpu_freq)mhz|"\
+"Batt: $(batt_status)|"\
+"$(network_info)|"\
+"Free Mem: $(_sys_memory)|"\
+"Uptime: $(_sys_uptime)|"\
+"$(date '+%m.%d.%Y %H:%M:%S')"
+}
+
+x230_status_line() {
+echo \
+"Fan: $(sensors | sed -n 's/^fan1:[\t ]*//p')|"\
+"Batt: $(batt_status | sed -e's/ *$//g')|"\
+"$(network_info)|"\
+"$(date '+%m.%d.%Y %H:%M:%S')"
+}
+
+dell7590_status_line() {
+echo \
+"Batt: $(batt_status | sed -e's/ *$//g')|"\
+"$(network_info)|"\
+"$(date '+%m.%d.%Y %H:%M:%S')"
+}
+
+t495_status_line() {
+echo \
+"Fan: $(_fan)|"\
+"Temp: $(k10Temp)|"\
+"CPU: $(cpu_freq)|"\
+"Batt: $(batt_status | sed -e's/ *$//g')|"\
+"$(network_info)|"\
+"$(date '+%m.%d.%Y %H:%M')"
+}
+
+yoga6_status_line() {
+echo \
+"Fan: $(_fan)|"\
+"Temp: $(k10Temp)|"\
+"CPU: $(cpu_freq)|"\
+"Batt: $(batt_status -b BAT1 -s ACAD | sed -e's/ *$//g')|"\
+"$(network_info)|"\
+"$(date '+%m.%d.%Y %H:%M')"
+}
+
+desktop_status_line() {
+echo \
+"Temp: $(core_0_temp)|"\
+"CPU: $(cpu_freq)|"\
+"$(network_info)|"\
+"$(date '+%m.%d.%Y %H:%M')"
+}
+
+# "$@" ;exit 0
+
+_type="$1"; shift
+while true ; do
+xsetroot -name "$("${_type}_status_line" "$@")"
+# echo "$("${_type}_status_line" "$@")"
+sleep "$timeout"
+done