This commit is contained in:
ange 2025-07-21 13:08:28 +00:00
parent 17b03778ac
commit 5f1b118ff3
Signed by: ange
GPG key ID: 9E0C4157BB7BEB1D
26 changed files with 164 additions and 160 deletions

View file

@ -7,15 +7,15 @@ scrypto() {
}
scpu() {
echo " $(awk '{print $1}' /proc/loadavg)" > cpu
awk '{print " "$1}' /proc/loadavg > cpu
}
smemory() {
echo " $(free -h | awk '/^Mem:/{print $3}')" > memory
free -h | awk '/^Mem:/{print " "$3}' > memory
}
sbat() {
local cap; cap="$(cat /sys/class/power_supply/BAT0/capacity)"
local cap; cap="$(< /sys/class/power_supply/BAT0/capacity)"
if grep -qv Discharging /sys/class/power_supply/BAT0/status; then
echo " $cap%"
@ -25,7 +25,7 @@ sbat() {
}
svol() {
local st v m vol=('' ' ')
local st i v m vol=('' ' ')
mapfile -t st <<< "$(wpctl status | sed -n 's/.*\*.*\[vol: \(.*\)]/\1/p')"
for i in "${!vol[@]}"; do
@ -34,32 +34,27 @@ svol() {
break
fi
v="${vol[$i]} $((10#${v/./}))"
if [ -n "$m" ]; then
echo -n "${v//?/&$'\U0336'}"
else
echo -n "$v"
fi
echo -n "${v//?/&${m:+$'\U0336'}}"
done > vol
}
snet() {
local dev j ssid sig
local if sig
dev="$(ip route | grep -oP 'default.*dev\s+\K[^\s]+')"
j="$(networkctl status "$dev" --json=short)"
case "$(jq -r .Type <<< "$j")" in
mapfile -t if < <(networkctl --json=short | jq -r '.Interfaces[] | select(.Routes) | select(.Routes[].Gateway) | .Type, .Name, .SSID')
case "${if[0]}" in
ether)
echo "🌐 $dev"
echo "🌐 ${if[1]}"
;;
wlan)
ssid="$(jq -r .SSID <<< "$j")"
sig="$(awk "/$dev/{printf \"%.0f\", \$3}" /proc/net/wireless)"
if [ "$sig" -gt 56 ]; then echo "▂▄▆█ $ssid"
elif [ "$sig" -gt 38 ]; then echo "▂▄▆_ $ssid"
elif [ "$sig" -gt 21 ]; then echo "▂▄__ $ssid"
elif [ "$sig" -gt 3 ]; then echo "▂___ $ssid"
else echo "____ $ssid"
sig="$(awk "/${if[1]}/{printf \"%.0f\", \$3}" /proc/net/wireless)"
if [ "$sig" -gt 56 ]; then sig='▂▄▆█'
elif [ "$sig" -gt 38 ]; then sig='▂▄▆_'
elif [ "$sig" -gt 21 ]; then sig='▂▄__'
elif [ "$sig" -gt 3 ]; then sig='▂___'
else sig='____'
fi
echo "$sig ${if[2]}"
;;
*)
echo '⚠'
@ -68,33 +63,33 @@ snet() {
}
svpn() {
local v; v="$(ip -br link show type wireguard | awk '{print $1}')"
if [ -n "$v" ]; then
echo " 🔒 $v"
fi > vpn
ip -br link show type wireguard | awk '{print " 🔒 "$1}' > vpn
}
stz() {
local tmp ip; ip="$(ip route | grep -oP '^default.*src\s+\K[^\s]+')"
_tz() {
local j if f="$XDG_CACHE_HOME/tz"
if ! [ -s tz ] || [ "$ip" != "$(cat ip)" ]; then
tmp="$(curl -s --interface wlan0 'https://ipapi.co/timezone')" \
&& echo "$tmp" > tz
echo "$ip" > ip
mapfile -t if < <(ip -j route show default | jq -r '.[] | .prefsrc, .dev')
if ! [ -s "$f" ] || [ "${if[0]}" != "$(< ip)" ]; then
echo "${if[0]}" > ip
if j="$(curl -s 'https://ipapi.co/json')"; then
jq -r '.timezone, "\(.latitude):\(.longitude)"' <<< "$j" > "$f"
head -1 "$f"
fi
else
head -1 "$f"
fi
}
stime() {
TZ="$(cat tz)" date '+%a %m-%d %R%:::z' > 'time'
TZ="$(_tz)" date '+%a %m-%d %R%:::z' > 'time'
}
display() {
declare -A v
for f in *; do
local - "$f"="$(cat "$f")"
v[$f]=$(< "$f")
done
# shellcheck disable=SC2154
xsetroot -name "$crypto | $cpu | $memory | $vol | $net$vpn | $bat | $time"
xsetroot -name "${v[crypto]} | ${v[cpu]} | ${v[memory]} | ${v[vol]} | ${v[net]}${v[vpn]} | ${v[bat]} | ${v[time]}"
}
trap "kill 0" INT
@ -102,13 +97,13 @@ trap "kill 0" INT
mkdir -p "$XDG_RUNTIME_DIR/sbar"
cd "$XDG_RUNTIME_DIR/sbar" || exit 1
(while :; do
while :; do
scrypto
stz
sleep 300
done &)
done &
(while :; do
touch ip
while :; do
scpu
smemory
sbat
@ -117,8 +112,8 @@ done &)
svpn
stime
display
sleep $((5 - $(date '+%S') % 5))
done &)
sleep $((5 - 10#$(date '+%S') % 5))
done &
while read -r _ _ f; do
"s$f"