refactored batteries script, tscale_native uses core utils instead of rg and jq

This commit is contained in:
Vlad
2026-01-11 00:00:21 +03:00
parent 63a24620d8
commit 2fe354a1bd
5 changed files with 74 additions and 3 deletions

View File

@ -38,6 +38,8 @@ batteries=$(acpi | rg 'Battery (\d)' -or '$1')
# echo "BATTERIES: $batteries" # echo "BATTERIES: $batteries"
text="" text=""
ischarging=0
hasenough=0
for battery in $batteries; do for battery in $batteries; do
# echo "BATTERY $battery" # echo "BATTERY $battery"
bt=$(acpi -b | grep "Battery $battery") bt=$(acpi -b | grep "Battery $battery")
@ -47,9 +49,16 @@ for battery in $batteries; do
COLOR=$(getcolor "$BAT" "$STAT") COLOR=$(getcolor "$BAT" "$STAT")
BATTEXT="$ICON$BAT%%" BATTEXT="$ICON$BAT%%"
text+="<span foreground=\"${COLOR}\">${BATTEXT}</span> " text+="<span foreground=\"${COLOR}\">${BATTEXT}</span> "
[ "$STAT" = "Charging" ] && ischarging=1
[ "$BAT" -gt 10 ] hasenough=1
done done
printf "${text:0:-1}\n\n" printf "${text:0:-1}\n\n"
if [ "$hasenough" -eq 0 ] && [ "$ischarging" -eq 0 ]; then
notify-send "Battery level critical" "Please connect AC"
fi
# bt=$(acpi -b | grep "Battery $1") # bt=$(acpi -b | grep "Battery $1")
# BAT=$(echo "$bt" | rg "(\d?\d?\d)%" -or '$1') # BAT=$(echo "$bt" | rg "(\d?\d?\d)%" -or '$1')
# STAT=$(echo "$bt" | rg ": ([\w\s]+)," -or '$1') # STAT=$(echo "$bt" | rg ": ([\w\s]+)," -or '$1')

View File

@ -36,6 +36,7 @@ gaps outer 10
# Start XDG autostart .desktop files using dex. See also # Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart # https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3 exec --no-startup-id dex --autostart --environment i3
exec --no-startup-id pipewire
# The combination of xss-lock, nm-applet and pactl is a popular choice, so # The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit. # they are included here as an example. Modify as you see fit.
@ -71,7 +72,7 @@ floating_modifier $mod
tiling_drag modifier tiling_drag modifier
# start a terminal # start a terminal
bindsym $mod+Return exec kitty bindsym $mod+Return exec alacritty
# kill focused window # kill focused window
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill

View File

@ -27,7 +27,11 @@ markup=pango
#interval=1 #interval=1
[tailscale] [tailscale]
command=~/.config/i3blocks/tscale #echo TS: $(ip a show tailscale0 | rg "inet (\d+\.\d+\.\d+\.\d+)" -or '$1') command=~/.config/i3blocks/tscale_native #echo TS: $(ip a show tailscale0 | rg "inet (\d+\.\d+\.\d+\.\d+)" -or '$1')
interval=5
[workvpn]
command=~/.config/i3blocks/workvpn
interval=5 interval=5
[wthr] [wthr]

View File

@ -0,0 +1,37 @@
#!/bin/bash
case $BLOCK_BUTTON in
1) ~/.dotfiles/bin/rofi-tscale ;;
esac
icon="󰛳"
if ! ip a show tailscale0 &>/dev/null; then
icon="󰅛"
out="$icon no tailscale"
which tailscale &>/dev/null && out="$icon tailscale inactive"
echo -e "$out\n$out\n#606060"
exit
fi
exitnode=$(tailscale status --json | awk '/"ExitNodeStatus": /,/}/')
enstatus=""
tsip=$(ip a show tailscale0 | grep -Po 'inet \K((\d+\.){3}\d+)')
[ -z "$exitnode" ] && {
[ -z "$tsip" ] && {
icon="󰅛"
text="$icon offline"
color='#707070'
} || {
text="$icon $tsip"
COLOR='#8080ff'
}
} || {
enstatus=$(echo "$exitnode" | awk '/TailscaleIPs/,/]/' | grep -Po "(\d+\.){3}\d+")
icon="󰱓"
text="$icon $enstatus"
COLOR='#80ff80'
}
echo "$text"
echo "$text"
echo $COLOR

20
i3/.config/i3blocks/workvpn Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/env bash
status=$(ip a show ppp1 2>/dev/null || "")
[ -z "$status" ] && exit 0
icon=󱁤
color="#808080"
text=""
ip=$(grep -Po 'inet \K(\d+\.){3}\d+' <<<$status)
if [ -z "$ip" ]; then
text="$icon wait..."
color="#ffff00"
else
text="$icon $ip"
color="#80ff80"
fi
echo "$text"
echo "$text"
echo "$color"