Skip to content

XKB layout switching does not trigger IPC kb_layout event #472

@FarokhRaad

Description

@FarokhRaad

Info

mango version:

mango 0.10.6 (b3ccf43)

wlroots version:

wlroots0.19 0.19.2-1 (Arch Linux package)

Crash track

Not applicable.
This issue does not involve a crash and is fully reproducible without ASAN instrumentation.

Description

When switching keyboard layouts using the XKB shortcut (Alt+Shift with the option grp:alt_shift_toggle), the system keyboard layout changes correctly, but MangoWC does not emit any IPC update indicating the changed layout.

External environment components that rely on DWL IPC (such as DankMaterialShell / DMS) do not receive notification of the change unless the layout switch is performed programmatically.

Observed behavior

Method of switching layout System layout changes IPC layout event emitted External UI updates
Alt+Shift (XKB shortcut) Yes No No (unless refreshed manually)
mmsg -d switch_keyboard_layout Yes Yes Yes
Mango bind (bind=none,XF86HomePage,switch_keyboard_layout) Yes Yes Yes

Verification with mmsg -w -k

To inspect MangoWC IPC output, I ran:

mmsg -w -k

Output when using mmsg -d switch_keyboard_layout or Mango keybind:

eDP-1 kb_layout us
HDMI-A-1 kb_layout us
DP-2 kb_layout us
eDP-1 kb_layout ir
HDMI-A-1 kb_layout ir
DP-2 kb_layout ir

Output when using Alt+Shift XKB shortcut:

  • No kb_layout output
  • No IPC messages at all related to the layout change

However, the keyboard layout itself does change and typing reflects the new layout, confirming the change happens internally but is not published via IPC.

Expected behavior

MangoWC should emit a keyboard layout update IPC event whenever the layout changes, regardless of whether the change is triggered via:

  • XKB shortcut
  • Mango keybind
  • external IPC command
  • UI or tool invoking switch_keyboard_layout

This would allow environment layers such as bars or shells to remain in sync with actual input state.

Summary

  • Layout switching via XKB works internally.
  • MangoWC currently emits IPC layout events only when the switch_keyboard_layout command path is used.
  • XKB-driven layout changes do not emit IPC events.
  • This leads to external shells being unable to track layout changes triggered through compositor shortcuts.

If MangoWC is intended to publish keyboard layout changes over DWL IPC for all input sources, this may be a missing implementation path.

If not yet implemented, this issue may function as a feature request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions