#!/bin/sh timeout=5 _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 } batt_status() { sudo tlp-stat -b | awk 'BEGIN{ORS=" "} /\/status/{print $3}/^Charge/{print $3}'; } cpu_freq() { cat /proc/cpuinfo | grep '^cpu MHz' | awk '{print $4}' | sort -nr | sed 1q } status_line() { echo \ "Temp: $(sensors | sed -n 's/^temp1:[\t ]*//p' | sed 's/ *//g' | sed 1q | tr -d '\n')|"\ "Fan: $(sensors | sed -n 's/^fan1:[\t ]*//p')|"\ "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')" } _type="$1"; shift while true ; do xsetroot -name "$("${_type}_status_line" "$@")" sleep "$timeout" done