status.sh
DATE=$(date "+%a-%b-%d-%Y %I:%M%p")
BATSTAT=$(cat /sys/class/power_supply/BAT0/status)
BATPERC=$(cat /sys/class/power_supply/BAT0/capacity)
VSTAT="$(amixer get Master)"
VMUTE=" "
echo "$VSTAT" | grep "\[off\]" >/dev/null && VMUTE="muted"
VOLUME=$(echo "$VSTAT" | grep -o "\[[0-9]\+%\]" | sed "s/[^0-9]*//g;1q")
WIFI="$(awk '/^\s*w/ { print "", int($3 * 100 / 70) "% " }' /proc/net/wireless)"
KBLAYOUT=$(swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | awk -F '"' '{print $4}')
BNESS="$(brightnessctl get)"
MAX="$(brightnessctl max)"
BLPERC="$((BNESS*100/MAX))"
NIGHT=
pgrep wlsunset && NIGHT=
echo $KBLAYOUT $NIGHT $BLPERC $VMUTE $VOLUME $WIFI $BATPERC% $BATSTAT $DATE
bar {
position top
#swaybar_command waybar
status_command while ~/.config/sway/status.sh; do sleep 1; done
}
multi.sh
/etc/udev/rules.d/99-battery-status.rules
ACTION=="change", SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/usr/local/bin/battery-status-update"
This rule triggers when the power supply status changes and is not
online (i.e., the laptop is running on battery). It runs the script /usr/local/bin/battery-status-update
whenever a relevant change occurs.
Create the /usr/local/bin/battery-status-update
script with the following content:#!/bin/bash
# Function to get battery status
get_battery_status() {
status=$(cat /sys/class/power_supply/BAT0/status)
capacity=$(cat /sys/class/power_supply/BAT0/capacity)
echo "Battery: $status $capacity%"
}
# Update the status bar with the battery status
get_battery_status > /tmp/battery-status
[battery]
command=/bin/cat /tmp/battery-status
interval=60
Comments
Post a Comment