Skip to content

Cannot correctly set keyboard shortcuts with non‑US keyboard layout #2497

@pizzacom

Description

@pizzacom

Compositor

Niri

Distribution

CachyOS

If Other, please specify

No response

Select your Installation Method

DankInstaller

Was this your original Installation method?

Yes

If no, specify

No response

dms doctor -vC

Click to expand ## DMS Doctor Report

System

  • [ok] Operating System: CachyOS
    • ID: cachyos, Version: rolling, Arch: amd64
  • [ok] Architecture: amd64
  • [ok] Display Server: Wayland
    • WAYLAND_DISPLAY=wayland-1

Versions

  • [ok] DMS CLI: dms v1.4.6
    • /usr/bin/dms
  • [ok] Quickshell: Quickshell 0.3.0 (revision , distributed by Arch Linux)
    • /usr/bin/qs
  • [ok] DMS Shell: v1.4.6
    • /usr/share/quickshell/dms

Installation

  • [ok] DMS Configuration: Found
    • /usr/share/quickshell/dms
  • [ok] shell.qml: Present
    • /usr/share/quickshell/dms/shell.qml
  • [info] Install Type: System package
    • /usr/share/quickshell/dms

Compositor

  • [ok] niri: 26.04
    • /usr/bin/niri
  • [info] Active: niri
  • [ok] Background Blur: Supported
    • Compositor supports ext-background-effect-v1

Quickshell Features

  • [ok] Polkit: Available
    • Authentication prompts
  • [ok] IdleMonitor: Available
    • Idle detection
  • [ok] IdleInhibitor: Available
    • Prevent idle/sleep
  • [ok] ShortcutInhibitor: Available
    • Allow shortcut management (niri)
  • [ok] BackgroundBlur: Available
    • Background blur API support in Quickshell

Optional Features

  • [ok] accountsservice: Available
    • User accounts
  • [ok] power-profiles-daemon: Available
    • Power profile management
  • [ok] logind: Available
    • Session management
  • [ok] cups-pk-helper: Available
    • Printer management
  • [info] I2C/DDC: No monitors detected
    • External monitor brightness control
  • [ok] qt6-imageformats: Installed (1 formats)
    • Formats: GIF (/usr/lib/qt6/plugins/imageformats:/usr/lib64/qt6/plugins/imageformats)
  • [ok] kimageformats: Installed (4 formats)
    • Formats: AVIF, HEIF, JXL, EXR (/usr/lib/qt6/plugins/imageformats:/usr/lib64/qt6/plugins/imageformats)
  • [ok] Terminal: kitty, alacritty
  • [ok] Network: NetworkManager
    • NetworkManager present. Using NM API.
  • [ok] matugen: Installed
    • Dynamic theming
  • [ok] dgop: Installed
    • System monitoring
  • [ok] cava: Installed
    • Audio visualizer
  • [ok] khal: Installed
    • Calendar events
  • [ok] danksearch: Installed
    • File search
  • [info] fprintd: Not installed
    • Fingerprint auth

Config Files

  • [ok] settings.json: Present
    • /home/pizzacom/.config/DankMaterialShell/settings.json
  • [info] clsettings.json: Not yet created
    • /home/pizzacom/.config/DankMaterialShell/clsettings.json
  • [ok] plugin_settings.json: Present
    • /home/pizzacom/.config/DankMaterialShell/plugin_settings.json
  • [ok] session.json: Present
    • /home/pizzacom/.local/state/DankMaterialShell/session.json
  • [ok] dms-colors.json: Present
    • /home/pizzacom/.cache/DankMaterialShell/dms-colors.json

Services

  • [ok] dms.service: enabled, active
  • [ok] greetd: enabled

Environment

  • [info] QT_QPA_PLATFORMTHEME: Not set
  • [info] QS_ICON_THEME: Not set

Summary: 0 error(s), 0 warning(s), 34 ok

Description

On a German keyboard (QWERTZ layout), pressing Super/Mod + '+' in the settings application is recorded as Mod+Equal, which corresponds to the physical key position of '=' on a US layout. The compositor/Niri itself correctly uses the German keyboard layout, so the recorded shortcut does not work as intended.

When I manually edit the config and change the binding from Equal to Plus, the shortcut works correctly. This suggests that either the settings tool does not properly respect non‑US keyboard layouts when capturing keybindings, or that support for multiple keyboard layouts in the settings tool is incomplete or missing.

Actual behavior:
Pressing Super/Mod + '+' is recorded as Mod+Equal in the settings UI.
The resulting shortcut does not work with the active German layout.
Manually changing it to Plus in the config fixes the shortcut.

Additional information:
Keyboard layout: German (QWERTZ)
Locale: de_DE.UTF-8
System keyboard layout is set to de, the compositor/Niri also uses the German layout.

Expected Behavior

The settings tool should record Super/Mod + '+' on a German QWERTZ keyboard as Mod+Plus (or as the keysym that matches the active layout), so that the resulting shortcut works without manual changes to the config file.

Steps to Reproduce

  1. Use a system with German (QWERTZ) keyboard layout and de_DE.UTF-8 locale, with DankLinux/Niri as compositor.

  2. Open the settings application and go to the keyboard shortcuts/keybindings section.

  3. Try to assign a new shortcut using Super/Mod + '+' on the German keyboard.

  4. Observe that the settings UI records the shortcut as Mod+Equal instead of Mod+Plus.

  5. Apply/save the shortcut and try to use it in the running session.

  6. Observe that the shortcut does not work with the active German layout.

  7. Manually edit the config file, change the binding from Equal to Plus, reload/restart the compositor.

  8. Observe that the same key combination now works correctly.

Error Messages/Logs

No response

Screenshots/Recordings

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions