Vscode: Neo-Tastaturlayout: Einige Tasten funktionieren nicht mehr

Erstellt am 6. Apr. 2017  ·  28Kommentare  ·  Quelle: microsoft/vscode

  • VSCode-Version: Code 1.11.0 (9122ec4b1068bd391e41974f46a4b54c1b9c90f9, 2017-04-05T21: 13: 24.700Z)
  • Betriebssystemversion: Linux x64 4.4.0-72-generic

Schritte zum Reproduzieren:

  1. Installieren und aktivieren Sie das Neo- Tastaturlayout
  2. Öffnen Sie eine beliebige Quelldatei im VS-Code
  3. Setzen Sie den Cursor irgendwo in die Datei
  4. Drücken Sie die Taste M4 und halten Sie sie gedrückt. Drücken Sie die Taste s (siehe Bild).
  5. Anstatt den Cursor nach links zu bewegen, passiert nichts

In der vorherigen Version von VSCode (1.10.2 8076a19fdcab7e1fc1707952d652f0bb6c6db331) hat dies einwandfrei funktioniert.

tastatur_e4b png

bug help wanted keyboard-layout linux

Hilfreichster Kommentar

Ich brauche etwas Zeit, um dieses Tastaturlayout zu verstehen. Ich werde dich in den kommenden Tagen anrufen, wenn du so freundlich bist, mir zu helfen. Es ist anders als alles, was ich gesehen habe.

Problemumgehung, um VS-Code erneut basierend auf dem Schlüsselcode auf Versand umzustellen. Fügen Sie die folgende Einstellung hinzu:
"keyboard.dispatch": "keyCode" und starten Sie VS Code neu

Alle 28 Kommentare

Gleiches Problem für mich. Geben Sie Schlüsselwörter aus, da ich dieses Problem zuerst nicht gefunden habe: Layer 4-Pfeiltasten Neo2 Deutsches Tastaturlayout.

Funktionierte gut in 1.10, funktioniert nicht in 1.11.

Der Verknüpfungseditor in VSCode scheint die in der Tastatur oben hervorgehobene Kombination als [IntlBackslash] i zu identifizieren

Es ist nicht unter Windows und VSCode 1.11.0 kaputt.
Die Keymapping-Funktion erfolgt dort jedoch über die Auto-Taste, die das Drücken von Tasten abfängt und ihre eigenen ausgibt. AFAIK Dies wird unter Linux anders gehandhabt.

Ich habe gerade git bisect . Das erste schlechte Commit scheint https://github.com/Microsoft/vscode/commit/d10239639bf9beaa6ea34125319103de3dce43cd ( @alexandrudima ) zu sein.

# bad: [9122ec4b1068bd391e41974f46a4b54c1b9c90f9] Fix styling of release notes (fixes #23948)
# good: [8076a19fdcab7e1fc1707952d652f0bb6c6db331] debug: save all untitled non dirty files before debug start
git bisect start '1.11.0' '1.10.2'
# good: [40fecfaa77f01672e8a147be71f6f7ccb9cf8a12] fix mixin
git bisect good 40fecfaa77f01672e8a147be71f6f7ccb9cf8a12
# good: [9d2e0611f7f7750f02ec72c4d18a20b69c5bf8cf] #18095 :lipstick:
git bisect good 9d2e0611f7f7750f02ec72c4d18a20b69c5bf8cf
# bad: [7c223972367b8ade5362d738606f3b910d0fbb42] Fixes #19235: Wording in tasks warning message
git bisect bad 7c223972367b8ade5362d738606f3b910d0fbb42
# good: [378231183e815c8e8e6a73ad04fc40ec5058fdc5] Promise cancellation is slow. Use a timer instead since this may run many times.
git bisect good 378231183e815c8e8e6a73ad04fc40ec5058fdc5
# good: [f70b0b3ecb7f276c811b0f18c7a0bec3b03c11a6] Fixes #22069: Define extension story for tasks
git bisect good f70b0b3ecb7f276c811b0f18c7a0bec3b03c11a6
# bad: [4ad4bd0d8011a5db5e2bea4543b7efb03d482aad] :bug: add commit box message
git bisect bad 4ad4bd0d8011a5db5e2bea4543b7efb03d482aad
# bad: [9003dbc3f5f2b87cb3cc4a3418030dbdc45ac0a3] Add IKeybindingService.resolveUserBinding
git bisect bad 9003dbc3f5f2b87cb3cc4a3418030dbdc45ac0a3
# bad: [968da131589845b43c0d00141b41b2bb366a84e8] Improve the ScanCode -> KeyCode guessing strategy
git bisect bad 968da131589845b43c0d00141b41b2bb366a84e8
# bad: [969cbdfea05beda1a38d4082698b87f239fc2384] Renames
git bisect bad 969cbdfea05beda1a38d4082698b87f239fc2384
# bad: [8a33db65efdd3ed4c76d01cb76c3ef658caf16db] Add Inspect Key Mapppings action
git bisect bad 8a33db65efdd3ed4c76d01cb76c3ef658caf16db
# bad: [0ebecd5ca915ed33ea747cafe2c99572c52904b5] Merge branch 'master' into alex/keybinding
git bisect bad 0ebecd5ca915ed33ea747cafe2c99572c52904b5
# bad: [d10239639bf9beaa6ea34125319103de3dce43cd] First cut at integrating keyboard mappers
git bisect bad d10239639bf9beaa6ea34125319103de3dce43cd
# first bad commit: [d10239639bf9beaa6ea34125319103de3dce43cd] First cut at integrating keyboard mappers

