diff options
| author | Craig Jennings <c@cjennings.net> | 2026-02-10 16:37:48 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-02-10 16:37:48 -0600 |
| commit | e6a6dbadaea0b6de4d9ea080885aed3214dbbef4 (patch) | |
| tree | 4cbfc081bdf4198c38bff51e7ae12f9818c921af /dotfiles/hyprland/.local/bin/waybar-worldclock | |
| parent | f0ce9ef3dd4c728bb80afc58fc7e5d28734b61ea (diff) | |
| download | archsetup-e6a6dbadaea0b6de4d9ea080885aed3214dbbef4.tar.gz archsetup-e6a6dbadaea0b6de4d9ea080885aed3214dbbef4.zip | |
feat(waybar): split clock into date + world clock modules
Replace single clock module with custom/date (calendar tooltip) and
custom/worldclock (multi-timezone tooltip from worldclock.conf).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'dotfiles/hyprland/.local/bin/waybar-worldclock')
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/waybar-worldclock | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/dotfiles/hyprland/.local/bin/waybar-worldclock b/dotfiles/hyprland/.local/bin/waybar-worldclock new file mode 100755 index 0000000..9801dad --- /dev/null +++ b/dotfiles/hyprland/.local/bin/waybar-worldclock @@ -0,0 +1,35 @@ +#!/bin/sh +# Waybar world clock module with configurable timezone tooltip +CONF="${HOME}/.config/waybar/worldclock.conf" + +# Local time for bar display +TEXT=$(date '+%I:%M %p %Z') +LOCAL_TZ=$(readlink /etc/localtime | sed 's|.*/zoneinfo/||') + +# Build tooltip from config file +if [ -f "$CONF" ]; then + LINES="" + while IFS='|' read -r tz label; do + # Skip comments and blank lines + case "$tz" in \#*|"") continue ;; esac + TIME=$(TZ="$tz" date '+%I:%M %p %Z') + LINE=$(printf "%-16s %s" "$label" "$TIME") + # Highlight local timezone in gold + if [ "$tz" = "$LOCAL_TZ" ]; then + LINE="<span color='#daa520'>${LINE}</span>" + fi + if [ -z "$LINES" ]; then + LINES="$LINE" + else + LINES=$(printf "%s\n%s" "$LINES" "$LINE") + fi + done < "$CONF" + TOOLTIP="<tt>${LINES}</tt>" +else + TOOLTIP="No worldclock.conf found" +fi + +# Escape for JSON +TOOLTIP=$(echo "$TOOLTIP" | sed ':a;N;$!ba;s/\n/\\n/g') + +printf '{"text": "%s", "tooltip": "%s"}\n' "$TEXT" "$TOOLTIP" |
