diff options
| author | Craig Jennings <c@cjennings.net> | 2025-05-14 18:50:09 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-05-14 18:50:09 -0500 |
| commit | 2c670e0f51d32713446e967f02097ac9a4e09647 (patch) | |
| tree | 728a772b35ab4aa0976c3157fd4716ed7d950b53 | |
| parent | a5dd99098e1dfffe3e298fb8c5d11562ad7b1765 (diff) | |
improve swaybar output
| -rwxr-xr-x | dotfiles/system/.config/sway/config.d/swaybar.sh | 62 |
1 files changed, 47 insertions, 15 deletions
diff --git a/dotfiles/system/.config/sway/config.d/swaybar.sh b/dotfiles/system/.config/sway/config.d/swaybar.sh index fe0771d..e9e979f 100755 --- a/dotfiles/system/.config/sway/config.d/swaybar.sh +++ b/dotfiles/system/.config/sway/config.d/swaybar.sh @@ -1,44 +1,76 @@ #!/bin/sh -# Get the formatted date and time -datetime=$(date "+%a %b %-d, %Y %-l:%M %p %Z") +# Escape text for Pango markup +pango_escape() { + echo "$1" | sed 's/&/\&/g; s/</\</g; s/>/\>/g' +} -# Get battery percentage +# Get date/time +# datetime=$(date "+%a %b %-d, %Y %-l:%M %p %Z") +datetime=$(date "+%a %d %b @ %-l:%M %p %Z") + +# Battery life percentage battery=$(sysctl -n hw.acpi.battery.life 2>/dev/null) -# Handle battery icon +# Battery state: 0=charging, 1=discharging, 2=critical +battery_state=$(sysctl -n hw.acpi.battery.state 2>/dev/null) + +# Charging icon logic +charging_icon="" +if [ -n "$battery_state" ]; then + if [ "$battery_state" = "0" ]; then + if [ "$battery" -ge 100 ]; then + charging_icon="" # Font Awesome plug (full but plugged in) + else + charging_icon="" # Charging (bolt) + fi + fi +fi + +# Battery level icon & color coding if [ -z "$battery" ]; then battery="?" - battery_icon="" # Unknown + battery_icon="" + battery_color="#888888" else if [ "$battery" -ge 90 ]; then battery_icon="" + battery_color="#FFFFFF" elif [ "$battery" -ge 60 ]; then battery_icon="" + battery_color="#ffaa00" elif [ "$battery" -ge 30 ]; then battery_icon="" + battery_color="#ff5500" elif [ "$battery" -ge 10 ]; then battery_icon="" + battery_color="#ff0000" else battery_icon="" + battery_color="#ff0000" fi fi -# Get connected Wi-Fi SSID (for FreeBSD) -# Use ifconfig to get the SSID of wlan0 (adjust if different interface name) +# Wi-Fi SSID detection wifi_ssid=$(ifconfig wlan0 2>/dev/null | awk '/ssid/ {print $2}' | head -n 1) -# Only show Wi-Fi if connected +# Wi-Fi block +wifi_output="" if [ -n "$wifi_ssid" ]; then - wifi_output=" $wifi_ssid" -else - wifi_output="" + wifi_output=" $(pango_escape "$wifi_ssid")" fi -# Build final output +# Fancy separator +sep=" • " + +# Battery output block with charging/AC icons +battery_output="<span color='$battery_color'>$battery_icon $battery% $charging_icon</span>" + +# Final output output="" -[ -n "$wifi_output" ] && output="$wifi_output | " -output="$output$battery_icon $battery% | $datetime" +[ -n "$wifi_output" ] && output="$wifi_output$sep" +output="$output$battery_output$sep" +output="$output$(pango_escape "$datetime")" -# Output the result +# Print for swaybar echo "$output" |
