Some hotkeys not working when non-latin keyboard layout

Steps to reproduce

I’ve found, that some hotkeys doesn’t work when current keyboard layout is not-latin. The only such hotkey out of the box in obsidian is Alt+L. There are some other hotkeys in third party plugins like Templater and Excalidraw.

The common for all problem hotkeys is that, the hotkey letter is set in lowercase. I’ve try to correct hotkeys in plugins sources to uppercase, and they start to work in non-english layout.
I can rebind such keys by hand or create issues for all affected plugins, but it seems better that Obsidian can convert all alpha keys to UpperCase when registering hotkeys for commands.

I’ve created dataview query to show such bad hotkeys for Templater and Excalidraw only:

Command Name Hotkeys
editor:toggle-checklist-status Toggle checkbox status CMD l
obsidian-excalidraw-plugin:insert-link Excalidraw: Insert link to file CMD SHIFT k
obsidian-excalidraw-plugin:save Excalidraw: Save (will also update transclusions) CTRL s
templater-obsidian:replace-in-file-templater Templater: Replace templates in the active file OPT r

Did you follow the troubleshooting guide? [Y/N]

Yes

Expected result

Hotkeys must work in all layouts.

Actual result

Some PREDEFINED hotkeys are work only in english-layout.

Environment

SYSTEM INFO:
Obsidian version: v1.7.4
Installer version: v1.7.4
Operating system: Windows 11 Pro for Workstations 10.0.22631
Login status: not logged in
Language: en
Insider build toggle: off
Live preview: on
Base theme: adapt to system
Community theme: none
Snippets enabled: 0
Restricted mode: off
Plugins installed: 37
Plugins enabled: 3
1: Dataview v0.5.67
2: Templater v2.9.1
3: Excalidraw v2.6.2

RECOMMENDATIONS:
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

At one point I was told this is “too niche of a case to take into consideration”.

The issue still persists, where a hotkey setup for “CTRL+D” works for both the “CTRL+D” combination & “CTRL+C”, just because the layout has the “D” key in different place when CTRL is held.

This seems to be happening, because Obsidian is accepting both the scan codes (CTRL+D) & tries to make its own interpretation based on received “characters” (CTRL & D).

I believe only one input should be accepted (the scan codes).

The too niche was related to colemak-dh.

This is a very complex issue and we are limited by what the web apis provide in terms of keypresses. Over time, we have tried different approaches to this problem and we landed on the current solution that works for most people with the caveat described here.

@Alezy which keyboard layout are you using exactly?

I personally use shifted and non-shifted hot keys. I would be pretty sad if your suggestion to force all alpha characters to upper case broke the ability for me to define separate bindings like CTRL+e and CTRL+SHIFT+e.

Russian keyboard layout

No. Modifier keys are separated from alpha keys. Shift is modifier. But I detect, that hotkeys, registered with lower alpha key lead to issues on Russian layout. There are some similar topics in this forum.

I’m running into this issue on windows 11. I use the colemak mod-dh layout.

On all of my computers I use a usb keyboard that has the layout built in to the firmware of the board, so my computer can be qwerty but my keyboard is colemak-dh. On my macbook when I want to use the keyboard built in to the laptop, i have a colemak dh layout i can easily switch to. Control based hotkeys in this layout work fine in obsidian.

However, on my windows 11 laptop I was not able to find a layout for windows that worked natively on the laptop’s keyboard, so I created my own colemak-dh layout using Keyboard Layout Creator 1.4. With this combination of layouts and OS, I am not able to use control based hotkeys in obsidian. It is particularly annoying with ctrl+o, which opens the file explorer in obsidian. I have to press the qwerty position of o. Same for all the other keys that aren’t the same as qwerty in colemak-dh.

I should also note that this is only the case in obsidian. All other applications i use recognize the correct key presses when holding control.