Ich brauche etwas Zeit, um dieses Tastaturlayout zu verstehen. Ich werde dich in den kommenden Tagen anrufen, wenn du so freundlich bist, mir zu helfen. Es ist anders als alles, was ich gesehen habe.

Problemumgehung, um VS-Code erneut basierend auf dem Schlüsselcode auf Versand umzustellen. Fügen Sie die folgende Einstellung hinzu:
"keyboard.dispatch": "keyCode" und starten Sie VS Code neu

Ich habe das gleiche Problem bei Debian / Jessie.

https://github.com/Microsoft/vscode/issues/25797

Ich habe Probleme mit der Rücktaste.

Hallo, ich habe das gleiche Problem. Gestern hat die Problemumgehung für mich funktioniert, aber heute funktioniert sie nicht mehr. Es funktioniert ungefähr 2 Sekunden nach dem Start des Editors, dann funktionieren meine Grundtasten (Buchstaben) nicht mehr. :Denken:
Ich bin mir nicht sicher, ob ich seit gestern etwas Dummes getan habe, aber habe ich eine Idee, warum das so sein könnte?

@zommerfelds Das erste, was ich überprüfen würde, sind die settings.json . Wird das "keyboard.dispatch" dupliziert, wird die Einstellung beim Öffnen eines Ordners durch eine Arbeitsbereichseinstellung überschrieben usw.

Als nächstes müssen Sie einen Editor öffnen und F1 > Developer: Inspect key mappings . Gibt es "FallbackKeyboardMapper-Versand auf keyCode" aus (ein Indikator dafür, dass die Einstellung angewendet wurde).

Wenn dies kein Problem mit den Einstellungen ist, dh die Bestätigung, dass der Versand für keyCode erfolgt, würde ich versuchen zu untersuchen, was Electron / Chromium / das Betriebssystem uns sendet, wenn Sie eine bestimmte Taste drücken : Bitte bewegen Sie den Mauszeiger über das Eingabefeld und machen Sie einen Screenshot:
keyboard-input

Hallo @alexandrudima , danke für die ausführliche Antwort.

cat ~/.config/Code/User/settings.json :

// Place your settings in this file to overwrite the default settings
{
    "keyboard.dispatch": "keyCode"
}

Wenn ich den Editor öffne und zu _File => Preferences => Settings_ gehe, sehe ich den gleichen Inhalt für _USER SETTINGS_ wie oben und {} für _WORKSPACE SETTINGS_, also sollte das in Ordnung sein.

_F1> Entwickler: Schlüsselzuordnungen überprüfen_ gibt mir:

Layout info:
{
    "model": "pc105",
    "layout": "de,ch",
    "variant": "neo,",
    "options": "grp:menu_toggle",
    "rules": "evdev"
}
FallbackKeyboardMapper dispatching on keyCode

