Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can not switch input languages #296

Open
speller opened this issue Jun 15, 2021 · 25 comments
Open

Can not switch input languages #296

speller opened this issue Jun 15, 2021 · 25 comments
Labels
bug Something isn't working keyboard-layout

Comments

@speller
Copy link

speller commented Jun 15, 2021

Environment

Windows build number: 21390.1010
Your Distribution version: Ubuntu 20.04
Your WSLg version: 1.0.22

I have multiple input languages installed in my system (English and Russian). But in WSL GUI apps, I only have Russian and can't switch to English.

@speller speller added the bug Something isn't working label Jun 15, 2021
@hideyukn88
Copy link
Member

hideyukn88 commented Jun 15, 2021

@speller, thank you for reporting the issues. How do you switch input languages? Do you switch at Windows side? [Figure 1] If so, would you please check /mnt/wslg/weston.log? There should be logging like below and please check LanguageID/KeyboardLayout is 0x419 and matchng layout is "ru" when switch to Russian, and LanguageID/KeyboardLayout is 409 and matching layout is "us" for English. While I don't understand Russian, but as far as I tried, it seems language switch is working by switching language from Language bar at Windows's taskbar. Thanks!

1: When input language is switched to Russian.

[11:18:36.619] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)
[11:18:36.619] Client: LanguageImeInfo: LanguageID: 0x419
[11:18:36.619] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL
[11:18:36.619] Client: LanguageImeInfo: ProfileGUID: GUID_NULL
[11:18:36.619] Client: LanguageImeInfo: KeyboardLayout: 0x419
[11:18:36.619] convert_rdp_keyboard_to_xkb_rule_names: matching layout=ru variant=(null)

2: When input language is switch back to English

[11:18:29.836] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)
[11:18:29.837] Client: LanguageImeInfo: LanguageID: 0x409
[11:18:29.837] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL
[11:18:29.837] Client: LanguageImeInfo: ProfileGUID: GUID_NULL
[11:18:29.837] Client: LanguageImeInfo: KeyboardLayout: 0x409
[11:18:29.837] convert_rdp_keyboard_to_xkb_rule_names: matching layout=us variant=(null)

[Figure 1]
image

@speller
Copy link
Author

speller commented Jun 18, 2021

@hideyukn88 I have no file /mnt/wslg/weston.log:

$ cat /mnt/wslg/weston.log
cat: /mnt/wslg/weston.log: No such file or directory

@onomatopellan
Copy link
Contributor

@speller what's the output for mount | grep -i wslg ?

@thiagoa
Copy link

thiagoa commented Jan 12, 2022

I have the same issue. Within an X11 app (Emacs / gvim), I can't switch my keyboard layout on the fly with Alt + shift. Even if I quit the app and reopen it, it doesn't pick up my alternate keyboard layout if active. It seems to always pick up the first one.

@speller
Copy link
Author

speller commented Jan 13, 2022

what's the output for mount | grep -i wslg ?

$ mount | grep -i wslg
none on /wslg type tmpfs (rw,relatime)
none on /wslg/versions.txt type overlay (rw,relatime,lowerdir=/,upperdir=/system/rw/upper,workdir=/system/rw/work)
none on /wslg/doc type overlay (rw,relatime,lowerdir=/,upperdir=/system/rw/upper,workdir=/system/rw/work)

@hideyukn88
Copy link
Member

@speller, if you don't see /mnt/wslg/weston.log, it's possible weston is not starting, can you share /mnt/wslg/stderr.txt and versions.txt?

@thiagoa, what are the keyboard layouts do you switch from/to?

Thanks!

@onomatopellan
Copy link
Contributor

@speller In your case the file to check should be /wslg/weston.log

@thiagoa
Copy link

thiagoa commented Jan 14, 2022

@hideyukn88

  • US
  • US International (which supports accented characters)

Tested with a standard GTK application, Geany, and the issue remains. I can't input accented characters; the layout behaves as if it were US.

@hideyukn88
Copy link
Member

@thiagoa, thank you very much for info. I will add support for KBD_UNITED_STATES_INTERNATIONAL, it allows input of accented characters with right ALT key. Thanks!

@thiagoa
Copy link

thiagoa commented Jan 15, 2022

@hideyukn88 Thank you for taking on this! I also use the Brazilian ABNT2 layout, which allows accented characters as well and some shortcuts for Brazilian users.

@speller
Copy link
Author

speller commented Jan 18, 2022

I didn't use WSLg for a while and now language switching seems to be working fine for me.

@afilp
Copy link

