feat: bin -> .local/bin, vcs_info untracked
This commit is contained in:
parent
af14629939
commit
7c98658d24
30 changed files with 31 additions and 46 deletions
112
.local/bin/sbar
Executable file
112
.local/bin/sbar
Executable file
|
@ -0,0 +1,112 @@
|
|||
#!/bin/bash
|
||||
|
||||
function update_crypto() {
|
||||
local c
|
||||
|
||||
c="$(crypto 2> /dev/null)" && crypto="$c"
|
||||
}
|
||||
|
||||
function update_cpu() {
|
||||
cpu=" $(awk '{print $1}' /proc/loadavg)"
|
||||
}
|
||||
|
||||
function update_memory() {
|
||||
memory=" $(free -h | awk '/^Mem:/{print $3}')"
|
||||
}
|
||||
|
||||
function update_bat() {
|
||||
local dir cap
|
||||
|
||||
dir='/sys/class/power_supply/BAT0'
|
||||
cap="$(cat "$dir/capacity")"
|
||||
{ grep -qv Discharging "$dir/status" && bat=" $cap%"; } ||
|
||||
{ [ "$cap" -gt 80 ] && bat=" $cap%"; } ||
|
||||
{ [ "$cap" -gt 60 ] && bat=" $cap%"; } ||
|
||||
{ [ "$cap" -gt 40 ] && bat=" $cap%"; } ||
|
||||
{ [ "$cap" -gt 20 ] && bat=" $cap%"; } ||
|
||||
{ bat=" $cap%"; }
|
||||
}
|
||||
|
||||
function update_sink_vol() {
|
||||
local sink vol
|
||||
|
||||
sink="$(wpctl get-volume '@DEFAULT_AUDIO_SINK@')"
|
||||
if grep -q MUTED <<< "$sink"; then
|
||||
sink_vol='🔇'
|
||||
return
|
||||
fi
|
||||
vol="$(awk '{print int($2 * 100)}' <<< "$sink")"
|
||||
{ [ "$vol" -gt 67 ] && sink_vol=" $vol"; } ||
|
||||
{ [ "$vol" -gt 33 ] && sink_vol=" $vol"; } ||
|
||||
{ sink_vol=" $vol"; }
|
||||
}
|
||||
|
||||
function update_source_vol() {
|
||||
local source vol
|
||||
|
||||
source="$(wpctl get-volume '@DEFAULT_AUDIO_SOURCE@')"
|
||||
if grep -q MUTED <<< "$source"; then
|
||||
source_vol=''
|
||||
return
|
||||
fi
|
||||
source_vol=" $(awk '{print int($2 * 100)}' <<< "$source")"
|
||||
}
|
||||
|
||||
function update_wlp() {
|
||||
local sig ssid dev=wlan0
|
||||
|
||||
sig="$(awk "/$dev/{print int(\$3)}" /proc/net/wireless)"
|
||||
if [ -z "$sig" ]; then
|
||||
wlp='⚠'
|
||||
return
|
||||
fi
|
||||
ssid="$(networkctl status "$dev" | grep -Po 'Wi-Fi access point:\s*\K\w+')"
|
||||
{ [ "$sig" -gt 56 ] && wlp="▂▄▆█ $ssid"; } ||
|
||||
{ [ "$sig" -gt 38 ] && wlp="▂▄▆_ $ssid"; } ||
|
||||
{ [ "$sig" -gt 21 ] && wlp="▂▄__ $ssid"; } ||
|
||||
{ [ "$sig" -gt 3 ] && wlp="▂___ $ssid"; } ||
|
||||
{ wlp="____ $ssid"; }
|
||||
}
|
||||
|
||||
function update_time() {
|
||||
time="$(date "+%a %m-%d %R")"
|
||||
}
|
||||
|
||||
function display() {
|
||||
"${DISPLAYCMD[@]}" "$crypto | $cpu | $memory | $sink_vol $source_vol | $wlp | $bat | $time"
|
||||
}
|
||||
|
||||
if [ "$XDG_SESSION_TYPE" = wayland ]; then
|
||||
DISPLAYCMD=(echo)
|
||||
else
|
||||
DISPLAYCMD=(xsetroot -name)
|
||||
fi
|
||||
|
||||
# SIGNALING
|
||||
# trap '<function>;display;wait' 'RTMIN+n'
|
||||
trap 'update_sink_vol;display;wait' 'RTMIN'
|
||||
trap 'update_wlp;display;wait' 'RTMIN+1'
|
||||
# to update it from external commands
|
||||
## kill -m "$(cat ~/.cache/pidofbar)"
|
||||
# where m = 34 + n
|
||||
|
||||
echo "$$" > "$HOME/.cache/pidofbar"
|
||||
|
||||
sec=0
|
||||
while true; do
|
||||
wait && {
|
||||
[ "$((sec % 300))" = 10 ] && update_crypto
|
||||
[ "$((sec % 10))" = 0 ] && {
|
||||
update_cpu
|
||||
update_memory
|
||||
update_sink_vol
|
||||
update_source_vol
|
||||
update_wlp
|
||||
update_bat
|
||||
update_time
|
||||
display
|
||||
}
|
||||
sec="$((sec + 10))"
|
||||
}
|
||||
awk "@load \"time\"; BEGIN {d=10; s=$(date '+%S.%N'); sleep(d - s % d)}" &
|
||||
done
|
Loading…
Add table
Add a link
Reference in a new issue