Raw mapping:
...

Für die Tastenkombinationen bekomme ich:

Wenn ich "a" eingeben möchte:
image

Wenn ich "(" eingeben möchte):
image

Das a wird in diesem Popup gut gedruckt, aber nicht im Haupteditor.

In Neo befindet sich der A dort, wo sich der D Schlüssel in QWERTY befindet, und ( ist CapsLock+J in QUERTY.
Ich kann die Pfeiltasten in der 4. Ebene in Neo ganz gut verwenden, aber nicht zum Beispiel die Ziffern. Rücktaste funktioniert. Enter funktioniert nicht. Ctrl+Z funktioniert zum Rückgängigmachen (in Neo).

Wie ich bereits sagte, funktioniert in den ersten Sekunden alles, während Vscode gestartet wird, und dann funktioniert es nicht mehr.

Lassen Sie mich wissen, ob ich auf andere Weise helfen kann. Es wäre großartig, wenn ich Vscode wieder verwenden könnte :)

EDIT: Zur Verdeutlichung denke ich, dass ich möglicherweise nicht das gleiche Problem wie das OP habe. Meine Pfeiltasten in der 4. Ebene funktionieren, aber nicht die einfachen Buchstaben.

EDIT2: _Help => About_:

Version 1.12.2
Commit 19222cdc84ce72202478ba1cec5cb557b71163de
Date 2017-05-10T13:16:25.899Z
Shell 1.6.6
Renderer 56.0.2924.87
Node 7.4.0

Danke @alexandrudima ! Das Ändern von "keyboard.dispatch": "code" in "keyboard.dispatch": "keyCode" in File->Preferences->Settings hat mir geholfen, die m4-Ebenentasten (Escape-Taste, Navigationstasten, Rücktaste, Löschen, Zahlen) zum Laufen zu bringen.

Funktioniert immer noch nicht für mich bei 1.19.0 .
Mir ist auch aufgefallen, dass die Einstellung keyboard.dispatch keinen Unterschied macht. In beiden Einstellungen funktionieren beispielsweise Navigationstasten und Rücktaste, jedoch keine Ziffern und normalen Buchstaben.
Gibt es eine Möglichkeit für mich zu überprüfen, ob vscode es tatsächlich als keyCode lädt und nicht irgendwie auf code zurückfällt?

Eigentlich habe ich es gerade zum Laufen gebracht! Die NeoX- Erweiterung hat meine Einstellungen keyboard.dispatch auf keyCode damit es funktioniert.
Entschuldigung und vielen Dank für die Unterstützung. Ja, ich kann jetzt vscode verwenden! :) :)

Ich denke, wir können dieses Problem dann schließen?

Das Problem ist im aktuellen VS-Code weiterhin vorhanden:

  • VS-Code-Version: Code 1.20.0 (c63189deaa8e620f650cc28792b8f5f3363f2c5b, 2018-02-07T17: 10: 15.949Z)
  • Betriebssystemversion: Linux x64 4.13.0-32-generic

Ich hatte auch Probleme bei der Verwendung des Neo-Layouts mit VS-Code 1.201 unter Ubuntu 17.10 (Linux 4.13.0-36-generic). Ohne den Schalter "keyboad.dispatch": keyCode - konnte ich mit Neo2 tippen, konnte aber nicht einmal STRG + C und STRG + V verwenden, da dies dem Standardlayout wieder zugeordnet werden würde (Auslösen von STRG + R bzw. STRG + W) ).

Nun, ich habe gerade die "keyboard.dispatch" ausprobiert und sie sagt mir "unbekannte Konfigurationseinstellung". Aber meine Probleme sind etwas anders.

Pfeiltasten funktionieren einwandfrei, aber zum Beispiel funktioniert die Rückgängig-Taste nicht. Wenn ich M4+z drücke, erkennt Visual Studio Code nur z . Und wenn ich etwas an Tasten wie äöü binden möchte, übersetzt vscode diese Tasten, wenn es eine US-Tastatur gewesen wäre. Ctrl+ü wird also als Ctrl+z erkannt. Das ist schrecklich.

