microsoft / node-native-keymap

Provide OS keyboard layout functionality as a nodejs module
MIT License
136 stars 37 forks source link

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

Open balwuw opened 4 years ago

balwuw commented 4 years ago

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:

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.