Can't bind backtick with Colemak keyboard layout #14671

Closed
opened 2026-01-31 04:16:30 +00:00 by claunia · 6 comments
Owner

Originally created by @Vynce on GitHub (Jul 23, 2021).

Windows Terminal version (or Windows build number)

1.9.1942.0

Other Software

https://colemak.com/Windows

Steps to reproduce

  1. Install the Colemak keyboard layout and set it active.
  2. Add a key binding like this:
    { "command": { "action": "globalSummon", "monitor": "any", "toggleVisibility": false }, "keys": "ctrl+`" }
  3. The Terminal settings GUI sees that as ctrl+alt+r (and pressing that key combo does make the Terminal window active):
    image
  4. Switch to the US English keyboard layout.
  5. Restart Terminal.
  6. The settings GUI now sees the backtick key combos correctly (and pressing ctrl+` makes the Terminal window active):
    image
  7. Switch the keyboard layout back to Colemak.
  8. Pressing ctrl+` continues to activate the Terminal window until Terminal is restarted.

Expected Behavior

Backtick key bindings should function as backtick key bindings.

Actual Behavior

Backtick key bindings get redefined to some combination of ctrl+alt+r.

Originally created by @Vynce on GitHub (Jul 23, 2021). ### Windows Terminal version (or Windows build number) 1.9.1942.0 ### Other Software https://colemak.com/Windows ### Steps to reproduce 1. Install the Colemak keyboard layout and set it active. 2. Add a key binding like this: ``{ "command": { "action": "globalSummon", "monitor": "any", "toggleVisibility": false }, "keys": "ctrl+`" }`` 3. The Terminal settings GUI sees that as `ctrl+alt+r` (and pressing that key combo does make the Terminal window active): <kbd>![image](https://user-images.githubusercontent.com/377567/126843559-4a9f9e39-e360-4677-a3fc-7e6f7dda41ed.png)</kbd> 4. Switch to the US English keyboard layout. 5. Restart Terminal. 6. The settings GUI now sees the backtick key combos correctly (and pressing `` ctrl+` `` makes the Terminal window active): <kbd>![image](https://user-images.githubusercontent.com/377567/126843955-993e1917-bc04-41c7-ac26-07eaee49dbac.png)</kbd> 7. Switch the keyboard layout back to Colemak. 8. Pressing `` ctrl+` `` continues to activate the Terminal window until Terminal is restarted. ### Expected Behavior Backtick key bindings should function as backtick key bindings. ### Actual Behavior Backtick key bindings get redefined to some combination of `ctrl+alt+r`.
claunia added the Resolution-DuplicateProduct-Terminal labels 2026-01-31 04:16:30 +00:00
Author
Owner

@skyline75489 commented on GitHub (Jul 26, 2021):

/cc @lhecker

@skyline75489 commented on GitHub (Jul 26, 2021): /cc @lhecker
Author
Owner

@lhecker commented on GitHub (Jul 27, 2021):

We use MapVirtualKeyW to map characters like ` to virtual keys, which are then used to create key bindinggs. This mapping generally isn't accurate, but there's no other "good way" to map characters to virtual keys except using MapVirtualKeyW.

I tried solving this issue in https://github.com/microsoft/terminal/pull/10666, which will be released in a future update. It'll redefine the quake mode hotkey to be win+sc(41), which will allow it to work independent of keyboard layout.

But despite this we still have the issue described in https://github.com/microsoft/terminal/issues/10729, which needs to be fixed in order for a change in the keyboard layout to trigger a reload of the quake mode and other key bindings.

@lhecker commented on GitHub (Jul 27, 2021): We use `MapVirtualKeyW` to map characters like <kbd>\`</kbd> to virtual keys, which are then used to create key bindinggs. This mapping generally isn't accurate, but there's no other "good way" to map characters to virtual keys except using `MapVirtualKeyW`. I tried solving this issue in https://github.com/microsoft/terminal/pull/10666, which will be released in a future update. It'll redefine the quake mode hotkey to be `win+sc(41)`, which will allow it to work independent of keyboard layout. But despite this we still have the issue described in https://github.com/microsoft/terminal/issues/10729, which needs to be fixed in order for a change in the keyboard layout to trigger a reload of the quake mode and other key bindings.
Author
Owner

@Vynce commented on GitHub (Aug 2, 2021):

Thanks for taking a look! I'm looking forward to trying a new build when it's available 😊.

@Vynce commented on GitHub (Aug 2, 2021): Thanks for taking a look! I'm looking forward to trying a new build when it's available 😊.
Author
Owner

@zadjii-msft commented on GitHub (Aug 5, 2021):

Okay great! This should be fixed in 1.11, but let us know if it isn't and we'll reopen this. Thanks!

/dup #10666

@zadjii-msft commented on GitHub (Aug 5, 2021): Okay great! This should be fixed in 1.11, but let us know if it isn't and we'll reopen this. Thanks! /dup #10666
Author
Owner

@ghost commented on GitHub (Aug 5, 2021):

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@ghost commented on GitHub (Aug 5, 2021): Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!
Author
Owner

@Vynce commented on GitHub (Aug 31, 2021):

This is working for me in 1.11.2421.0 after changing the key binding to
{ "command": { "action": "globalSummon", "monitor": "any", "toggleVisibility": false }, "keys": "ctrl+sc(41)" }
Thanks!

@Vynce commented on GitHub (Aug 31, 2021): This is working for me in 1.11.2421.0 after changing the key binding to ``{ "command": { "action": "globalSummon", "monitor": "any", "toggleVisibility": false }, "keys": "ctrl+sc(41)" }`` Thanks!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#14671