89 lines
1.7 KiB
Bash
Executable File
89 lines
1.7 KiB
Bash
Executable File
#!/bin/env sh
|
|
|
|
MEM_FG_C="#CD95D7"
|
|
CPU_FG_C="#9EA7D9"
|
|
BAT_FG_C="#AED481"
|
|
VOL_FG_C="#EEEEEE"
|
|
BRG_FG_C="#FFCA28"
|
|
DAT_FG_C="#FE8964"
|
|
TIM_FG_C="#FE8964"
|
|
|
|
#
|
|
|
|
cpu()
|
|
{
|
|
cpu=$(top -bn1 | awk '/Cpu\(s\):/ {print $2 + $4 "%"}')
|
|
}
|
|
|
|
memory()
|
|
{
|
|
memory=$(free -m | awk '/^Mem:/ {printf "%.1f", $3/2024}')
|
|
}
|
|
|
|
disk() {
|
|
disk="$(df -h | awk 'NR==2{print $4}')"
|
|
}
|
|
|
|
cdate()
|
|
{
|
|
cdate="$(date "+%a %d %b")"
|
|
}
|
|
|
|
ctime()
|
|
{
|
|
ctime="$(date "+%I:%M:%S %p")"
|
|
}
|
|
|
|
battery()
|
|
{
|
|
# read -r bat_status </sys/class/power_supply/BAT0/status
|
|
read -r bat_capacity </sys/class/power_supply/BAT0/capacity
|
|
battery="$bat_capacity"
|
|
}
|
|
|
|
vol()
|
|
{
|
|
vol=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{printf "%.0f\n", $2*100}')
|
|
}
|
|
|
|
brightness()
|
|
{
|
|
brightness=$(light -G | awk '{print int($1)}')
|
|
}
|
|
|
|
display()
|
|
{
|
|
memory_str="^fg($MEM_FG_C) $memory^fg()"
|
|
cpu_str="^fg($CPU_FG_C) $cpu^fg()"
|
|
battery_str="^fg($BAT_FG_C)$battery^fg()"
|
|
volume_str="^fg($VOL_FG_C) $vol^fg()"
|
|
brightness_str="^fg($BRG_FG_C) $brightness^fg()"
|
|
date_str="^fg($DAT_FG_C) $cdate^fg()"
|
|
time_str="^fg($TIM_FG_C) $ctime^fg()"
|
|
|
|
echo "all status $memory_str $cpu_str $battery_str $volume_str $brightness_str $date_str $time_str" >"$FIFO"
|
|
}
|
|
|
|
printf "%s" "$$" > "$XDG_RUNTIME_DIR/status_pid"
|
|
FIFO="$XDG_RUNTIME_DIR/sandbar"
|
|
[ -e "$FIFO" ] || mkfifo "$FIFO"
|
|
sec=0
|
|
|
|
while true; do
|
|
sleep 1 &
|
|
wait && {
|
|
[ $((sec % 1)) -eq 0 ] && memory
|
|
[ $((sec % 1)) -eq 0 ] && cpu
|
|
# [ $((sec % 1)) -eq 0 ] && disk
|
|
[ $((sec % 60)) -eq 0 ] && battery
|
|
[ $((sec % 1)) -eq 0 ] && vol
|
|
[ $((sec % 1)) -eq 0 ] && brightness
|
|
[ $((sec % 1)) -eq 0 ] && cdate
|
|
[ $((sec % 1)) -eq 0 ] && ctime
|
|
|
|
[ $((sec % 1)) -eq 0 ] && display
|
|
|
|
sec=$((sec + 1))
|
|
}
|
|
done
|