Skip to content

VSCode for Linux should rely on XKB keylabels, not rely on keycodes #21

@balwuw

Description

@balwuw

The [Backspace] key and right Super or Ctrl key are best swapped. VSCode cannot do this.
The setkeycodes command cannot affect >1 keyboard and is reported to be ineffective on USB keyboards. As in microsoft/vscode#24690, keys are currently remapped in /usr/share/X11/xkb/keycodes/evdev, where keylabel assignments to X keycodes (Linux kernel keycodes + 8) can be effectively changed.

While some parts of VSCode—notably the settings editor—do respect these remappings, VSCode’s text editor is the only application that does not, at least not properly:

  • The physical right Control key keeps acting as ctrl instead of acting as Backspace;
  • The physical Backspace key keeps acting as Backspace, and additionally it acts as Control, that it is remapped to, resulting in deleteWordLeft.

VSCode key bindings are unable to fix all of this either, only able to change deleteWordLeft to deleteLeft.

Version: 1.44.2
Commit: ff915844119ce9485abfe8aa9076ec76b5300ddd
Date: 2020-04-16T17:50:03.709Z
Electron: 7.1.11
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Linux x64 4.13.0-36-generic

Steps to Reproduce:

  1. Open /usr/share/X11/xkb/keycodes/evdev
  2.  Replace:
    <BKSP> = 22;
    <RCTL> = 105;
    with:
    <RCTL> = 22; // was <BKSP>
    <BKSP> = 105; // was <RCTL>
  3. Log out, open new session;
  4. Check key behavior in Chrome;
  5. Check key behavior in VSCode.

Does this issue occur when all extensions are disabled?

Yes it is extensions agnostic.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions