Skip to content

Setting to override clock format (12h / 24h) #426

@HDash

Description

@HDash

Problem

Reset times in OpenUsage (e.g. Resets today at 11:04) are formatted via Intl.DateTimeFormat with no hour12 flag, so the clock format is dictated entirely by the user's OS locale. There's no way to override it.

This is a problem for:

  • Users in 12-hour locales who prefer 24-hour clocks (or vice versa).
  • Users in mixed environments (e.g. UK locale with US date conventions, or developers who want consistency with their terminal/IDE).
  • Anyone whose system locale doesn't match how they want OpenUsage to display time.

Today the only workaround is to change the OS locale itself, which affects every other app.

Proposed Solution

Add a Time Format section to Settings (next to Reset Timers) with three options:

  • Auto (default) — follows OS locale, matches current behavior.
  • 12-hour — forces 11:04 AM style.
  • 24-hour — forces 11:04 style.

Each option's button shows a live preview of how times will render. Persisted via the existing Tauri store.

Alternatives Considered

  • Auto-detect only, no override — current behavior. Doesn't address users who want a different format than their OS.
  • Single 12h/24h toggle without Auto — forces every user to make an explicit choice and can't track locale changes.
  • Inferring from a separate locale setting — heavier; OpenUsage doesn't have a locale concept beyond what Intl provides.

The 3-option Auto / 12h / 24h pattern is the standard across iOS, macOS, GNOME, etc., and keeps the default a no-op.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions