Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-263GitHub issuePublicFixed

Bar Nerd Font icons render tiny with Iosevka Nerd Font Mono (except Bluetooth and menu)

Reported by Nikit-Singh · filed Sep 20, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 days ago.

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

Bar Nerd Font icons render tiny with Iosevka Nerd Font Mono (except Bluetooth and menu)revision 1 · captured 2026-09-28 21:23 UTC via poll

System details

  • Omarchy: 4.0.4-1 (omarchy version)
  • CPU: AMD Ryzen 7 3700X 8-Core, GPU: NVIDIA GA106 [GeForce RTX 3060]
  • Monitor: DP-1 2560x1440@170, scale 1.6 (hyprctl monitors)
  • Theme: Solitude, [font] base-size = 12, GTK text-scaling 1.0
  • Bar layout: default (right: tray, agents, bluetooth, network, audio, monitor, power)

Note: omarchy debug / omarchy debug --no-sudo --print from the skill docs does not exist on 4.0.4-1 (Unknown Omarchy command: omarchy debug), and there is no omarchy-*debug* binary in /usr/share/omarchy/bin/. So no omarchy-debug log to attach.

What's wrong?

With monospace set to Iosevka Nerd Font Mono (via omarchy font set "Iosevka Nerd Font Mono"), bar Nerd Font icons render very small — except Bluetooth and the omarchy menu icon.

  • Tiny: tray arrow, agents (U+F16A3), network wifi (U+F0928 family) / ethernet (U+F0200), audio (U+F028 family), monitor (U+F0379), power battery, center indicators, weather/system-update.
  • Normal size: omarchy.menu (\ue900, uses the bundled omarchy font, not monospace) and omarchy.bluetooth (U+F00AF/U+F00B1/U+F00B2).

Steps to reproduce

  1. omarchy font set "Iosevka Nerd Font Mono" (writes ~/.config/fontconfig/fonts.conf monospace override, restarts shell)
  2. Look at the top bar — right-side icons are tiny compared to Bluetooth; see before capture below.
  3. omarchy font set "JetBrainsMono Nerd Font" + omarchy restart shell — all icons return to matching visual weight; see after capture.

Measurements (ImageMagick label: at 100pt, -trim ink box)

Same codepoint rendered with JetBrainsMonoNerdFont-Regular.ttf vs IosevkaNerdFontMono-Regular.ttf:

  • U+F00AF bluetooth: JB 152x84, Iosevka 130x84 — same height, only narrower (looks normal)
  • U+F028 audio: JB 162x84, Iosevka 130x62 (~26% shorter)
  • U+F0928 wifi: JB 152x78, Iosevka 130x64
  • U+F16A3 agents: JB 152x84, Iosevka 130x67
  • U+F0379 monitor: JB 152x84, Iosevka 130x67

So Iosevka's Nerd patch draws most Material icons shorter; Bluetooth happens to be full-height, which matches the on-screen symptom exactly.

Workaround used

Kept terminals on Iosevka, switched only the bar back by editing ~/.config/fontconfig/fonts.conf monospace to JetBrainsMono Nerd Font + omarchy restart shell. Icons are correct again.

Suggestions

  • omarchy font set could warn that non-default Nerd Fonts may have inconsistent icon metrics in the bar (bar uses Style.font.family = "monospace" → Bar.fontFamily, BarIconButton.fontSize = Style.bar.iconFont).
  • Style.qml:applyShellValues() currently only parses [bar] size-horizontal/size-vertical (plus scale-with-font) — icon-font / icon-slot / icon-canvas / status-slot fall back to defaults scaled by fontScale, so there is no per-install compensation knob for a small-icon font without growing the whole bar via [font] base-size. Exposing [bar] icon-font (or documenting it as unsupported) would help.
  • Alternatively a fontconfig PUA fallback or bar-only font override would let users keep Iosevka for text while getting JetBrains-sized icons.

Captures

  • before: cropped right-side bar with Iosevka — tiny wifi/audio vs normal bluetooth (attached as before-tiny-icons, full screenshot also available).
  • after: same crop after switching monospace to JetBrainsMono — all icons matching weight.
