{"id":51095637,"url":"https://github.com/gufranco/tmux-time-revamped","last_synced_at":"2026-06-24T06:02:27.661Z","repository":{"id":366243524,"uuid":"1275512868","full_name":"gufranco/tmux-time-revamped","owner":"gufranco","description":"Local clock and world clocks for tmux, each timezone colored by time of day. Non-blocking, no temp files, 95%+ tested","archived":false,"fork":false,"pushed_at":"2026-06-20T22:24:35.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-21T00:13:33.783Z","etag":null,"topics":["bash","clock","dotfiles","shell","status-bar","statusline","terminal","timezone","tmux","tmux-plugin","tpm","world-clock"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gufranco.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-20T19:40:14.000Z","updated_at":"2026-06-20T22:24:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gufranco/tmux-time-revamped","commit_stats":null,"previous_names":["gufranco/tmux-time-revamped"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/gufranco/tmux-time-revamped","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-time-revamped","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-time-revamped/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-time-revamped/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-time-revamped/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gufranco","download_url":"https://codeload.github.com/gufranco/tmux-time-revamped/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-time-revamped/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34719307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","clock","dotfiles","shell","status-bar","statusline","terminal","timezone","tmux","tmux-plugin","tpm","world-clock"],"created_at":"2026-06-24T06:02:26.820Z","updated_at":"2026-06-24T06:02:27.652Z","avatar_url":"https://github.com/gufranco.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003etmux-time-revamped\u003c/h1\u003e\n\n**Local clock and world clocks in your tmux status bar, without ever blocking the render.**\n\n[![Tests](https://github.com/gufranco/tmux-time-revamped/actions/workflows/tests.yml/badge.svg)](https://github.com/gufranco/tmux-time-revamped/actions/workflows/tests.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n\u003c/div\u003e\n\n**5** placeholders · **2** platforms · **89** tests · **95%+** coverage\n\nA local date and time plus any number of world clocks, each colored by the time of day at that location. Reading the clock is a single `date` call, so the status line computes it live and returns instantly. No temp files are touched, all configuration lives in tmux options.\n\nBuilt from [tmux-plugin-template](https://github.com/gufranco/tmux-plugin-template).\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eNon-blocking\u003c/strong\u003e\u003cbr\u003eA clock read is one instant `date` call, so the status renders without waiting.\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eNo temp files\u003c/strong\u003e\u003cbr\u003eEvery setting lives in tmux server options, nothing on disk.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eWorld clocks\u003c/strong\u003e\u003cbr\u003eList any timezones and each one is colored by morning, day, afternoon, evening, or night.\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eTested\u003c/strong\u003e\u003cbr\u003e95%+ line coverage enforced in CI.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Placeholders\n\nAdd any of these to `status-left` or `status-right`:\n\n| Placeholder | Output |\n|-------------|--------|\n| `#{time}` | local date and time, for example `2026-06-20 14:30` |\n| `#{time_date}` | local date only |\n| `#{time_clock}` | local time only |\n| `#{time_zones}` | one entry per configured timezone, colored by time of day |\n| `#{time_local}` | the local clock styled like a world clock: place label, time-of-day color, and icon |\n\n## Install\n\nWith [TPM](https://github.com/tmux-plugins/tpm), add to `~/.tmux.conf`:\n\n```tmux\nset -g @plugin 'gufranco/tmux-time-revamped'\nset -g @time_revamped_timezones 'America/New_York, Europe/London, Asia/Tokyo'\nset -g status-right '#{time} #{time_zones}'\n```\n\nThen press `prefix + I` to install.\n\nManual install:\n\n```bash\ngit clone https://github.com/gufranco/tmux-time-revamped ~/.tmux/plugins/tmux-time-revamped\nrun-shell ~/.tmux/plugins/tmux-time-revamped/time-revamped.tmux\n```\n\n## Configuration\n\n| Option | Default | Meaning |\n|--------|---------|---------|\n| `@time_revamped_date_format` | `YMD` | one of `YMD`, `MD`, `DM`, `MDY`, `DMY`, `hide` |\n| `@time_revamped_time_format` | `24H` | one of `24H`, `12H`, `hide`; applies to the local clock and to every world clock |\n| `@time_revamped_timezones` | empty | comma or space separated TZ names, for example `America/New_York, Europe/London` |\n| `@time_revamped_compact` | `0` | set to `1` to show short city labels instead of timezone abbreviations |\n| `@time_revamped_zone_labels` | empty | comma separated labels matched to the timezones by position, for example `Los Angeles, New York, Tokyo`; overrides the auto label per zone |\n| `@time_revamped_zone_separator` | a space | text placed between world-clock entries |\n| `@time_revamped_weekend_override` | `1` | set to `0` to keep each world clock's time-of-day color and icon on weekends instead of the weekend color |\n| `@time_revamped_local_label` | empty | fixed label for `#{time_local}`; overrides auto-detection when set |\n| `@time_revamped_local_source` | `timezone` | how the place is auto-detected: `timezone` (offline, the system zone city) or `geoip` (the real city from your IP) |\n| `@time_revamped_geoip_endpoint` | `https://ipinfo.io/city` | the geolocation URL; a plain-text city or a JSON body with a `city` field |\n| `@time_revamped_geoip_interval` | `30` | minutes between geoip refreshes |\n| `@time_revamped_morning_color` | `#[fg=yellow]` | color for hours 05 to 12 |\n| `@time_revamped_day_color` | `#[fg=green]` | color for hours 12 to 14 |\n| `@time_revamped_afternoon_color` | `#[fg=cyan]` | color for hours 14 to 18 |\n| `@time_revamped_evening_color` | `#[fg=magenta]` | color for hours 18 to 22 |\n| `@time_revamped_night_color` | `#[fg=blue]` | color for hours 22 to 05 |\n| `@time_revamped_weekend_color` | `#[fg=brightblack]` | color used on Saturday and Sunday, overriding the hour |\n| `@time_revamped_{sunrise,morning,day,afternoon,sunset,evening,night,weekend}_icon` | empty | optional glyph shown before the time, for example a Nerd Font sun or moon |\n| `@time_revamped_reset` | `#[default]` | the style reset after each entry; set `#[fg=default]` to keep a surrounding theme's background, or empty for none |\n\nIcons use seven hour buckets, finer than the five color buckets, so a dawn glyph (`sunrise`, hours 05 to 08) and a dusk glyph (`sunset`, hours 18 to 20) can be set independently. Every icon option defaults to empty, so no Nerd Font is required unless you choose to configure one.\n\nBoth full and compact entries show the period icon when one is configured. Full mode shows the timezone abbreviation, then the icon, then the time. Compact mode replaces the abbreviation with short city initials, for example `NY` for `America/New_York`. When nesting the world clocks inside a themed status module such as Catppuccin, set `@time_revamped_reset '#[fg=default]'` so the theme's background is kept around each entry.\n\n### The local place label\n\n`#{time_local}` shows where you are. The default `timezone` source reads the system timezone city offline, which updates whenever you cross into a new zone. The `geoip` source reports the actual city from your public IP, so it distinguishes cities that share a zone and tracks travel everywhere. The geoip request is opt-in, runs in a background worker on the `@time_revamped_geoip_interval`, and never blocks the status line; it caches the last city and falls back to the timezone city when offline. It needs `curl` and sends your IP to the configured endpoint, so enable it only when that is acceptable.\n\n## Theme color suggestions\n\nThe defaults use 16 ANSI color names that the active terminal theme remaps, so the periods match any theme out of the box; for exact hex values, copy one block below.\n\n### Catppuccin Mocha\n\n```tmux\nset -g @time_revamped_morning_color '#[fg=#f9e2af]'\nset -g @time_revamped_day_color '#[fg=#a6e3a1]'\nset -g @time_revamped_afternoon_color '#[fg=#94e2d5]'\nset -g @time_revamped_evening_color '#[fg=#cba6f7]'\nset -g @time_revamped_night_color '#[fg=#89b4fa]'\nset -g @time_revamped_weekend_color '#[fg=#a6adc8]'\n```\n\n### Dracula\n\n```tmux\nset -g @time_revamped_morning_color '#[fg=#f1fa8c]'\nset -g @time_revamped_day_color '#[fg=#50fa7b]'\nset -g @time_revamped_afternoon_color '#[fg=#8be9fd]'\nset -g @time_revamped_evening_color '#[fg=#ff79c6]'\nset -g @time_revamped_night_color '#[fg=#bd93f9]'\nset -g @time_revamped_weekend_color '#[fg=#6272a4]'\n```\n\n### Nord\n\n```tmux\nset -g @time_revamped_morning_color '#[fg=#ebcb8b]'\nset -g @time_revamped_day_color '#[fg=#a3be8c]'\nset -g @time_revamped_afternoon_color '#[fg=#88c0d0]'\nset -g @time_revamped_evening_color '#[fg=#b48ead]'\nset -g @time_revamped_night_color '#[fg=#81a1c1]'\nset -g @time_revamped_weekend_color '#[fg=#d8dee9]'\n```\n\n### Gruvbox Dark\n\n```tmux\nset -g @time_revamped_morning_color '#[fg=#fabd2f]'\nset -g @time_revamped_day_color '#[fg=#b8bb26]'\nset -g @time_revamped_afternoon_color '#[fg=#8ec07c]'\nset -g @time_revamped_evening_color '#[fg=#d3869b]'\nset -g @time_revamped_night_color '#[fg=#83a598]'\nset -g @time_revamped_weekend_color '#[fg=#a89984]'\n```\n\n### Tokyo Night\n\n```tmux\nset -g @time_revamped_morning_color '#[fg=#e0af68]'\nset -g @time_revamped_day_color '#[fg=#9ece6a]'\nset -g @time_revamped_afternoon_color '#[fg=#7dcfff]'\nset -g @time_revamped_evening_color '#[fg=#bb9af7]'\nset -g @time_revamped_night_color '#[fg=#7aa2f7]'\nset -g @time_revamped_weekend_color '#[fg=#565f89]'\n```\n\n### Solarized Dark\n\n```tmux\nset -g @time_revamped_morning_color '#[fg=#b58900]'\nset -g @time_revamped_day_color '#[fg=#859900]'\nset -g @time_revamped_afternoon_color '#[fg=#2aa198]'\nset -g @time_revamped_evening_color '#[fg=#d33682]'\nset -g @time_revamped_night_color '#[fg=#268bd2]'\nset -g @time_revamped_weekend_color '#[fg=#586e75]'\n```\n\n## Support by platform and architecture\n\nWorks on every supported platform and architecture with built-in tools, no extra package required. The local clock and every world clock use the system `date` and the operating system timezone database, which are present on Linux (x86_64 and arm64) and macOS (Intel and Apple Silicon). Period coloring, weekend detection, and compact labels are computed in shell and behave identically everywhere.\n\n## Development\n\n```bash\nmake test    # bats suite\nmake lint    # shellcheck\nmake coverage  # kcov line coverage on Linux\n```\n\n## License\n\n[MIT](LICENSE), copyright Gustavo Franco.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgufranco%2Ftmux-time-revamped","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgufranco%2Ftmux-time-revamped","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgufranco%2Ftmux-time-revamped/lists"}