-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Default bound key combinations are not working as expected on international keyboard layouts #7539
Comments
It appears there are at least two conflicting visions of what MS terminal should be. One camp seems to be about making it something new and fixing historical issues (accepting that all of the world don't use English keyboards for instance). The other is about supporting the historical features of VT100+ that are widely used in the Linux world still. These are unlikely to be reconciled with a single configuration. For instance the VT* keyboard has to have separate key handlings, regardless of the desires consistency or non-English keyboards. So it seems there needs to be a VT100/200/etc mode , Xterm , and maybe a "MSTerm (ugh?)" mode which is targeted for non-terminal emulated applications. |
@lhecker you might be interested in this one.
Yeah... you're definitely struck at the heart of the issue. As an aside: sorry -- this fell out of our triage queue and we just found it again. I apologize! |
@lhecker remove the triage tag if you agree with the characterization and the milestone being set to 2.0, ok? |
@DHowett I believe setting it as a goal for v2.0 is a good idea and I'll gladly tackle it. We need to introduce Now instead of binding zoom in/out to |
This commit is a preparation for upcoming changes to KeyChordSerialization for #7539 and #10203. In order to support variadic macros, /Zc:preprocessor was enabled, which required changing unrelated parts of the project. ## PR Checklist * [x] I work here * [x] Tests added/passed ## Validation Steps Performed * Project still compiles ✔️
This commit is a preparation for upcoming changes to KeyChordSerialization for #7539 and #10203. It introduces several string helpers to simplify key chord parsing and get rid of our implicit dependency on locale sensitive functions, which are known to behave erratically. Additionally key chord serialization used to depend on iteration order of a hashmap which caused different strings to be returned for the same key chord. This commit fixes the iteration order and will always return the same string. ## Validation Steps Performed * Key bindings are correctly parsed ✔️ * Key bindings are correctly serialized ❔
This commit introduces an alternative to specifying key bindings as a combination of key modifiers and a character. It allows you to specify an explicit virtual key as `vk(nnn)`. Additionally this commit makes it possible to bind actions to scan codes. As scan code 41 appears to be the button below the Escape key on virtually all keyboards, we'll be able to bind the quake mode hotkey to `win+sc(41)` and have it work consistently across most if not all keyboard layouts. ## PR Checklist * [x] Closes #7539, Closes #10203 * [x] I work here * [x] Tests added/passed ## Validation Steps Performed The following was tested both on US and DE keyboard layouts: * Ctrl+, opens settings ✔️ * Win+` opens quake mode window ✔️ * Ctrl+plus/minus increase/decrease font size ✔️
This commit introduces an alternative to specifying key bindings as a combination of key modifiers and a character. It allows you to specify an explicit virtual key as `vk(nnn)`. Additionally this commit makes it possible to bind actions to scan codes. As scan code 41 appears to be the button below the Escape key on virtually all keyboards, we'll be able to bind the quake mode hotkey to `win+sc(41)` and have it work consistently across most if not all keyboard layouts. ## PR Checklist * [x] Closes microsoft#7539, Closes microsoft#10203 * [x] I work here * [x] Tests added/passed ## Validation Steps Performed The following was tested both on US and DE keyboard layouts: * Ctrl+, opens settings ✔️ * Win+` opens quake mode window ✔️ * Ctrl+plus/minus increase/decrease font size ✔️
This commit is a preparation for upcoming changes to KeyChordSerialization for #7539 and #10203. In order to support variadic macros, /Zc:preprocessor was enabled, which required changing unrelated parts of the project. * [x] I work here * [x] Tests added/passed * Project still compiles ✔️ (cherry picked from commit 32fbd4c)
🎉This issue was addressed in #10666, which has now been successfully released as Handy links: |
Environment
Steps to reproduce
invoke the Font Size Increase command ctrl+= on a Swedish keyboard layout.
(hint: that would be ctrl+shift+0)
Expected behaviour
Font size increases one step.
Actual behaviour
Nothing happens.
Reflections
The new Command Palette (that I am already a huge fan of, despite it's flaws) insists that Increase Font Size is bound to ctrl+shift+0 (bonus bug?)
Referring to the Modifier keys section in http://docs.microsoft.com/en-us/windows/terminal/customize-settings/key-bindings#key-binding-properties it appears that all the characters that are shift:ed on an American keyboard layout are invalid bindings. This theory is also widely supported by the fact that Windows Terminal binds ctrl+shift+numeral to newTab and ctrl+alt+numeral to switchToTab.
International keyboards often move the special characters around on the keyboard. (In the case with the Swedish keyboard layout, to fit in the three extra vowels in our 29 letter alphabet.)
It appears that the problem is how Terminal deals with characters that are bound to the numeric keys.
The text was updated successfully, but these errors were encountered: