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

Keyboard Manager bug #19787

Closed
1 task done
ujex256 opened this issue Aug 5, 2022 · 4 comments
Closed
1 task done

Keyboard Manager bug #19787

ujex256 opened this issue Aug 5, 2022 · 4 comments
Labels
Issue-Bug Something isn't working Product-Keyboard Shortcut Manager Issues regarding Keyboard Shortcut Manager

Comments

@ujex256
Copy link

ujex256 commented Aug 5, 2022

Microsoft PowerToys version

"0.61.1"

Running as admin

  • Yes

Area(s) with issue?

Keyboard Manager

Steps to reproduce

PowerToysReport_2022-08-05-22-41-36.zip
After remapping VK 240 to the Ctrl key in Keyboard Manager, pressing VK 240 (Caps Lock) always presses the Ctrl key. (This is using a translation, so there may be some unnatural parts).

✔️ Expected Behavior

Replaced by Ctrl key

❌ Actual Behavior

Ctrl key is always pressed.

Other Software

No response

@ujex256 ujex256 added Issue-Bug Something isn't working Needs-Triage For issues raised to be triaged and prioritized by internal Microsoft teams labels Aug 5, 2022
@Jay-o-Way Jay-o-Way added the Product-Keyboard Shortcut Manager Issues regarding Keyboard Shortcut Manager label Aug 5, 2022
@Jay-o-Way
Copy link
Collaborator

Jay-o-Way commented Aug 5, 2022

Not the expert here, but I was looking at https://docs.microsoft.com/windows/win32/inputdev/virtual-key-codes and there 0x14 (or 20 in decimal) equals CAPS LOCK key... Where and why did you get "VK 240"?

@ujex256
Copy link
Author

ujex256 commented Aug 5, 2022

Not the expert here, but I was looking at https://docs.microsoft.com/windows/win32/inputdev/virtual-key-codes and there 0x14 (or 20 in decimal) equals CAPS LOCK key... Where and why did you get "VK 240"?

I am Japanese and use a Japanese keyboard. I don't know if this has anything to do with it, but when I press the CapsLock key, it is recognized as VK 240.

@BlastBeated
Copy link

BlastBeated commented Aug 11, 2022

これとほぼ一緒。

same.

#3397

結論から言うと、osの論理キーボードがjis環境下では、"a"キー左隣の英数/capslockキーをctrlにremapする方法は、現在のpowertoysで期待通りに動作させることは不可能です。

バグではなく日本語imeの挙動が問題なのです。powertoysは正常に動作しています。

解決方法はレジストリを書き換えることが1番簡単です。

os側の論理キーボードがjisの場合のみ発生します。(主にkbd106.dll)

この問題は定期的に報告されているけど、既知かつ誰も修正できていない。2年以上前から。私もかつて修正にトライしたけど、日本語imeモジュールの複雑怪奇な挙動のせいで諦めました。

物理キーボードではなく、os側で指定している論理キーボードドライバーがkbd106.dllが日本語windowsのデフォルトだと思う。確認方法は"p"キーの一つ右横のキーを押して"@"が出力される。

この場合、刻印にはcapslockと書いてあるが、このキーはcapslockのvkを発生させない。英数キーだ。英数キーとは日本語jisドライバに存在するvkで、キーボードのスキャンコードは同じだが、os側での解釈が違いvk240と理解する。

もしjisキーボードでcapslockと同一のvkを発生させたい場合は、shift + 英数キー、でcapslockのvkを発生させれる。

@Jay-o-Way Jay-o-Way removed the Needs-Triage For issues raised to be triaged and prioritized by internal Microsoft teams label Aug 11, 2022
@ujex256
Copy link
Author

ujex256 commented Aug 15, 2022

なるほど、よくわかりました。色々複雑で修正は難しいのですね。ありがとうございました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Bug Something isn't working Product-Keyboard Shortcut Manager Issues regarding Keyboard Shortcut Manager
Projects
None yet
Development

No branches or pull requests

3 participants