125 lines
3 KiB
Bash
Executable file
125 lines
3 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# Battery :
|
|
bat(){
|
|
for battery in /sys/class/power_supply/BAT?*; do
|
|
# If non-first battery, print a space separator.
|
|
[ -n "${capacity+x}" ] && printf " "
|
|
# Sets up the status and capacity
|
|
case "$(cat "$battery/status" 2>&1)" in
|
|
"Full") status="⚡" ;;
|
|
"Discharging") status="🔋" ;;
|
|
"Charging") status="🔌" ;;
|
|
"Not charging") status="🛑" ;;
|
|
"Unknown") status="♻️" ;;
|
|
*) exit 1 ;;
|
|
esac
|
|
capacity="$(cat "$battery/capacity" 2>&1)"
|
|
# Will make a warn variable if discharging and low
|
|
[ "$status" = "🔋" ] && [ "$capacity" -le 25 ] && warn="❗"
|
|
# Prints the info
|
|
printf "%s%s%d%%" "$status" "$warn" "$capacity"; unset warn
|
|
done && printf "\\n"
|
|
}
|
|
|
|
# Date && clock :
|
|
dat(){
|
|
clock=$(date '+%I')
|
|
case "$clock" in
|
|
"00") icon="🕛" ;;
|
|
"01") icon="🕐" ;;
|
|
"02") icon="🕑" ;;
|
|
"03") icon="🕒" ;;
|
|
"04") icon="🕓" ;;
|
|
"05") icon="🕔" ;;
|
|
"06") icon="🕕" ;;
|
|
"07") icon="🕖" ;;
|
|
"08") icon="🕗" ;;
|
|
"09") icon="🕘" ;;
|
|
"10") icon="🕙" ;;
|
|
"11") icon="🕚" ;;
|
|
"12") icon="🕛" ;;
|
|
esac
|
|
date "+📅%a %d %b %Y|$icon%I:%M%p"
|
|
}
|
|
|
|
# Cpu Temp :
|
|
tmp(){
|
|
sensors | awk '/Core 0/ {print "🌡" $3}'
|
|
}
|
|
|
|
# Cpu Usage :
|
|
cpu(){
|
|
cpu=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{printf "%02.1f%%" , 100 - $1}')
|
|
echo -e "💻$cpu"
|
|
}
|
|
|
|
# Keybord Layout :
|
|
key(){
|
|
kb="$(xkb-switch)" || exit 1
|
|
echo "🔤$kb"
|
|
}
|
|
|
|
# Screen Light :
|
|
lit(){
|
|
#lit="$(xbacklight | sed 's/\..*//g')"
|
|
#echo "💡$lit%"
|
|
lit="$(brightnessctl | grep -oP '[^()]+%')"
|
|
echo "💡$lit"
|
|
}
|
|
|
|
# Memory :
|
|
mem(){
|
|
free --mebi | sed -n '2{p;q}' | awk '{printf ("🧠%2.2fGiB/%2.2fGiB\n", ( $3 / 1024), ($2 / 1024))}'
|
|
}
|
|
|
|
# Volume :
|
|
vol(){
|
|
[ $(pamixer --get-mute) = true ] && echo 🔇 && exit
|
|
|
|
vol="$(pamixer --get-volume)"
|
|
|
|
if [ "$vol" -gt "70" ]; then
|
|
icon="🔊"
|
|
elif [ "$vol" -gt "30" ]; then
|
|
icon="🔉"
|
|
elif [ "$vol" -gt "0" ]; then
|
|
icon="🔈"
|
|
else
|
|
echo 🔇 && exit
|
|
fi
|
|
echo "$icon$vol%"
|
|
}
|
|
net(){
|
|
if grep -xq 'up' /sys/class/net/w*/operstate 2>/dev/null ; then
|
|
wifiicon="$(awk '/^\s*w/ { print "📶", int($3 * 100 / 70) "% " }' /proc/net/wireless)"
|
|
elif grep -xq 'down' /sys/class/net/w*/operstate 2>/dev/null ; then
|
|
grep -xq '0x1003' /sys/class/net/w*/flags && wifiicon="📡 " || wifiicon="❌ "
|
|
fi
|
|
|
|
printf "%s%s%s\n" "$wifiicon" "$(sed "s/down/❎/;s/up/🌐/" /sys/class/net/e*/operstate 2>/dev/null)" "$(sed "s/.*/🔒/" /sys/class/net/tun*/operstate 2>/dev/null)"
|
|
}
|
|
nettrf(){
|
|
|
|
update() {
|
|
sum=0
|
|
for arg; do
|
|
read -r i < "$arg"
|
|
sum=$(( sum + i ))
|
|
done
|
|
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 ))
|
|
}
|
|
|
|
rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes)
|
|
tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes)
|
|
|
|
printf "🔻%4sB 🔺%4sB\\n" $(numfmt --to=iec $rx) $(numfmt --to=iec $tx)
|
|
}
|
|
|
|
while true; do
|
|
xsetroot -name "|$(nettrf)|$(net)|$(tmp)|$(cpu)|$(mem)|$(vol)|$(lit)|$(bat)|$(key)|$(dat) |"
|
|
sleep 0.2
|
|
done &
|