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.
omarchy display text size reports the font size of a terminal that is not installed
Reported by Thoroslives · filed Aug 28, 2026 · open at source
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?
- AreaOutside the audited area· Decided by agents · verified
- 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?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
What happens
omarchy display text size with no arguments prints the wrong terminal font size on any machine
that does not use Ghostty. It reports the value from the shipped ~/.config/ghostty/config instead
of the terminal actually in use.
On a machine where foot is the only terminal installed, with ~/.config/foot/foot.ini set tosize=9.5:
$ omarchy display text size
text size: 15 px
gtk text-scaling-factor: 1.2726999999999999
terminal font: 11 ptThe real foot size is 9.5. The 11 comes from ~/.config/ghostty/config, and Ghostty is not
installed.
Cause
The setter and the getter in bin/omarchy-display-text-size walk different lists.
set_terminal_size writes every terminal config it finds, using four independent if blocks:
if [[ -f ~/.config/alacritty/alacritty.toml ]]; then ...
if [[ -f ~/.config/kitty/kitty.conf ]]; then ...
if [[ -f ~/.config/ghostty/config ]]; then ...
if [[ -f ~/.config/foot/foot.ini ]]; then ...term_current_pt reads only the first config it finds, using an elif chain with Ghostty first:
term_current_pt() {
if [[ -f ~/.config/ghostty/config ]]; then
grep -oP '^font-size = \K[0-9.]+' ~/.config/ghostty/config | head -1
elif [[ -f ~/.config/alacritty/alacritty.toml ]]; then
...Omarchy ships default configs for all four terminals, so ~/.config/ghostty/config exists on a
stock install whether or not the Ghostty binary does. The getter therefore stops at Ghostty on
almost every machine, and the reported number only matches reality for Ghostty users.
The divergence stays invisible while the four files agree, and the setter keeps them in step. Edit
one file on its own and the report goes wrong. The docs invite exactly that, by naming foot.ini
as the place the terminal size lives.
Reproduce
On a machine with foot installed and Ghostty not installed, both config files present:
omarchy display text size 12- Edit
~/.config/foot/foot.iniand set:size=9.5by hand - Run
omarchy display text size
Reported terminal font is 9 pt. Actual foot size is 9.5.
Suggested fix
Resolve the terminal the way the rest of Omarchy does, rather than by config file existence.xdg-terminal-exec already knows which terminal will open. command -v tells an installed binary
from a shipped config file. Either one makes the getter agree with the machine.
Failing that, having the getter report every config it finds would at least stop it naming one
terminal authoritatively when four were written.
Note
PR #6550 reworks this file and adds --shell, --gtk and --terminals scope flags. Its status
rows read back through the same getter, so the scope row for Terminals would inherit this. Worth
settling the resolution question there rather than twice.
Reproduced on omarchy 4.0.1-1. The same code sits at the tip of quattro.
View raw text
## What happens
`omarchy display text size` with no arguments prints the wrong terminal font size on any machine
that does not use Ghostty. It reports the value from the shipped `~/.config/ghostty/config` instead
of the terminal actually in use.
On a machine where foot is the only terminal installed, with `~/.config/foot/foot.ini` set to
`size=9.5`:
```
$ omarchy display text size
text size: 15 px
gtk text-scaling-factor: 1.2726999999999999
terminal font: 11 pt
```
The real foot size is 9.5. The 11 comes from `~/.config/ghostty/config`, and Ghostty is not
installed.
## Cause
The setter and the getter in `bin/omarchy-display-text-size` walk different lists.
`set_terminal_size` writes every terminal config it finds, using four independent `if` blocks:
```bash
if [[ -f ~/.config/alacritty/alacritty.toml ]]; then ...
if [[ -f ~/.config/kitty/kitty.conf ]]; then ...
if [[ -f ~/.config/ghostty/config ]]; then ...
if [[ -f ~/.config/foot/foot.ini ]]; then ...
```
`term_current_pt` reads only the first config it finds, using an `elif` chain with Ghostty first:
```bash
term_current_pt() {
if [[ -f ~/.config/ghostty/config ]]; then
grep -oP '^font-size = \K[0-9.]+' ~/.config/ghostty/config | head -1
elif [[ -f ~/.config/alacritty/alacritty.toml ]]; then
...
```
Omarchy ships default configs for all four terminals, so `~/.config/ghostty/config` exists on a
stock install whether or not the Ghostty binary does. The getter therefore stops at Ghostty on
almost every machine, and the reported number only matches reality for Ghostty users.
The divergence stays invisible while the four files agree, and the setter keeps them in step. Edit
one file on its own and the report goes wrong. The docs invite exactly that, by naming `foot.ini`
as the place the terminal size lives.
## Reproduce
On a machine with foot installed and Ghostty not installed, both config files present:
1. `omarchy display text size 12`
2. Edit `~/.config/foot/foot.ini` and set `:size=9.5` by hand
3. Run `omarchy display text size`
Reported terminal font is 9 pt. Actual foot size is 9.5.
## Suggested fix
Resolve the terminal the way the rest of Omarchy does, rather than by config file existence.
`xdg-terminal-exec` already knows which terminal will open. `command -v` tells an installed binary
from a shipped config file. Either one makes the getter agree with the machine.
Failing that, having the getter report every config it finds would at least stop it naming one
terminal authoritatively when four were written.
## Note
PR #6550 reworks this file and adds `--shell`, `--gtk` and `--terminals` scope flags. Its status
rows read back through the same getter, so the scope row for Terminals would inherit this. Worth
settling the resolution question there rather than twice.
Reproduced on omarchy 4.0.1-1. The same code sits at the tip of `quattro`.
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
Not linked to any known issue, other report or change yet.
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.
- Out of scopeDecided by agents · verified · 2026-10-09 09:44 UTC