I am using Croatian keyboard layout (HR) and noticed the Ctrl+/ shortcut (Track Corner Mode) doesn’t work. Then I tried to define some hotkeys and when I enter Ctrl+I the error is:
'Ctrl+Tab' is a reserved hotkey in KiCad and cannot be assigned.
Seems as the only way to make hotkeys that use Ctrl key working is by changing the keyboard layout from HR to ENG.
Application: KiCad PCB Editor (64-bit)
Version: (6.0.11), release build
Libraries:
wxWidgets 3.2.1
libcurl/7.83.1-DEV Schannel zlib/1.2.13
Platform: Windows 10 (build 19045), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
Date: Jan 26 2023 07:02:30
wxWidgets: 3.2.1 (wchar_t,wx containers)
Boost: 1.80.0
OCC: 7.6.2
Curl: 7.83.1-DEV
ngspice: 38
Compiler: Visual C++ 1934 without C++ ABI
Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON
So the situation is “as expected” I though there is something that could be done to make the shortcuts work even when using non ENG keyboard.
I could enable “per application window” keyboard layout in Windows and then change the keyboard layout from HR to ENG for KiCad only but I usually want to change the keyboard layout for all windows in use.
I know it is not easy to make shortcuts working with different keyboard layouts but I wouldn’t expect there would be a problem with key combination such as Ctrl+i because I is just a normal key accessed without key modifiers. I understand why / (which is Shift+7 on my keyboard) or similar shortcut might not work but I have no idea why Ctrl+i would be interpreted as Ctrl+TAB.
Visual Studio Code has shortcuts which does not depend on keyboard layout in use, it would be nice if something similar could be added to KiCad:
Keyboard layout-independent bindings
Using scan codes, it is possible to define keybindings which do not change with the change of the keyboard layout. For example:
I cetainly can assign tab as a hotkey. In the PCB editor this is assigned to skip. Normally one doesn’t type Ctrl-I (tab), just as one normally doesn’t type Ctrl-M (return) since they are already one key characters. However you are right that Ctrl-M can be assigned so why not Ctrl-I?
Ctrl+H and Backspace are the same codes too but Backspace key and Ctrl+H could in KiCad still be used as two different hotkeys. Ctrl+I works as a shortcut for Italic in many editors (and even here in this very form) but it doesn’t work in KiCad.