Ich ordne meine Tastatur mit dem XKB-Programm zu, um eine modifizierte dvorak-Tastatur zu verwenden.

Ich verwende die Option ralt_switch, mit der die rechte Alt-Taste als Metataste oder zusätzlicher Modifikator verwendet wurde.
Ich aktiviere die keyCode-Einstellung in VSCode Insider.
Unten finden Sie mein XKB-Setup-Beispiel

image

Der RAlt (aka Meta key) + s anerkannt von VS als End drücken. + Gut
aber wenn ich ctrl+End key mit Ctrl+RAlt (Meta)+s es als Ctrl+s erkannt, wodurch das Dokument gespeichert wird. -Schlecht
Ratet mal, was passiert ist, als ich versucht habe, ein paar Wörter zu überspringen, indem ich mehrmals Ctrl+Right aka Ctrl+RAlt (Meta)+n gedrückt habe.

Ich nehme an, der Strg-Modifikator spielt nicht gut mit einem zusätzlichen Modifikator (oder einem keyCode-ed-Modifikator) wie Meta Key oder Mod4.
Sogar Ctrl+Shift+RAlt (Meta)+s spart ebenso.
Aber Shift+Ralt (Meta)+s mag Shift+End was +Good
Können Sie Strg beim Kombinieren von Modifikatoren einfach wie Shift verhalten lassen?


Ich denke, es ist ein verwandtes Problem, aber mit einem anderen Fall.
_der Titel erwähnt neo Layout, dieses ist benutzerdefiniert_

bezieht sich dies auf diesen gelösten Kommentar?
durch Verwendung von keyboard.dispatch 'Code', jedoch nur für OSX. Und ich habe gerade versucht, dass es unter Linux Mint / Ubuntu nicht funktioniert hat
https://github.com/Microsoft/vscode/issues/12393#issuecomment -288994081

Ich bin unter Linux.

Version 1.21.1
Commit 79b44aa704ce542d8ca4a3cc44cfca566e7720f1
Datum 2018-03-14T14: 46: 30.761Z
Shell 1.7.9
Renderer 58.0.3029.110
Knoten 7.9.0
Architektur x64

Leider scheint die keyboard.dispatch Problemumgehung auch bei mir nicht zu funktionieren - zumindest nicht gut genug. Ich kann das neu gestaltete CapsLock (Mod3) verwenden, um Programmiersymbole wie /,\,[,] usw. in den Editor einzufügen, aber nicht in Verknüpfungen wie shift+/ was bedeutet, dass Sie auf drücken physische Tasten von shift+capslock+s

Der Versuch, Verknüpfungen mit Mod3 neu zuzuweisen, zeigt unknown

unknown_key

Es scheint, als ob @sakasistem erwähnt wurde, es scheint Probleme mit einer bestimmten Folge von Modifikatortasten zu geben.

Verknüpfungen wie shift+/ sind Gesamt-BS und sollten nicht existieren.

Es sollte entweder ? und das Layout entscheiden lassen, welche Modifikatoren zum Eingeben dieses Zeichens erforderlich sind, oder ein Layout unabhängig von shift + scancode_slash . Bei der ersten Option würde ich einfach tippen? (egal wo ich das auf mein Layout setze und welche Modifikatoren ich drücken muss), und im zweiten würde ich einfach ein Großbuchstaben J in mein Layout eingeben, weil ich ein J an der Tastaturposition habe, an der US-QWERTY hat ein / .

Ähnlich wie bei krux02 musste ich 'Strg + ü' und 'Strg + k' zum Rückgängigmachen bzw. Wiederherstellen eingeben, aber ich konnte die entsprechende Einstellung für "keyboard.dispatch" finden, und das scheint das Problem gelöst zu haben.

Betriebssystem: Ubuntu 18.04 LTS

VSCode:

Version 1.23.1
Commit d0182c3417d225529c6d5ad24b7572815d0de9ac
Datum 2018-05-10T16: 04: 33.747Z
Shell 1.7.12
Renderer 58.0.3029.110
Knoten 7.9.0
Architektur x64

Oh mein Gott, ich benutze vscode insider, nur um zu warten, bis dieses Problem behoben ist.
Genau wie @sakasistem
Ich benutze Thinkpad mit physischer QWERTY-Tastatur und ändere meine Keymap auf benutzerdefiniertes Dvorak mit xkb-Datei unter Linux Mint Sony

