#!/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="${LINE}" fi if [ -z "$LINES" ]; then LINES="$LINE" else LINES=$(printf "%s\n%s" "$LINES" "$LINE") fi done < "$CONF" TOOLTIP="${LINES}" 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"