View raw text
## System details
- Omarchy: 4.0.4-1 (`omarchy version`)
- CPU: AMD Ryzen 7 3700X 8-Core, GPU: NVIDIA GA106 [GeForce RTX 3060]
- Monitor: DP-1 2560x1440@170, scale 1.6 (`hyprctl monitors`)
- Theme: Solitude, `[font] base-size = 12`, GTK text-scaling 1.0
- Bar layout: default (right: tray, agents, bluetooth, network, audio, monitor, power)

Note: `omarchy debug` / `omarchy debug --no-sudo --print` from the skill docs does not exist on 4.0.4-1 (`Unknown Omarchy command: omarchy debug`), and there is no `omarchy-*debug*` binary in `/usr/share/omarchy/bin/`. So no `omarchy-debug` log to attach.

## What's wrong?
With `monospace` set to `Iosevka Nerd Font Mono` (via `omarchy font set "Iosevka Nerd Font Mono"`), bar Nerd Font icons render very small — except Bluetooth and the omarchy menu icon.

- Tiny: tray arrow, agents (`U+F16A3`), network wifi (`U+F0928` family) / ethernet (`U+F0200`), audio (`U+F028` family), monitor (`U+F0379`), power battery, center indicators, weather/system-update.
- Normal size: `omarchy.menu` (`\ue900`, uses the bundled `omarchy` font, not monospace) and `omarchy.bluetooth` (`U+F00AF`/`U+F00B1`/`U+F00B2`).

### Steps to reproduce
1. `omarchy font set "Iosevka Nerd Font Mono"` (writes `~/.config/fontconfig/fonts.conf` monospace override, restarts shell)
2. Look at the top bar — right-side icons are tiny compared to Bluetooth; see `before` capture below.
3. `omarchy font set "JetBrainsMono Nerd Font"` + `omarchy restart shell` — all icons return to matching visual weight; see `after` capture.

### Measurements (ImageMagick `label:` at 100pt, `-trim` ink box)
Same codepoint rendered with `JetBrainsMonoNerdFont-Regular.ttf` vs `IosevkaNerdFontMono-Regular.ttf`:

- `U+F00AF` bluetooth: JB `152x84`, Iosevka `130x84` — same height, only narrower (looks normal)
- `U+F028` audio: JB `162x84`, Iosevka `130x62` (~26% shorter)
- `U+F0928` wifi: JB `152x78`, Iosevka `130x64`
- `U+F16A3` agents: JB `152x84`, Iosevka `130x67`
- `U+F0379` monitor: JB `152x84`, Iosevka `130x67`

So Iosevka's Nerd patch draws most Material icons shorter; Bluetooth happens to be full-height, which matches the on-screen symptom exactly.

### Workaround used
Kept terminals on Iosevka, switched only the bar back by editing `~/.config/fontconfig/fonts.conf` monospace to `JetBrainsMono Nerd Font` + `omarchy restart shell`. Icons are correct again.

### Suggestions
- `omarchy font set` could warn that non-default Nerd Fonts may have inconsistent icon metrics in the bar (bar uses `Style.font.family = "monospace"` → `Bar.fontFamily`, `BarIconButton.fontSize = Style.bar.iconFont`).
- `Style.qml:applyShellValues()` currently only parses `[bar] size-horizontal/size-vertical` (plus `scale-with-font`) — `icon-font` / `icon-slot` / `icon-canvas` / `status-slot` fall back to defaults scaled by `fontScale`, so there is no per-install compensation knob for a small-icon font without growing the whole bar via `[font] base-size`. Exposing `[bar] icon-font` (or documenting it as unsupported) would help.
- Alternatively a fontconfig PUA fallback or bar-only font override would let users keep Iosevka for text while getting JetBrains-sized icons.

### Captures
- `before`: cropped right-side bar with Iosevka — tiny wifi/audio vs normal bluetooth (attached as before-tiny-icons, full screenshot also available).
- `after`: same crop after switching monospace to JetBrainsMono — all icons matching weight.

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/15065· 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.

  • Out of scopeDecided by agents · verified · 2026-10-09 16:45 UTC