Hier ist die Keymap-Datei https://pastebin.com/cUAxDtAM
Es ist für Debian-basiertes Betriebssystem, Linux Mint, um genau zu sein.
Fügen Sie es direkt vor der Definition von dvorak-intl in /usr/share/X11/xkb/symbols/us
partial alphanumeric_keys xkb_symbols "dvorak-intl" {

Es fügt dem dvorak-Layout Navigationsmagie hinzu und verhält sich up , left , down , right mit RAlt+c,RAlt+h,RAlt+t,RAlt+n (es sollte i, j, k, l auf QWERTY anstelle von c, h, t, n ), es funktioniert wirklich auf den meisten Anwendungen mit ctrl , shift und alt Modifikator, aber vscode. Ctrl+RAlt+n sollte das nächste Wort springen, aber stattdessen verhält es sich wie Strg + n und öffnet einen neuen Tab.

Der Shift-Modifikator funktioniert, wodurch Shift+RAlt+s bis zum Zeilenende ausgewählt wird. Es ist nur der Strg-Modifikator, der die Verknüpfung für den ersten Platz auslöst.

Nun, hier ist der Pastebin-Inhalt:

partial alphanumeric_keys
xkb_symbols "dvorak-shy" {

    name[Group1]= "English (Dvorak) by Shy";

    key <TLDE> { [       grave, asciitilde, dead_grave, dead_tilde  ] };

    key <AE01> { [      1,  exclam      ]   };
    key <AE02> { [      2,  at      ]   };
    key <AE03> { [      3,  numbersign  ]   };
    key <AE04> { [      4,  dollar      ]   };
    key <AE05> { [      5,  percent     ]   };
    key <AE06> { [      6,  asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE07> { [      7,  ampersand   ]   };
    key <AE08> { [      8,  asterisk    ]   };
    key <AE09> { [      9,  parenleft,  dead_grave] };
    key <AE10> { [      0,  parenright  ]   };
    key <AE11> { [ bracketleft, braceleft   ]   };
    key <AE12> { [ bracketright, braceright,  dead_tilde] };

    key <AD01> { [  apostrophe, quotedbl, dead_acute, dead_diaeresis    ] };
    key <AD02> { [  comma,  less,   dead_cedilla, dead_caron    ] };
    key <AD03> { [      period, greater, dead_abovedot, periodcentered  ] };
    key <AD04> { [      p,  P       ]   };
    key <AD05> { [      y,  Y       ]   };
    key <AD06> { [      f,  F       ]   };
    key <AD07> { [      g,  G, Page_Up, Page_Up     ]   };
    key <AD08> { [      c,  C, Up, Up       ]   };
    key <AD09> { [      r,  R, dead_tilde, dead_tilde       ]   };
    key <AD10> { [      l,  L       ]   };
    key <AD11> { [  slash,  question    ]   };
    key <AD12> { [  equal,  plus        ]   };

    key <AC01> { [      a,  A       ]   };
    key <AC02> { [      o,  O       ]   };
    key <AC03> { [      e,  E       ]   };
    key <AC04> { [      u,  U       ]   };
    key <AC05> { [      i,  I       ]   };
    key <AC06> { [      d,  D, Home, Home       ]   };
    key <AC07> { [      h,  H, Left, Left       ]   };
    key <AC08> { [      t,  T, Down, Down       ]   };
    key <AC09> { [      n,  N, Right, Right     ]   };
    key <AC10> { [      s,  S, End, End     ]   };
    key <AC11> { [  minus,  underscore  ]   };

    key <AB01> { [   semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [      q,  Q       ]   };
    key <AB03> { [      j,  J       ]   };
    key <AB04> { [      k,  K       ]   };
    key <AB05> { [      x,  X       ]   };
    key <AB06> { [      b,  B       ]   };
    key <AB07> { [      m,  M, Page_Down, Page_Down     ]   };
    key <AB08> { [      w,  W       ]   };
    key <AB09> { [      v,  V       ]   };
    key <AB10> { [      z,  Z       ]   };

    key <BKSL> { [  backslash,  bar             ]       };


    key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };

    include "level3(ralt_switch)"
};

Achten Sie auf den magischen Code include "level3(ralt_switch)" , der RAlt wie Mod3 macht, aber vscode erkennt, dass es unknown .

Linux hier, ohne ein ungewöhnliches Tastaturlayout, habe ich die Feststelltaste nur über XkbOptions Rücktaste umgestellt, und das hat auch nicht funktioniert. Durch den Wechsel zu keyCode hat es funktioniert. Ich denke, dies wirkt sich auf jede Art von Schlüsselzuordnung aus.

Für mich hat der Doppelpunkt : spontan aufgehört, in Visual Studio Code 1.32.3 unter macOS 10.14.3 zu arbeiten. Die Tastenkombination in Neo2 ist caps lock + ; (auf QWERTY). Das Setzen von keyboard.dispatch auf keyCode geholfen.

Ein anderer neo2-Benutzer hier;) Stolperte innerhalb der ersten Minuten nach der Verwendung von VSCode über das Problem, dass die Rücktaste nicht funktioniert. Zum Glück funktioniert die Problemumgehung bisher wie ein Zauber!
Trotzdem wäre es toll, wenn dieser Fehler eines Tages behoben würde;)

Die Problemumgehung von https://github.com/microsoft/vscode/issues/24043#issuecomment -292334048 funktioniert für die Rücktaste (: +1 :), bewegt jedoch ein Wort vorwärts / rückwärts und löscht ein Wort vor oder hinter dem Cursor funktioniert immer noch nicht: verwirrt: dh Ctrl + Alt Gr + w (im QWERTY-Layout / Tasten auf der Tastatur) sollte ein Wort links vom Cursor löschen, aber nur einfügen Die Zwischenablage, die Ctrl + w (im QWERTY-Layout / Tasten auf der Tastatur) wäre, ist Ctrl + v .
Es scheint, als würde der Tastendruck Alt Gr beim Drücken der Taste Ctrl einfach ignoriert.

Ich verwende Arch Linux mit den neuesten Updates.

Wie kann ich weitere Informationen bereitstellen, um dieses Problem zu beheben?

Ich bin neu in VS Code und verwende das KOY-Layout (mit einigen Anpassungen) unter Linux ( setxkbmap de koy ). Gleiches Problem wie bei Neo2: Ich kann einen Bindestrich eingeben, indem ich im Editor CapsLock+L drücke. Verknüpfungen mit CapsLock funktionieren jedoch nicht (wie das Verkleinern mit Ctrl+- = Ctrl-CapsLock-L ).

Auf der Seite mit den Schlüsselbindungsproblemen wird empfohlen, F1 > Developer: Inspect key mappings auszuführen, wenn nichts anderes hilft.

Mit dem deutschen Standardlayout ( setxkbmap de ) bekomme ich dies für die L- Taste:

    "KeyL": {
        "value": "l",
        "withShift": "L",
        "withAltGr": "ł",
        "withShiftAltGr": "Ł"
    }

Mit KOY ( setxkbmap de koy ) bekomme ich:

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "n",
        "withShiftAltGr": "N"
    },

