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.