-
Notifications
You must be signed in to change notification settings - Fork 62
Description
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 -kOutput 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_layoutoutput - 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_layoutcommand 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.