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.
SDDM greeter always uses US keyboard layout, ignoring the system layout
Reported by g-desoutter · filed Aug 14, 2026Closed upstream on 2026-10-04 by the merge of PR #6896 (closed by dhh). 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
System details
Omarchy 4.0.0-1, i5-12600K, RTX 5070,Keyboard layout: fr
What's wrong?
Describe the issue
The SDDM greeter always uses the US/QWERTY layout, regardless of the system keyboard layout. On a FR/AZERTY system, the login password field is QWERTY, so any password containing layout-sensitive characters cannot be typed. There is no layout indicator or switcher on the greeter.
Note: the system XKB configuration is already correct, so localectl set-x11-keymap is not the fix. Hyprland ignores /etc/X11/xorg.conf.d/00-keyboard.conf entirely — it only honours input { kb_layout } in its own config — which is why the greeter is wrong while the rest of the system is right:
$ localectl status
VC Keymap: fr
X11 Layout: fr
X11 Model: pc105
$ cat /etc/X11/xorg.conf.d/00-keyboard.conf
Option "XkbLayout" "fr"
Option "XkbModel" "pc105"
$ hyprctl getoption input:kb_layout
str: frCause: the greeter runs inside its own Hyprland instance.
# /etc/sddm.conf.d/10-wayland.conf
[Wayland]
CompositorCommand=start-hyprland -- --config /usr/share/sddm/hyprland.confNeither /usr/share/sddm/hyprland.conf nor the newer /usr/share/sddm/hyprland.lua declares an input block — both only set misc{} and animations{}. With no kb_layout, Hyprland falls back to its built-in default, us.
Confirmed: pointing CompositorCommand at a config that sources the shipped one and adds input { kb_layout = fr } makes the greeter AZERTY. The fix therefore belongs in the greeter's compositor config.
Steps to recreate
- Install with a non-US layout (FR here) and full-disk encryption.
- Disable autologin by moving
/etc/sddm.conf.d/autologin.confout of the directory. SDDM reads every file inconf.dregardless of extension, so renaming it to.disabledin place is not enough — it is still parsed. - Reboot.
- The LUKS decryption prompt is correctly AZERTY (vconsole
KEYMAP=fr). - Seconds later, on the same physical keyboard, the SDDM greeter is US/QWERTY.
Both prompts appear during a single boot, so this is not a logout or session-restart problem: the greeter is always US. With autologin enabled (the default) the greeter is skipped at boot and only appears after a logout, which is why the issue is easy to miss.
Expected
The greeter's Hyprland config should carry the system keyboard layout (kb_layout, kb_variant, kb_options), so the greeter matches both the LUKS prompt and the user session.
Workaround
Verified working — the greeter is AZERTY after a logout with this in place. The layout is hardcoded here; a proper fix would detect the system layout, as is already done for ~/.config/hypr/input.conf.
# /etc/sddm/hyprland-kbd.conf
source = /usr/share/sddm/hyprland.conf
input {
kb_layout = fr
kb_model = pc105
}# /etc/sddm.conf.d/99-keyboard.conf
[Wayland]
CompositorCommand=start-hyprland -- --config /etc/sddm/hyprland-kbd.confSide notes from the 4.0.0 update path
Updated 3.8.2 to 4.0.0 with omarchy update, not a fresh ISO install. Neither of these causes the layout bug, but both surfaced while investigating.
- 4.0.0 ships
/usr/share/sddm/hyprland.luaand a10-wayland.conf.pacnewpointing at it, while the active10-wayland.confstill points athyprland.conf. Since SDDM'sconf.dreader does not filter on the.confextension, the.pacnewis parsed alongside the real file and both setCompositorCommandwith different values. /usr/share/sddm/hyprland.confis not owned by any package (pacman -Qoreturns "No package owns"), so it lingers after the update.
Related
#5754 — same class of problem on hyprlock after the 3.8.0 update: auth surfaces do not inherit the system keyboard layout.
#6878 — Quattro upgrade drops non-US layout in the Hyprland session when vconsole.conf has only KEYMAP (falls back to us via vconsole.XKBLAYOUT or "us"). Different component and different cause: my session is correct and my vconsole.conf does contain XKBLAYOUT=fr. The greeter's compositor config doesn't read vconsole at all — it simply has no input block.
omarchy-debug
omarchy-debug
Date: Fri Aug 14 08:45:00 PM CEST 2026
Hostname: HOST
Omarchy Package: omarchy 4.0.0-1
=========================================
SYSTEM INFORMATION
=========================================
System:
Kernel: 7.1.8-arch1-3 arch: x86_64 bits: 64 compiler: gcc v: 16.2.1
parameters: resume=/dev/mapper/root quiet splash loglevel=0
systemd.show_status=false rd.udev.log_level=0 vt.global_cursor_default=0
cryptdevice=PARTUUID=<redacted>:root root=/dev/mapper/root
zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs
Desktop: Hyprland v: 0.56.2 vt: 3 dm: SDDM Distro: Omarchy
Machine:
Type: Desktop Mobo: Micro-Star model: PRO B760-P WIFI DDR4 (MS-7D98) v: 1.0
Firmware: UEFI vendor: American Megatrends LLC. v: 1.F0 date: 08/07/2025
CPU:
Info: model: 12th Gen Intel Core i5-12600K arch: Alder Lake
cores: 10 threads: 16
Graphics:
Device-1: Intel Alder Lake-S GT1 [UHD Graphics 770] driver: i915
Device-2: NVIDIA GB205 [GeForce RTX 5070] driver: nvidia v: 610.57.04
Display: wayland server: X.org v: 1.21.1.24 with: Xwayland v: 24.1.13
compositor: Hyprland v: 0.56.2
Monitor-1: HDMI-A-1 model: Dell U2424H res: 1920x1080 dpi: 93
Drives:
ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 990 PRO 1TB
size: 931.51 GiB tech: SSD scheme: GPT
Partition:
ID-1: / fs: btrfs dev: /dev/dm-0 mapped: root
ID-2: /boot fs: vfat dev: /dev/nvme0n1p1
Repos:
Packages: pm: pacman pkgs: 1174 tools: yay
Active pacman repo servers in: /etc/pacman.conf
1: https://pkgs.omarchy.org/stable/$arch
Info:
Memory: total: 64 GiB Init: systemd v: 261 default: graphical
inxi: 3.3.41
=========================================
RELEVANT PACKAGES
=========================================
omarchy 4.0.0-1 (omarchy)
omarchy-settings 4.0.0-1 (omarchy)
sddm 0.21.0-7 (extra)
hyprland 0.56.2-1 (extra)
linux 7.1.8.arch1-3 (core)
nvidia-open-dkms 610.57.04-1 (extra)
fcitx5 5.1.21-1 (extra)
plymouth 26.134.222-2 (extra)
uwsm 0.26.6-1 (extra)
=========================================
JOURNALCTL (greeter-related, current boot)
=========================================
sddm-helper[1148]: pam_unix(sddm-autologin:session): session opened for user USER (boot: greeter skipped)
sddm-helper-start-wayland[1168]: xkbcomp warnings (non-fatal)
sddm-greeter-qt6[1203]: /usr/share/sddm/themes/omarchy/Main.qml:104:11 Parameter "event" is not declared (deprecation warning)
sddm[1133]: Greeter starting... (only after logout)
sddm-helper[1239]: [PAM] authenticate: Authentication failure (password typed in AZERTY, greeter is QWERTY)
sddm[1133]: Authentication error: SDDM::Auth::ERROR_AUTHENTICATIONView raw text
### System details
Omarchy 4.0.0-1, i5-12600K, RTX 5070,Keyboard layout: fr
### What's wrong?
## Describe the issue
The SDDM greeter always uses the US/QWERTY layout, regardless of the system keyboard layout. On a FR/AZERTY system, the login password field is QWERTY, so any password containing layout-sensitive characters cannot be typed. There is no layout indicator or switcher on the greeter.
Note: the system XKB configuration is already correct, so `localectl set-x11-keymap` is not the fix. Hyprland ignores `/etc/X11/xorg.conf.d/00-keyboard.conf` entirely — it only honours `input { kb_layout }` in its own config — which is why the greeter is wrong while the rest of the system is right:
```
$ localectl status
VC Keymap: fr
X11 Layout: fr
X11 Model: pc105
$ cat /etc/X11/xorg.conf.d/00-keyboard.conf
Option "XkbLayout" "fr"
Option "XkbModel" "pc105"
$ hyprctl getoption input:kb_layout
str: fr
```
Cause: the greeter runs inside its own Hyprland instance.
```ini
# /etc/sddm.conf.d/10-wayland.conf
[Wayland]
CompositorCommand=start-hyprland -- --config /usr/share/sddm/hyprland.conf
```
Neither `/usr/share/sddm/hyprland.conf` nor the newer `/usr/share/sddm/hyprland.lua` declares an input block — both only set `misc{}` and `animations{}`. With no `kb_layout`, Hyprland falls back to its built-in default, `us`.
Confirmed: pointing `CompositorCommand` at a config that sources the shipped one and adds `input { kb_layout = fr }` makes the greeter AZERTY. The fix therefore belongs in the greeter's compositor config.
## Steps to recreate
1. Install with a non-US layout (FR here) and full-disk encryption.
2. Disable autologin by moving `/etc/sddm.conf.d/autologin.conf` out of the directory. SDDM reads every file in `conf.d` regardless of extension, so renaming it to `.disabled` in place is not enough — it is still parsed.
3. Reboot.
4. The LUKS decryption prompt is correctly AZERTY (vconsole `KEYMAP=fr`).
5. Seconds later, on the same physical keyboard, the SDDM greeter is US/QWERTY.
Both prompts appear during a single boot, so this is not a logout or session-restart problem: the greeter is always US. With autologin enabled (the default) the greeter is skipped at boot and only appears after a logout, which is why the issue is easy to miss.
## Expected
The greeter's Hyprland config should carry the system keyboard layout (`kb_layout`, `kb_variant`, `kb_options`), so the greeter matches both the LUKS prompt and the user session.
## Workaround
Verified working — the greeter is AZERTY after a logout with this in place. The layout is hardcoded here; a proper fix would detect the system layout, as is already done for `~/.config/hypr/input.conf`.
```
# /etc/sddm/hyprland-kbd.conf
source = /usr/share/sddm/hyprland.conf
input {
kb_layout = fr
kb_model = pc105
}
```
```ini
# /etc/sddm.conf.d/99-keyboard.conf
[Wayland]
CompositorCommand=start-hyprland -- --config /etc/sddm/hyprland-kbd.conf
```
## Side notes from the 4.0.0 update path
Updated 3.8.2 to 4.0.0 with `omarchy update`, not a fresh ISO install. Neither of these causes the layout bug, but both surfaced while investigating.
- 4.0.0 ships `/usr/share/sddm/hyprland.lua` and a `10-wayland.conf.pacnew` pointing at it, while the active `10-wayland.conf` still points at `hyprland.conf`. Since SDDM's `conf.d` reader does not filter on the `.conf` extension, the `.pacnew` is parsed alongside the real file and both set `CompositorCommand` with different values.
- `/usr/share/sddm/hyprland.conf` is not owned by any package (`pacman -Qo` returns "No package owns"), so it lingers after the update.
## Related
#5754 — same class of problem on hyprlock after the 3.8.0 update: auth surfaces do not inherit the system keyboard layout.
#6878 — Quattro upgrade drops non-US layout in the Hyprland *session* when vconsole.conf has only KEYMAP (falls back to `us` via `vconsole.XKBLAYOUT or "us"`). Different component and different cause: my session is correct and my vconsole.conf does contain XKBLAYOUT=fr. The greeter's compositor config doesn't read vconsole at all — it simply has no input block.
## omarchy-debug
<details>
<summary>omarchy-debug</summary>
```
Date: Fri Aug 14 08:45:00 PM CEST 2026
Hostname: HOST
Omarchy Package: omarchy 4.0.0-1
=========================================
SYSTEM INFORMATION
=========================================
System:
Kernel: 7.1.8-arch1-3 arch: x86_64 bits: 64 compiler: gcc v: 16.2.1
parameters: resume=/dev/mapper/root quiet splash loglevel=0
systemd.show_status=false rd.udev.log_level=0 vt.global_cursor_default=0
cryptdevice=PARTUUID=<redacted>:root root=/dev/mapper/root
zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs
Desktop: Hyprland v: 0.56.2 vt: 3 dm: SDDM Distro: Omarchy
Machine:
Type: Desktop Mobo: Micro-Star model: PRO B760-P WIFI DDR4 (MS-7D98) v: 1.0
Firmware: UEFI vendor: American Megatrends LLC. v: 1.F0 date: 08/07/2025
CPU:
Info: model: 12th Gen Intel Core i5-12600K arch: Alder Lake
cores: 10 threads: 16
Graphics:
Device-1: Intel Alder Lake-S GT1 [UHD Graphics 770] driver: i915
Device-2: NVIDIA GB205 [GeForce RTX 5070] driver: nvidia v: 610.57.04
Display: wayland server: X.org v: 1.21.1.24 with: Xwayland v: 24.1.13
compositor: Hyprland v: 0.56.2
Monitor-1: HDMI-A-1 model: Dell U2424H res: 1920x1080 dpi: 93
Drives:
ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 990 PRO 1TB
size: 931.51 GiB tech: SSD scheme: GPT
Partition:
ID-1: / fs: btrfs dev: /dev/dm-0 mapped: root
ID-2: /boot fs: vfat dev: /dev/nvme0n1p1
Repos:
Packages: pm: pacman pkgs: 1174 tools: yay
Active pacman repo servers in: /etc/pacman.conf
1: https://pkgs.omarchy.org/stable/$arch
Info:
Memory: total: 64 GiB Init: systemd v: 261 default: graphical
inxi: 3.3.41
=========================================
RELEVANT PACKAGES
=========================================
omarchy 4.0.0-1 (omarchy)
omarchy-settings 4.0.0-1 (omarchy)
sddm 0.21.0-7 (extra)
hyprland 0.56.2-1 (extra)
linux 7.1.8.arch1-3 (core)
nvidia-open-dkms 610.57.04-1 (extra)
fcitx5 5.1.21-1 (extra)
plymouth 26.134.222-2 (extra)
uwsm 0.26.6-1 (extra)
=========================================
JOURNALCTL (greeter-related, current boot)
=========================================
sddm-helper[1148]: pam_unix(sddm-autologin:session): session opened for user USER (boot: greeter skipped)
sddm-helper-start-wayland[1168]: xkbcomp warnings (non-fatal)
sddm-greeter-qt6[1203]: /usr/share/sddm/themes/omarchy/Main.qml:104:11 Parameter "event" is not declared (deprecation warning)
sddm[1133]: Greeter starting... (only after logout)
sddm-helper[1239]: [PAM] authenticate: Authentication failure (password typed in AZERTY, greeter is QWERTY)
sddm[1133]: Authentication error: SDDM::Auth::ERROR_AUTHENTICATION
```
</details>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.
No decision has been recorded yet.