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-1811GitHub issuePublicDecided· Out of scope

Fresh Quattro install ignores installer keyboard layout choice — vconsole.conf gets only KEYMAP, Hyprland falls back to us

Reported by Asknorway · filed Aug 16, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 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

Fresh Quattro install ignores installer keyboard layout choice — vconsole.conf gets only KEYMAP, Hyprland falls back to usrevision 1 · captured 2026-09-28 21:29 UTC via poll

System details

  • Omarchy 4.0.0-1 (Quattro), fresh install on 2026-08-15 (no upgrade history in pacman.log)
  • MacBook Pro 2019 (Intel Core i9-9880H, Radeon Pro 5500M, Apple T2) running the linux-t2 kernel
  • Norwegian keyboard, selected during installation

What's wrong?

On a fresh Quattro install where a non-US keyboard layout is chosen in the installer, the Hyprland session comes up with the US layout anyway.

The installer records the choice only as a console keymap:

# /etc/vconsole.conf
KEYMAP=no-latin1

It writes no XKBLAYOUT/XKBVARIANT. But the packaged Hyprland default derives the session layout exclusively from XKBLAYOUT:

-- /usr/share/omarchy/default/hypr/input.lua
local kb_layout = vconsole.XKBLAYOUT or "us"
local kb_variant = vconsole.XKBVARIANT or ""

With only KEYMAP present, this silently falls back to us, so the console uses Norwegian while the desktop types US/ANSI.

The fcitx5 profile shipped for the compose-key setup is also hardcoded to keyboard-us (~/.config/fcitx5/profile: DefaultIM=keyboard-us), so even after fixing the Hyprland layout, fcitx5's virtual keyboard keeps serving US until its profile is corrected separately.

This is the fresh-install sibling of #6878: that report covers the Quattro upgrade dropping the layout when vconsole.conf only has KEYMAP; here a brand-new install never gets an XKBLAYOUT in the first place, so the same us fallback triggers.

Steps to reproduce

  1. Install Omarchy 4.0.0 from scratch and pick a non-US layout (e.g. Norwegian) in the installer.
  2. Boot into the installed system and log in to the Hyprland session.
  3. Type in any application.

Expected behavior

The session uses the layout chosen during installation (here no), matching the console keymap.

Actual behavior

hyprctl getoption input:kb_layout reports us; /etc/vconsole.conf contains only KEYMAP=no-latin1 with no XKBLAYOUT, so the packaged input.lua falls back to us. fcitx5 additionally stays on keyboard-us.

Workaround

-- ~/.config/hypr/input.lua
hl.config({
  input = {
    kb_layout = "no",
    kb_variant = "mac",
  },
})

plus pointing ~/.config/fcitx5/profile at the matching keyboard-* input method (editing it while fcitx5 is stopped, since fcitx5 rewrites the file on exit).

Suggested fix

Have the installer write XKBLAYOUT (and XKBVARIANT where applicable) to /etc/vconsole.conf alongside KEYMAP, mapping the chosen console keymap to its XKB equivalent (e.g. no-latin1 → no) — or teach default/hypr/input.lua to fall back to a KEYMAP-derived layout before defaulting to us. The fcitx5 profile should follow the same layout instead of a hardcoded keyboard-us.

View raw text
### System details

- Omarchy 4.0.0-1 (Quattro), fresh install on 2026-08-15 (no upgrade history in pacman.log)
- MacBook Pro 2019 (Intel Core i9-9880H, Radeon Pro 5500M, Apple T2) running the linux-t2 kernel
- Norwegian keyboard, selected during installation

### What's wrong?

On a fresh Quattro install where a non-US keyboard layout is chosen in the installer, the Hyprland session comes up with the US layout anyway.

The installer records the choice only as a console keymap:

```conf
# /etc/vconsole.conf
KEYMAP=no-latin1
```

It writes no `XKBLAYOUT`/`XKBVARIANT`. But the packaged Hyprland default derives the session layout exclusively from `XKBLAYOUT`:

```lua
-- /usr/share/omarchy/default/hypr/input.lua
local kb_layout = vconsole.XKBLAYOUT or "us"
local kb_variant = vconsole.XKBVARIANT or ""
```

With only `KEYMAP` present, this silently falls back to `us`, so the console uses Norwegian while the desktop types US/ANSI.

The fcitx5 profile shipped for the compose-key setup is also hardcoded to `keyboard-us` (`~/.config/fcitx5/profile`: `DefaultIM=keyboard-us`), so even after fixing the Hyprland layout, fcitx5's virtual keyboard keeps serving US until its profile is corrected separately.

This is the fresh-install sibling of #6878: that report covers the Quattro *upgrade* dropping the layout when `vconsole.conf` only has `KEYMAP`; here a brand-new install never gets an `XKBLAYOUT` in the first place, so the same `us` fallback triggers.

#### Steps to reproduce

1. Install Omarchy 4.0.0 from scratch and pick a non-US layout (e.g. Norwegian) in the installer.
2. Boot into the installed system and log in to the Hyprland session.
3. Type in any application.

#### Expected behavior

The session uses the layout chosen during installation (here `no`), matching the console keymap.

#### Actual behavior

`hyprctl getoption input:kb_layout` reports `us`; `/etc/vconsole.conf` contains only `KEYMAP=no-latin1` with no `XKBLAYOUT`, so the packaged `input.lua` falls back to `us`. fcitx5 additionally stays on `keyboard-us`.

#### Workaround

```lua
-- ~/.config/hypr/input.lua
hl.config({
  input = {
    kb_layout = "no",
    kb_variant = "mac",
  },
})
```

plus pointing `~/.config/fcitx5/profile` at the matching `keyboard-*` input method (editing it while fcitx5 is stopped, since fcitx5 rewrites the file on exit).

#### Suggested fix

Have the installer write `XKBLAYOUT` (and `XKBVARIANT` where applicable) to `/etc/vconsole.conf` alongside `KEYMAP`, mapping the chosen console keymap to its XKB equivalent (e.g. `no-latin1` → `no`) — or teach `default/hypr/input.lua` to fall back to a `KEYMAP`-derived layout before defaulting to `us`. The fcitx5 profile should follow the same layout instead of a hardcoded `keyboard-us`.

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 04:14 UTC