atom/atom-keymap

[win 10] russian keyboard layout: inconvenient dot-keybinding

Closed this issue · 5 comments

yalov commented

russian_and_english_keyboard_layout.png

If there is active russian keyboard layout, key binding resolver shows english key:
иb
тn
ьm
б,
ю.

But last right key at bottom row (/? .,) uses russian layout:
..
instead of:
./

For example, you want to comment out something, using Ctrl+/, and you didn't notice, that your active layout is russian. At that case, Ctrl+/ is turning to Ctrl + . (hotkey for keybinding resolver)
So, instead of commenting out some code, you see keybinding resolver shows up.

cc @ungb and and @Ben3eeE for help getting some clarification about what's going on here.

@nathansobo in #151 you changed it so that non-latin characters converts to their US equivalent, which is great in for example russian layouts where users seem to expect this.

The proposed change here is to do the same for symbols because when changing between russian and english layouts the symbols change position. So the required keystrokes to type for example Ctrl-/ moves to another physical position on the keyboard because of the layout change when typing in the different languages.

@yalov Is this how other applications handle the Russian layout? Do they always fall back to the U.S. layout equivalent key for every key on the keyboard when matching bindings?

yalov commented

@nathansobo Yes, I think so.
Sublime Text falls back to the U.S. layout equivalent key for Ctrl + / hotkey.

Thanks for the report. I'm taking a strategy of detecting non-Latin keyboards by looking at the keycap for the first 4 letters of the home row. If any of these keys are non-Latin, then I fall back to the U.S. layout for modified keystrokes for the entire layout, even if particular symbols fall in the latin range.