summaryrefslogtreecommitdiff
path: root/dotfiles/system/.config/sway/config.d
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/system/.config/sway/config.d')
-rwxr-xr-xdotfiles/system/.config/sway/config.d/swaybar.sh62
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/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/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"