#1505·wslg

Copilot Keyboard (Japanese IME) causes WSLg native Wayland apps to switch JP keyboard layout to US

Author: yontaCreated Sep 8, 2026Updated Sep 8, 2026
Labelsbug

I am using Copilot Keyboard as a Japanese IME on Windows 11.

The problem occurs with native Wayland applications under WSLg. I originally noticed it in a PGTK build of GNU Emacs.

This appears closely related to #1111, which reports the same JP-to-US keyboard layout behavior when using Google Japanese Input.

Windows build number:

26200.9168

Your Distribution version:

26.04

Your WSL versions:

WSL バージョン: 2.7.13.0 カーネル バージョン: 6.18.33.2-2 WSLg バージョン: 1.0.73.2 MSRDC バージョン: 1.2.7214 Direct3D バージョン: 1.611.1-81528511 DXCore バージョン: 10.0.26100.1-240331-1435.ge-release Windows バージョン: 10.0.26200.9168

Kernel: Linux XXXX 6.18.33.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 18 21:54:43 UTC 2026 x86_64 GNU/Linux

Steps to reproduce:

  1. Configure Windows to use a Japanese keyboard layout.
  2. Start WSL/WSLg.
  3. Launch a native Wayland GUI application in WSLg. I reproduced this with GNU Emacs PGTK.
  4. Select Microsoft IME on Windows.
  5. Press Shift+; in the WSLg application.
    • + is entered, as expected for a Japanese keyboard layout.
  6. Switch the Windows input method to Copilot Keyboard.
  7. Press Shift+; again in the same WSLg application.
    • : is entered instead, as if the keyboard layout were US.
  8. Check /mnt/wslg/weston.log.

Other Environment

Copilot Keyboard version: 1.0.0.11040

Other thing

Before switching to Copilot Keyboard, WSLg correctly detects the Japanese layout:

convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 layout=jp variant=(null) options=(null)

After switching to Copilot Keyboard, the following is logged:

Client: LanguageImeInfo: ProfileType: 1 (TF_PROFILETYPE_INPUTPROCESSOR)
Client: LanguageImeInfo: LanguageID: 0x411
Client: LanguageImeInfo: LanguageProfileCLSID: Unknown GUID : d4e1a2b3-5f6c-4d7e-8a9b-0c1d2e3f4a5b
Client: LanguageImeInfo: ProfileGUID: Unknown GUID : a1b2c3d4-e5f6-7890-1234-56789abcdef0
Client: LanguageImeInfo: KeyboardLayout: 0x0
convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 layout=us variant=(null) options=(null)
rail_client_LanguageImeInfo_callback: new keyboard layout: 0x409

Although LanguageID is Japanese (0x411), WSLg does not appear to recognize the Copilot Keyboard input processor/profile and changes the keyboard layout to US (0x409).

Switching back to Microsoft IME immediately restores the correct Japanese keyboard layout.

I also confirmed that this specifically affects the Wayland keyboard map:

  • setxkbmap -layout jp fixes the layout for XWayland applications.
  • It does not affect native Wayland applications such as PGTK Emacs.
  • I tried adding the following to /home/wslg/.config/weston.ini:
ini
[keyboard]
keymap_model=pc105
keymap_layout=jp

However, this is not a persistent workaround. The WSLg system distro regenerates weston.ini, and the runtime LanguageImeInfo event from Copilot Keyboard can switch the layout back to US.

WSL logs:

Relevant excerpt from /mnt/wslg/weston.log:

[13:24:35.826] convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 layout=jp variant=(null) options=(null)
[13:25:40.646] Client: LanguageImeInfo: ProfileType: 1 (TF_PROFILETYPE_INPUTPROCESSOR)
[13:25:40.646] Client: LanguageImeInfo: LanguageID: 0x411
[13:25:40.646] Client: LanguageImeInfo: LanguageProfileCLSID: Unknown GUID : d4e1a2b3-5f6c-4d7e-8a9b-0c1d2e3f4a5b
[13:25:40.646] Client: LanguageImeInfo: ProfileGUID: Unknown GUID : a1b2c3d4-e5f6-7890-1234-56789abcdef0
[13:25:40.646] Client: LanguageImeInfo: KeyboardLayout: 0x0
[13:25:40.646] convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 layout=us variant=(null) options=(null)
[13:25:40.649] rail_client_LanguageImeInfo_callback: new keyboard layout: 0x409

I can provide the complete WSL logs if needed.

Additional Notes

This seems closely related to #1111.

It would also be useful if something like #1046 were available as a persistent fallback mechanism. New IMEs/input processors can appear before WSLg has an explicit mapping for their profiles, as appears to be happening with Copilot Keyboard here. Allowing users to specify a persistent fallback XKB layout such as jp through .wslgconfig would provide a useful workaround for current and future IMEs whose profile IDs are not yet known to WSLg.

Ideally, Copilot Keyboard itself should of course be recognized correctly, but having a user-configurable fallback would make WSLg more robust when new IMEs are introduced.

WSL logs:

pulseaudio.log stderr.log weston.log

WSL dumps:

No response

Expected behavior:

Copilot Keyboard is a Japanese IME, so selecting it should keep the WSLg keyboard layout as Japanese.

For example, on a Japanese keyboard:

Shift+; -> +

WSLg should continue using layout=jp, just as it does when Microsoft IME is selected.

Actual behavior:

When Copilot Keyboard is selected, WSLg recognizes its TSF input processor/profile as unknown and changes the keyboard layout from Japanese to US:

layout=jp
...
LanguageID: 0x411
LanguageProfileCLSID: Unknown GUID
ProfileGUID: Unknown GUID
KeyboardLayout: 0x0
...
layout=us
new keyboard layout: 0x409

As a result, native Wayland applications receive a US keyboard layout. For example:

Shift+; -> :

Switching from Copilot Keyboard back to Microsoft IME restores the Japanese layout.