afilp commented Feb 23, 2022

Hi, I am on Windows 10, with GWSL2. While the keyboard switching works in the terminal (from US to Greek and vice-verca), it does not work in any GUI app, for example in Ubuntu Chrome. I am using ALT-SHIFT.

I do not have any such folder: /mnt/wslg

I have /mnt/wsl and inside it are only docker files.

Is there something I can do?

@onomatopellan
Copy link
Contributor

onomatopellan commented Feb 23, 2022

@afilp This repo is for WSLg users in Windows 11. In your case you are using another solution that is not from Microsoft so you should ask in https://github.com/Opticos/GWSL-Source/issues instead.

@afilp
Copy link

afilp commented Feb 24, 2022

Ok, thanks, unfortunately Microsoft does not allow me to upgrade to Win11, just because of the CPU generation is a little older than the minimum requirement, despite the PC is pretty strong (Dell Alienware, everything works great and fast).

@yeya
Copy link

yeya commented Mar 16, 2022

Hi @hideyukn88
Can you add support for Hebrew too?
Thanks in advance...

Windows build number: 10.0.22000.556
Distribution version: 20.04
WSLg version: 1.0.26

Swith to english

[14:46:56.502] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)
[14:46:56.502] Client: LanguageImeInfo: LanguageID: 0x409
[14:46:56.502] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL
[14:46:56.502] Client: LanguageImeInfo: ProfileGUID: GUID_NULL
[14:46:56.502] Client: LanguageImeInfo: KeyboardLayout: 0x409
[14:46:56.502] convert_rdp_keyboard_to_xkb_rule_names: matching layout=us variant=(null) options=(null)

Switch to Hebrew

[14:47:09.789] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)
[14:47:09.789] Client: LanguageImeInfo: LanguageID: 0x40d
[14:47:09.789] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL
[14:47:09.789] Client: LanguageImeInfo: ProfileGUID: GUID_NULL
[14:47:09.789] Client: LanguageImeInfo: KeyboardLayout: 0x2040d
[14:47:09.789] convert_rdp_keyboard_to_xkb_rule_names: matching layout=(null) variant=(null) options=(null)
[14:47:09.789] rail_client_LanguageImeInfo_callback: Failed to switch to kbd_layout:0x2040d kbd_type:0x4 kbd_subType:0x0

@RiccardoManzan
Copy link

Hi, could you add support for United States-International (INTL)?
Corresponding ubuntu keyboard is English(US) - English(US, intl., with dead keys)

Switching to this layout i get this logs:

[14:27:38.546] Client: ClientGetAppidReq: pid:28722 appId:jetbrains-idea
[14:27:38.573] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)
[14:27:38.573] Client: LanguageImeInfo: LanguageID: 0x409
[14:27:38.580] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL
[14:27:38.580] Client: LanguageImeInfo: ProfileGUID: GUID_NULL
[14:27:38.580] Client: LanguageImeInfo: KeyboardLayout: 0x20409
[14:27:38.580] convert_rdp_keyboard_to_xkb_rule_names: matching layout=(null) variant=(null) options=(null)
[14:27:38.580] rail_client_LanguageImeInfo_callback: Failed to switch to kbd_layout:0x20409 kbd_type:0x4 kbd_subType:0x0

@hideyukn88
Copy link
Member

@RiccardoManzan, the US international keyboard is supported by microsoft/weston-mirror#57, please update WSL from aka.ms/wslstorepage and try again, thanks!

@RiccardoManzan
Copy link

Hi, i didn't installed WSL via ms store, so i tried updating WSL using wsl.exe --upgrade obtaining this output:

Checking for updates...
No updates are available.
Kernel version: 5.10.102.1

Am i missing something?
I am still not able to switch between italian layout and us-intl

Thanks for your help.

@hideyukn88
Copy link
Member

@RiccardoManzan, you need to one time manual update from aka.ms/wslstorepage, then newer version of wsl.exe will check update from Store. There is a plan to update Windows's version of wsl.exe with Store version of wsl.exe, but it hasn't been released to public yet. If you are on Windows's insider program, then your wsl.exe should check update from Store, thanks!

@ParSal123
Copy link

Hi @hideyukn88
Can you add support for Persian too?

Windows version : 21H2 Build 22000.978
Also I don't know where to see wsl/wslg version. When I try wsl --version it shows help as if command is invalid.

Switching to Persian:

