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

Quattro upgrade drops non-US keyboard layout when vconsole.conf only has KEYMAP

Reported by cempack · filed Aug 14, 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

Quattro upgrade drops non-US keyboard layout when vconsole.conf only has KEYMAPrevision 1 · captured 2026-09-28 21:29 UTC via poll

System details

  • Omarchy 4.0.0-1 (Quattro stable), upgraded from a pre-Quattro installation
  • Linux 7.1.8-arch1-3
  • Intel Core Ultra 5 228V
  • Intel Arc Graphics 130V/140V
  • French/AZERTY keyboard layout

What's wrong?

After upgrading an existing Omarchy installation to Quattro and rebooting, the Hyprland session uses the US/QWERTY layout instead of the previously configured French/AZERTY layout.

Before the upgrade, the active legacy config contained:

# ~/.config/hypr/input.conf
input {
  kb_layout = fr
  kb_options = compose:caps
}

The system console config contains:

# /etc/vconsole.conf
KEYMAP=fr

It does not contain XKBLAYOUT, which is valid: vconsole.conf only guarantees the console KEYMAP setting.

The Quattro upgrade leaves the legacy input.conf in place but switches Hyprland to the new Lua entry points. It always installs a stock ~/.config/hypr/input.lua, and that file has no active keyboard-layout override. The packaged default/hypr/input.lua then does:

local kb_layout = vconsole.XKBLAYOUT or "us"

Because this installation has KEYMAP=fr but no XKBLAYOUT, the effective layout silently falls back to us. The migration 1781485962.sh also sees the stock input.lua and leaves/replaces it with the packaged version, so the old kb_layout = fr is never carried over.

Steps to reproduce

  1. Start with a pre-Quattro Omarchy installation where:
  • ~/.config/hypr/input.conf contains kb_layout = fr
  • /etc/vconsole.conf contains only KEYMAP=fr
  1. Upgrade to Quattro.
  2. Reboot into the new Lua-based Hyprland configuration.
  3. Type in any application.
  4. Observe that the session uses US/QWERTY instead of French/AZERTY.

Expected behavior

The Quattro upgrade should preserve the explicitly configured keyboard layout from the legacy input.conf.

Actual behavior

The explicit legacy layout is ignored, and the new default falls back to us.

Workaround

Adding this to ~/.config/hypr/input.lua restores the correct layout:

hl.config({
  input = {
    kb_layout = "fr",
  },
})

Suggested fix

During omarchy-upgrade-to-quattro, migrate active kb_layout, kb_variant, and kb_options values from the legacy ~/.config/hypr/input.conf into the new input.lua before switching entry points. Alternatively, ensure the upgrade populates an appropriate XKBLAYOUT when only KEYMAP exists, while accounting for console/XKB naming differences.

A regression test could cover a legacy input.conf with kb_layout = fr plus a vconsole.conf containing only KEYMAP=fr.

View raw text
### System details

- Omarchy 4.0.0-1 (Quattro stable), upgraded from a pre-Quattro installation
- Linux 7.1.8-arch1-3
- Intel Core Ultra 5 228V
- Intel Arc Graphics 130V/140V
- French/AZERTY keyboard layout

### What's wrong?

After upgrading an existing Omarchy installation to Quattro and rebooting, the Hyprland session uses the US/QWERTY layout instead of the previously configured French/AZERTY layout.

Before the upgrade, the active legacy config contained:

```conf
# ~/.config/hypr/input.conf
input {
  kb_layout = fr
  kb_options = compose:caps
}
```

The system console config contains:

```conf
# /etc/vconsole.conf
KEYMAP=fr
```

It does not contain `XKBLAYOUT`, which is valid: `vconsole.conf` only guarantees the console `KEYMAP` setting.

The Quattro upgrade leaves the legacy `input.conf` in place but switches Hyprland to the new Lua entry points. It always installs a stock `~/.config/hypr/input.lua`, and that file has no active keyboard-layout override. The packaged `default/hypr/input.lua` then does:

```lua
local kb_layout = vconsole.XKBLAYOUT or "us"
```

Because this installation has `KEYMAP=fr` but no `XKBLAYOUT`, the effective layout silently falls back to `us`. The migration `1781485962.sh` also sees the stock `input.lua` and leaves/replaces it with the packaged version, so the old `kb_layout = fr` is never carried over.

#### Steps to reproduce

1. Start with a pre-Quattro Omarchy installation where:
   - `~/.config/hypr/input.conf` contains `kb_layout = fr`
   - `/etc/vconsole.conf` contains only `KEYMAP=fr`
2. Upgrade to Quattro.
3. Reboot into the new Lua-based Hyprland configuration.
4. Type in any application.
5. Observe that the session uses US/QWERTY instead of French/AZERTY.

#### Expected behavior

The Quattro upgrade should preserve the explicitly configured keyboard layout from the legacy `input.conf`.

#### Actual behavior

The explicit legacy layout is ignored, and the new default falls back to `us`.

#### Workaround

Adding this to `~/.config/hypr/input.lua` restores the correct layout:

```lua
hl.config({
  input = {
    kb_layout = "fr",
  },
})
```

#### Suggested fix

During `omarchy-upgrade-to-quattro`, migrate active `kb_layout`, `kb_variant`, and `kb_options` values from the legacy `~/.config/hypr/input.conf` into the new `input.lua` before switching entry points. Alternatively, ensure the upgrade populates an appropriate `XKBLAYOUT` when only `KEYMAP` exists, while accounting for console/XKB naming differences.

A regression test could cover a legacy `input.conf` with `kb_layout = fr` plus a `vconsole.conf` containing only `KEYMAP=fr`.

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