Anscheinend macht VS Code die höheren Ebenen des Layouts nicht richtig!

Einige zusätzliche technische Informationen zu dieser Tastaturlayoutfamilie (Neo, Adnw, Koy, Bone):

Im deutschen Standardlayout ist AltGr ISO_Level3_Shift (unter Linux) zugeordnet. In Neo2 (und ähnlichem) ist AltGr ISO_Level5_Shift und CapsLock ISO_Level3_Shift .

Ich denke, wir sollten auch in der Ausgabe von > Developer: Inspect key mappings

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "-",

(weil CapsLock AltGr in Neo2 ersetzt, indem es der neue Schlüssel ISO_Level3_Shift )

oder

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "6",

(weil Sie eine "6" erhalten, wenn Sie die physische AltGr- Taste plus die L- Taste drücken, wie Sie im OP-Screenshot sehen können).

Ich hoffe, dies hilft Ihnen VS Code-Entwicklern, unser Problem besser zu verstehen.

Mir ist bewusst, dass ich (und andere) hier einige Probleme in Bezug auf Neo mischen. Aber sie könnten verwandt sein.

Getestet unter Ubuntu 18.04 mit dieser Version von VS Code / Codium:

Version: 1.44.0
Commit: 2aae1f26c72891c399f860409176fe435a154b13
Date: 2020-04-09T10:44:46.342Z
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.15.0-96-generic