[11:35:29.676] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)                                                                                                                          
[11:35:29.676] Client: LanguageImeInfo: LanguageID: 0x429                                                                                                                                                       
[11:35:29.676] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL                                                                                                                                         
[11:35:29.676] Client: LanguageImeInfo: ProfileGUID: GUID_NULL                                                                                                                                                  
[11:35:29.676] Client: LanguageImeInfo: KeyboardLayout: 0x50429                                                                                                                                                 
[11:35:29.676] convert_rdp_keyboard_to_xkb_rule_names: matching layout=(null) variant=(null) options=(null)                                                                                                    
[11:35:29.676] rail_client_LanguageImeInfo_callback: Failed to switch to kbd_layout:0x50429 kbd_type:0x4 kbd_subType:0x0

And just out of curiosity, does it have to be an issue/comment per language support or is there any other way?:D
Thank you

@hideyukn88
Copy link
Member

@ParSal123, Persian keyboard layout is supported by microsoft/weston-mirror#32, and it looks you are on very older version of WSL/WSLg, please update it from aka.ms/wslstorepage, thanks!

@mehdi-benallegue
Copy link

mehdi-benallegue commented Oct 19, 2022

Hello,

This is my feedback when I switch to Japanese Latin Keyboard (Microsoft IME)

[09:13:46.185] Client: LanguageImeInfo: ProfileType: 1 (TF_PROFILETYPE_INPUTPROCESSOR)
[09:13:46.185] Client: LanguageImeInfo: LanguageID: 0x411
[09:13:46.185] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_JPNIME
[09:13:46.185] Client: LanguageImeInfo: ProfileGUID: GUID_PROFILE_MSIME_JPN
[09:13:46.185] Client: LanguageImeInfo: KeyboardLayout: 0x0
[09:13:46.185] convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 layout=us variant=(null) options=(null)

The layout should be like this one
image

I don't want to write Japanese letters, I just need to write in latin with this layout (for example SHiFT+6 gives & instead of ^).

related to #658

Thank you

@a-sorochak
Copy link

a-sorochak commented Mar 5, 2023

I have the same issue when trying to use Ukrainian keyboard layout in WSLg apps. Could you please add it?

Entry in /mnt/wslg/weston.log:

[21:33:40.966] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)
[21:33:40.967] Client: LanguageImeInfo: LanguageID: 0x422
[21:33:40.967] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL
[21:33:40.967] Client: LanguageImeInfo: ProfileGUID: GUID_NULL
[21:33:40.967] Client: LanguageImeInfo: KeyboardLayout: 0x20422
[21:33:40.967] convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 layout=(null) variant=(null) options=(null)
[21:33:40.967] rail_client_LanguageImeInfo_callback: Failed to switch to kbd_layout:0x20422 kbd_type:0x4 kbd_subType:0x0

WSL version:

WSL version: 1.1.3.0
Kernel version: 5.15.90.1
WSLg version: 1.0.49
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.19044.2364

@pustomytnyk
Copy link

pustomytnyk commented Jun 27, 2023

Same as above, Ukrainian (Enhanced) Layout doesn't work in GUI apps. Default one works fine.

Ukrainian (Enhanced) Layout:

[22:27:03.373] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)
[22:27:03.373] Client: LanguageImeInfo: LanguageID: 0x422
[22:27:03.373] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL
[22:27:03.373] Client: LanguageImeInfo: ProfileGUID: GUID_NULL
[22:27:03.373] Client: LanguageImeInfo: KeyboardLayout: 0x20422
[22:27:03.373] convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 layout=us variant=(null) options=(null)
[22:27:03.375] rail_client_LanguageImeInfo_callback: new keyboard layout: 0x20422

I prefer UkrainianUnicode layout which outputs this:

[22:21:05.478] Client: LanguageImeInfo: ProfileType: 2 (TF_PROFILETYPE_KEYBOARDLAYOUT)
[22:21:05.478] Client: LanguageImeInfo: LanguageID: 0x422
[22:21:05.478] Client: LanguageImeInfo: LanguageProfileCLSID: GUID_NULL
[22:21:05.478] Client: LanguageImeInfo: ProfileGUID: GUID_NULL
[22:21:05.478] Client: LanguageImeInfo: KeyboardLayout: 0xa0000422
[22:21:05.478] convert_rdp_keyboard_to_xkb_rule_names: matching model=pc105 layout=us variant=(null) options=(null)
[22:21:05.490] rail_client_LanguageImeInfo_callback: new keyboard layout: 0xa0000422

@pustomytnyk
Copy link

@hideyukn88 does my PR make sense?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working keyboard-layout
Projects
None yet
Development

No branches or pull requests