The problem
In all Obsidian menus, that provide autocompletion or selection from list (for example: an autocompletion of a [[link]], selection an a file through Cmd
+ o
or a command through Cmd
+ p
) you can use keyboard arrows and also a Control
+ n
and Control
+ p
to move up and down. But actions, that use Control
key is only available when you use a default English keyboard layout.
Steps to reproduce
Behavior on macOS ABC (English default keyboard):
- Open Sandbox valut
- Open command palette via
Cmd
+p
- Execute
Control
+n
shortcut - Execute
Control
+p
shortcut - Here all goes fine: you selected a next command suggestion and then previous one
Behavior on macOS Russian JCUKEN (also default one)
- Open Sandbox valut
- Open command palette via
Cmd
+p
- Execute
Control
+n
shortcut - Nothing happens
- With arrow down select next suggestion (works fine)
- Execute
Control
+p
shortcut - Still nothing happens
Same behavior occurs when you try to move between suggestions in [[link]] autocompletion, but instead of nothing you just got the cursor moving up and down by one line (on Russian keyboard. On English all works as it should be).
Expected result
When you use Control
+ n
and Control
+ p
independently of keyboard layout Obsidian should highlight next and previous suggestion in lists.
Actual result
Navigating through command prompts, links and files only works on the English keyboard layout
Environment
macOS Sequoia 15.5
SYSTEM INFO:
Obsidian version: v1.8.10
Installer version: v1.6.5
Operating system: Darwin Kernel Version 24.5.0: Tue Apr 22 19:54:33 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T8122 24.5.0
Login status: logged in
Language: ru
Catalyst license: none
Insider build toggle: off
Live preview: on
Base theme: adapt to system
Community theme: none
Snippets enabled: 0
Restricted mode: on
RECOMMENDATIONS:
none
Additional information
I tried to reproduce all these steps on a Windows system and realized that the Control + n/p key combination is specific to macOS, while on Windows, when you press this combination, regardless of the selected language, nothing happens at all.
As I initially suggested: the problem was in keyboard event triggers, set up on typed key instead of the real one. Here’s the one thins, that changes between layouts: when you type Control
+ n
on Russian keyboard, you will get Control
+ т
. But this can be fixed with using of Physical key codes, that javascript events can generate.
I ran into this problem because I started using vim mode heavily in Obsidian. My take on it would be really great if Obsidian provided the ability to navigate through completion suggestions using the Control keys, which is common in vim.
I also tried to remap Control
keys with obsidian vimrc plugin, but got nothing.