Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
Qt.formatDate/Qt.formatDateTime ignore system locale for day/month names in shell widgets (clock bar + calendar)
Reported by jlglvz · filed Aug 19, 2026Closed upstream on 2026-09-21 by bjarneo via an automated message, as a duplicate of #7211 (R-1742). GitHub close reason: completed.
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- Not yet mapped to any requirement or component.
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.
Original report
What happened
The clock bar widget (omarchy.clock) and its calendar popup show weekday
and month names in English even though the system locale is es_ES.UTF-8.
- Bar label with format
dddd HH:mmshows "Wednesday 12:58" instead of
"miércoles 12:58".
- Calendar popup header shows "AUGUST 2026" instead of "AGOSTO 2026", and
the "today" hero line shows "August 19" instead of "agosto 19".
- Oddly, the calendar's weekday column headers (LUN, MAR, MIÉ...) already
show correctly in Spanish.
Root cause (found while debugging)
shell/plugins/panels/clock/BarWidget.qml and Panel.qml use the QML
global functions Qt.formatDateTime(date, format) / `Qt.formatDate(date,
format) to render dddd/MMMM` tokens. These globals do not honor the
system default locale for weekday/month names.
By contrast, Panel.qml already uses `Qt.locale().dayName(weekday,
Locale.ShortFormat)` elsewhere (line ~219) for the calendar's weekday
column headers, and that correctly returns Spanish names — confirming the
system locale is detected fine by Qt, just not by the Qt.formatDate*
globals.
Verified independently with PySide6 on the same machine/locale:QLocale().toString(QDateTime.currentDateTime(), "dddd") correctly
returns "miércoles", using the exact same LANG=es_ES.UTF-8 environment
the running Quickshell process has (checked via/proc/<pid>/environ).
Expected
Day and month names in the clock bar and calendar popup should follow the
system locale, consistent with the weekday column headers.
Suggested fix
Replace the global Qt.formatDateTime(date, format) / `Qt.formatDate(date,
format) calls in BarWidget.qml's formatted() and in Panel.qml`'s two"MMMM ..." labels with Qt.locale().toString(date, format), which does
respect the system locale (same pattern already used for the weekday
headers). I've tested this fix locally via a plugin clone
(omarchy plugin clone omarchy.clock) and it fixes both the bar and the
calendar without side effects.
System
- Omarchy 4.0.0-1
- quickshell-git 0.3.0.r20.g28771c7-1
- qt6-base 6.11.1-1
- kernel 7.1.8-arch1-3
- System locale: LANG=es_ES.UTF-8 (confirmed present in the Quickshell
process environment)
Steps to reproduce
- Set system locale to a non-English one (e.g. `localectl set-locale
LANG=es_ES.UTF-8`) and log in / restart the shell.
2. Look at the bar clock (default format dddd HH:mm) — day name is in
English.
3. Open the calendar popup — month name is in English; weekday column
headers are correctly localized.
View raw text
### What happened The clock bar widget (`omarchy.clock`) and its calendar popup show weekday and month names in English even though the system locale is `es_ES.UTF-8`. - Bar label with format `dddd HH:mm` shows "Wednesday 12:58" instead of "miércoles 12:58". - Calendar popup header shows "AUGUST 2026" instead of "AGOSTO 2026", and the "today" hero line shows "August 19" instead of "agosto 19". - Oddly, the calendar's weekday column headers (LUN, MAR, MIÉ...) already show correctly in Spanish. ### Root cause (found while debugging) `shell/plugins/panels/clock/BarWidget.qml` and `Panel.qml` use the QML global functions `Qt.formatDateTime(date, format)` / `Qt.formatDate(date, format)` to render `dddd`/`MMMM` tokens. These globals do not honor the system default locale for weekday/month names. By contrast, `Panel.qml` already uses `Qt.locale().dayName(weekday, Locale.ShortFormat)` elsewhere (line ~219) for the calendar's weekday column headers, and that correctly returns Spanish names — confirming the system locale is detected fine by Qt, just not by the `Qt.formatDate*` globals. Verified independently with PySide6 on the same machine/locale: `QLocale().toString(QDateTime.currentDateTime(), "dddd")` correctly returns "miércoles", using the exact same `LANG=es_ES.UTF-8` environment the running Quickshell process has (checked via `/proc/<pid>/environ`). ### Expected Day and month names in the clock bar and calendar popup should follow the system locale, consistent with the weekday column headers. ### Suggested fix Replace the global `Qt.formatDateTime(date, format)` / `Qt.formatDate(date, format)` calls in `BarWidget.qml`'s `formatted()` and in `Panel.qml`'s two `"MMMM ..."` labels with `Qt.locale().toString(date, format)`, which does respect the system locale (same pattern already used for the weekday headers). I've tested this fix locally via a plugin clone (`omarchy plugin clone omarchy.clock`) and it fixes both the bar and the calendar without side effects. ### System - Omarchy 4.0.0-1 - quickshell-git 0.3.0.r20.g28771c7-1 - qt6-base 6.11.1-1 - kernel 7.1.8-arch1-3 - System locale: LANG=es_ES.UTF-8 (confirmed present in the Quickshell process environment) ### Steps to reproduce 1. Set system locale to a non-English one (e.g. `localectl set-locale LANG=es_ES.UTF-8`) and log in / restart the shell. 2. Look at the bar clock (default format `dddd HH:mm`) — day name is in English. 3. Open the calendar popup — month name is in English; weekday column headers are correctly localized.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
- Fixed bypr/7173· confirmed
- Related PRpr/13546· confirmed
- Related PRpr/13851· confirmed
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
No decision has been recorded yet.