blob: 1a537f648100d98530fdcc25f8c1433b6dcd861d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
#!/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
# 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' ' '
}
tlp_status() {
tlp-stat -s | sed -n 's/^Mode *= //p'
}
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')"
}
t495_status_line() {
echo \
"CPU: $(cpu_freq)|"\
"TLP: $(tlp_status)|"\
"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
|