From 0af53da3eb2574ca23758e6658b7683bcee4d6da Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:29 +0100 Subject: style(waybar): swap obvious literal labels for Nerd Font glyphs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Numeric/identity labels stay (CPU, MEM, °C, network arrows, clock). Iconic labels are replaced with codepoints from ttf-noto-nerd: battery BAT/CHR/PLG -> nf-md-battery_*, _charging, power_plug (U+F0079..F0084, U+F06A5) pulseaudio VOL/MUTE -> nf-md-volume_low/medium/high/off (U+F057E..F0581) bluetooth BT on/off -> nf-md-bluetooth/_off/_connect (U+F00AF/B0/B2) idle_inhib. INH/IDL -> nf-md-eye_off_outline/_outline (U+F06D1, F06D0) custom/wifi text only -> prefix nf-md-wifi/_off (U+F05A9, F05AA) custom/webcam CAM -> nf-md-camera (U+F0D5D) custom/notif. NTF -> nf-md-bell_outline/_check_outline/_ring (U+F009C, F11E8, F009E) custom/tb MAIL -> nf-md-email/_alert (U+F01EE, F0D42) style.css font-family widened from 'mono' to a declarative fallback chain so glyph rendering doesn't depend on fontconfig auto-fallback. --- dot_config/waybar/config.jsonc | 36 +++++++++++++++------------ dot_config/waybar/executable_mako-status.sh | 6 ++--- dot_config/waybar/executable_tb-unread.sh | 12 ++++----- dot_config/waybar/executable_webcam-status.sh | 2 +- dot_config/waybar/executable_wifi-status.sh | 4 +-- dot_config/waybar/style.css | 2 +- 6 files changed, 33 insertions(+), 29 deletions(-) diff --git a/dot_config/waybar/config.jsonc b/dot_config/waybar/config.jsonc index c09eb1f..a27f8a4 100644 --- a/dot_config/waybar/config.jsonc +++ b/dot_config/waybar/config.jsonc @@ -103,9 +103,10 @@ }, "battery": { - "format": "BAT {capacity}%", - "format-charging": "CHR {capacity}%", - "format-plugged": "PLG {capacity}%", + "format": "{icon} {capacity}%", + "format-charging": "󰂄 {capacity}%", + "format-plugged": "󰚥 {capacity}%", + "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󰂂", "󰁹"], "states": { "warning": 30, "critical": 15, @@ -113,12 +114,15 @@ }, "pulseaudio": { - "format": "VOL {volume}%", - "format-low": "VOL {volume}%", - "format-medium": "VOL {volume}%", - "format-high": "VOL {volume}%", - "format-critical": "VOL {volume}%", - "format-muted": "MUTE", + "format": "{icon} {volume}%", + "format-low": "{icon} {volume}%", + "format-medium": "{icon} {volume}%", + "format-high": "{icon} {volume}%", + "format-critical": "{icon} {volume}%", + "format-muted": "󰖁", + "format-icons": { + "default": ["󰕿", "󰖀", "󰕾"], + }, "states": { "low": 0, "medium": 50, @@ -142,18 +146,18 @@ "idle_inhibitor": { "format": "{icon}", "format-icons": { - "activated": "INH", - "deactivated": "IDL", + "activated": "󰛑", + "deactivated": "󰛐", }, "tooltip": true, }, "bluetooth": { - "format": "BT on", - "format-disabled": "BT off", - "format-off": "BT off", - "format-connected": "BT {device_alias}", - "format-connected-battery": "BT {device_alias} {device_battery_percentage}%", + "format": "󰂯", + "format-disabled": "󰂲", + "format-off": "󰂲", + "format-connected": "󰂰 {device_alias}", + "format-connected-battery": "󰂰 {device_alias} {device_battery_percentage}%", "tooltip-format": "{controller_alias}\t{controller_address}", "tooltip-format-connected": "{controller_alias}\n{num_connections} connected\n{device_enumerate}", "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", diff --git a/dot_config/waybar/executable_mako-status.sh b/dot_config/waybar/executable_mako-status.sh index c0a4edd..791aabe 100644 --- a/dot_config/waybar/executable_mako-status.sh +++ b/dot_config/waybar/executable_mako-status.sh @@ -12,13 +12,13 @@ count=$(makoctl history 2>/dev/null | grep -c '^Notification ' || true) pending=$(makoctl list 2>/dev/null | grep -c '^Notification ' || true) if [ "$pending" -gt 0 ]; then - text="NTF !$pending" + text="󰂞 $pending" class="pending" elif [ "$count" -gt 0 ]; then - text="NTF $count" + text="󱇨 $count" class="history" else - text="NTF 0" + text="󰂜" class="empty" fi diff --git a/dot_config/waybar/executable_tb-unread.sh b/dot_config/waybar/executable_tb-unread.sh index ebf2fd4..3c3e1c7 100644 --- a/dot_config/waybar/executable_tb-unread.sh +++ b/dot_config/waybar/executable_tb-unread.sh @@ -18,12 +18,12 @@ emit() { printf '%s\n' "$1"; exit 0; } # Cheap reachability probe — avoids a 30s python TLS timeout when the bridge # is down (e.g. before it has finished unlocking on a fresh login). ncat -z -w 1 "$HOST" "$PORT" 2>/dev/null || \ - emit '{"text":"MAIL ?","tooltip":"bridge unreachable","class":"error","alt":"error"}' + emit '{"text":"󰵂","tooltip":"bridge unreachable","class":"error","alt":"error"}' user=$(pass show "$PASS_USER" 2>/dev/null) || \ - emit '{"text":"MAIL ?","tooltip":"missing pass entry: '"$PASS_USER"'","class":"error","alt":"error"}' + emit '{"text":"󰵂","tooltip":"missing pass entry: '"$PASS_USER"'","class":"error","alt":"error"}' pw=$(pass show "$PASS_PW" 2>/dev/null) || \ - emit '{"text":"MAIL ?","tooltip":"missing pass entry: '"$PASS_PW"'","class":"error","alt":"error"}' + emit '{"text":"󰵂","tooltip":"missing pass entry: '"$PASS_PW"'","class":"error","alt":"error"}' n=$(PROTONMAIL_BRIDGE_USER="$user" PROTONMAIL_BRIDGE_PASS="$pw" \ python3 - "$HOST" "$PORT" <<'PY' 2>/dev/null || true @@ -45,7 +45,7 @@ PY ) case "$n" in - '') emit '{"text":"MAIL ?","tooltip":"IMAP query failed","class":"error","alt":"error"}' ;; - 0) emit '{"text":"MAIL 0","tooltip":"Inbox: no unread","class":"empty","alt":"empty"}' ;; - *) emit "$(printf '{"text":"MAIL %s","tooltip":"Inbox: %s unread","class":"unread","alt":"unread"}' "$n" "$n")" ;; + '') emit '{"text":"󰵂","tooltip":"IMAP query failed","class":"error","alt":"error"}' ;; + 0) emit '{"text":"󰇮","tooltip":"Inbox: no unread","class":"empty","alt":"empty"}' ;; + *) emit "$(printf '{"text":"󰇮 %s","tooltip":"Inbox: %s unread","class":"unread","alt":"unread"}' "$n" "$n")" ;; esac diff --git a/dot_config/waybar/executable_webcam-status.sh b/dot_config/waybar/executable_webcam-status.sh index b8e5570..997f97a 100644 --- a/dot_config/waybar/executable_webcam-status.sh +++ b/dot_config/waybar/executable_webcam-status.sh @@ -12,7 +12,7 @@ esac # fuser exits 0 when at least one device has an opener, 1 otherwise. Stderr # carries 'PID' for each match; redirect it away. if fuser $devs >/dev/null 2>&1; then - printf '{"text":"CAM","tooltip":"webcam in use","class":"active","alt":"active"}\n' + printf '{"text":"󰵝","tooltip":"webcam in use","class":"active","alt":"active"}\n' else printf '{"text":"","alt":"idle"}\n' fi diff --git a/dot_config/waybar/executable_wifi-status.sh b/dot_config/waybar/executable_wifi-status.sh index b0cd214..93b3048 100755 --- a/dot_config/waybar/executable_wifi-status.sh +++ b/dot_config/waybar/executable_wifi-status.sh @@ -10,7 +10,7 @@ iface=wlan0 svc=net.connman.iwd down() { - printf '{"text":"wifi off","class":"down"}\n' + printf '{"text":"󰖪","class":"down"}\n' exit 0 } @@ -46,5 +46,5 @@ color=$(awk -v p="$pct" 'BEGIN{ else print "#b8bb26" }') -printf '{"text":"%s %s%%","class":"up","tooltip":"%s · %s dBm"}\n' \ +printf '{"text":"󰖩 %s %s%%","class":"up","tooltip":"%s · %s dBm"}\n' \ "$ssid" "$color" "$pct" "$iface" "$rssi" diff --git a/dot_config/waybar/style.css b/dot_config/waybar/style.css index 29d9885..71c8b3d 100644 --- a/dot_config/waybar/style.css +++ b/dot_config/waybar/style.css @@ -1,5 +1,5 @@ * { - font-family: mono; + font-family: "monospace", "Symbols Nerd Font Mono", "Font Awesome 6 Free"; font-size: 8pt; } -- cgit v1.3.1