Es scheint, als würde der Tastendruck Alt Gr beim Drücken der Taste Ctrl einfach ignoriert.

Ich habe das gleiche Problem. Das Markieren einzelner Buchstaben über Shift + RightArrow funktioniert, wenn ich die RightArrow über AltGr + E Shift + RightArrow eingebe. Wenn Sie jedoch Ctrl + Shift + RightArrow mit dem Neo-Layout verwenden, werden stattdessen Ctrl + Shift + E versandt .
Ich habe die Schlüsselaufzeichnungsfunktion verwendet und erhalte mit der Versandmethode code :

  • Wenn Sie Shift + AltGr + E drücken, wird zuerst shift + alt angezeigt und dann shift + right .
  • Durch Drücken von Ctrl + Shift + AltGr + E zuerst ctrl + shift + alt angezeigt, dann wird ctrl + shift + e

und mit der Methode keyCode :

  • Wenn Sie Shift + AltGr + E drücken, wird zuerst shift + oem_8 angezeigt und dann shift + right .
  • Durch Drücken von Ctrl + Shift + AltGr + E werden ctrl + shift + oem_8 ctrl+shift+e angezeigt

Das gleiche passiert, wenn nur Ctrl + AltGr +E was zu ctrl + e anstelle von ctrl + right .

Wäre es für dieses spezielle Problem möglicherweise eine praktikable Problemumgehung, nur einen bestimmten Schlüssel als tot zu markieren? Layouts wie Neo benötigen VSCode nicht, um AltGr anzuhören. Sie sollten nur den Schlüsselcode verarbeiten, der beim kombinierten Drücken gesendet wird. Wenn diese Ebene mit beiden Mod4-Tasten „gesperrt“ ist, wird das Drücken von Ctrl + Shift + e korrekt als ctrl + shift + right erkannt.

Meine Layoutinformationen:

"layout": {
        "model": "pc105",
        "layout": "de,de,gb",
        "variant": "neo,,",
        "options": "grp_led:scroll,altwin:alt_super_win",
        "rules": "evdev"
    }

Ich hatte das gleiche Problem wie hier mehrmals beschrieben, bei dem das Halten von control oder ähnlichen Tasten bestimmte Tasten in Ebene 4 des Neo-Layouts unbrauchbar macht und unerwünschte Verknüpfungen ausführt.

Mein Fix / Workaround

Was für mich in Ubuntu 18.04 funktioniert und all diese Probleme behoben hat, ist, setxkbmap -layout de -variant neo nach dem Start und jedem Aufwecken auszuführen. Es scheint mit beiden Einstellungen für keyboard.dispatch ( keyCode oder code ) zu funktionieren.

Anfang

Geben Sie in "Startup Application Preferences"->Add setxkbmap -layout de -variant neo wie folgt ein und speichern SieScreenshot

Aufwachen

Mit sudoedit /lib/systemd/system-sleep/setxkbmap hinzufügen

#!/bin/bash
case $1 in
  post)
    DISPLAY=:1 ; export DISPLAY
    su $USER -c "sleep 1; setxkbmap -layout de -variant neo"
  ;;
esac

und geben Sie ausführbare Berechtigungen mit sudo chmod 755 /lib/systemd/system-sleep/setxkbmap .

  • Anstelle von $USER fügen Sie Ihren Benutzer hinzu.
  • Überall sonst habe ich DISPLAY=:0 vorgeschlagen, aber das hat bei mir nicht funktioniert. Dann habe ich den Wert ausprobiert, den ich von echo $DISPLAY ( :1 ) erhalten habe, was funktioniert hat.
  • Wenn es nicht funktioniert, versuchen Sie es mit einer längeren Verzögerung (z. B. verwenden Sie anstelle von sleep 1; sleep 3; ).

Ich hoffe das hilft anderen!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen