Ebene 3 funktioniert nicht in Emacs.app und Terminal.app (macOS) #590
Open
opened 2 years ago by stapelberg
·
16 comments
Loading…
Reference in new issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
Auf Ebene 3 liegen einige wichtige gebräuchliche Zeichen, z.B.
/
(Mod3 + i
, d.h.Caps Lock + i
) oder?
(Mod3 + s
).Auf einem MacBook Air (M1, 2020) mit macOS 11.6 habe ich das NEO layout installiert durch die
neo.keylayout
Datei (von 2019-08-16) wie auf der Download-Seite beschrieben.Damit die
/
und?
Zeichen in Chrome mit Google Docs funktionieren habe ich die Karabiner-Regel “Prevent all layer 3 keys from being treated as option key shortcut” aktiviert, wie auf dieser GitHub issue beschrieben.Leider funktioniert Ebene 3 nicht richtig in allen Programmen. Konkret habe ich bemerkt:
Problem 1: Ich hab Emacs von emacsformacosx.com installiert (ich hab auch die homebrew-Version probiert), kann aber Zeichen wie
/
oder?
gar nicht eingeben! Emacs interpretiert die Tasten fälschlicherweise alsM-u
.Die Karabiner-Regel “Prevent all layer 3 keys from being treated as option key shortcut”, die das Problem in Google Docs gelöst hat hilft leider in Emacs nicht. Wenn man die Regel deaktiviert ändert sich zwar das Fehlerbild, aber Emacs erkennt immer noch
M-i
statt/
.Problem 2: In der Terminal app kann ich die Option “Use Option as Meta key” nicht aktivieren, sonst fungieren die Ebene 3-Tasten als meta shortcuts (
M-i
) statt Zeichen (/
).Ich würde die Option gern aktivieren, da ich es gewöhnt bin, mit
Alt+b
bzw.Alt+f
wortweise zu springen. Da ich Option + b / Option + f nicht verwenden kann, muss ich mir mit Option + Pfeiltasten behelfen.Noch wichtiger als die wortweise Navigation ist allerdings wäre allerdings ein funktionierender Meta key für Emacs im Terminal (z.B. via SSH): hier muss ich Escape drücken (und loslassen!) statt die Meta Taste verwenden (und kombinieren) zu können.
Ich weiss nicht genau wieso Emacs solche Probleme hat. Andere Anwendungen wie BBEdit scheinen einwandfrei alle Tasten erkennen zu können, inklusive macOS-level Tastenkombinationen mit und ohne option (z.B.
command + /
undoption + command + /
).Die m3 Ebene sollte eigentlich funktionieren, jedenfalls tut es das bei mir in spacemacs und iterm2 problemlos. Das Problem könnte in den Karabiner Config liegen könntest du dazu mal deine komplette karabiner config zu finden unter: ~/.config/karabiner hier hochladen?
Probier auch am besten mal die "Prevent problematic keys (?, /, = and )) from being treated as option key shortcut modification
Es könnte vielleicht auch an der nicht aktuellen neo.keylayout liegen.
Danke für deine Antwort!
Ja, habe ich angehängt
Habe ich ausprobiert, ändert aber leider nichts an meinem Symptom.
Ich habe jetzt auf
4164db6a1a/mac_osx/neo.keylayout
aktualisiert, aber das ändert leider auch nichts an meinem Symptom.Ich denke, ich habe denselben Fehler, sowohl in Terminal.app als auch in iTerm.app. Ich verwende e1436b3ad1/mac_osx/neo.keylayout, mit den aktuellen Regeln für Karabiner Elements.
Sobald ich eine der „Prevent … as option key shortcut“-Regeln aktiviere, kann ich die betreffenden Symbole auf Ebene 3 nicht mehr mittels der Mod3-Tasten verwenden. Stattdessen wechselt
zsh
in den Normal-Modus (vi-Modus). Daher denke ich, dass irgendwie eine Escape-Kombination erzeugt wird. Über die linke Options-Taste kann ich die Symbole der Ebene 3 weiterhin erzeugen.Ohne die „Prevent …“-Regeln funktioniert Ebene 3 für mich in VS Code nicht, weil manche Zeichen als Shortcuts interpretiert werden. Die Regel nicht zu verwenden kommt für mich also nicht in Frage.
Ich habe meine
karabiner.json
Konfiguration angehängt.Ich habe das gleiche Problem. Kann es an der z-Shell liegen?
Anhang 1 zeigt was passiert, wenn man in der Shell CapsLock und die Taste direkt rechts daneben drückt.
Anhang 2 zeigt den Tastendruck im Event-Viewer.
In allen anderen Apps außer dem Terminal funktioniert die Ebene 3.
Hat jemand eine Idee?
Das Problem ist nicht auf zsh oder deren vi-Modus beschränkt: Wenn ich zum emacs-Modus wechsele, werden statt der eingegebenen Zeichen seltsame Escape-Sequenzen generiert. In bash tritt dasselbe Fehlerbild auf.
Interressant. In bash sieht es für mich so aus.
Interressanterweise funktioniert bei mir die linke Option-Taste als MOD3.
Bei mir geht z.B. 5 von Layer 4 im Terminal mit zsh aber wenn ich ohmyzsh installiere geht es nicht mehr. C-v in ohmyzsh sagt er bekommt hier ein ^[Ou.
ohmyzsh benutze ich auch. Vielleicht liegt der Fehler darin.
https://github.com/ohmyzsh/ohmyzsh/issues/4916
Benutze das interne Macbook Pro (M1) Keyboard. Das hat keinen Nummernblock.
Das neo layer 4 tut aber so als wäre es das numpad. Bei mir geht der fix.
Bei mir funktioniert es nicht. Benutze aber auch bone.
Geht leider auch nicht. Ebenso der ':' und ')' sowie ebene 4 Numpad im Terminal und hier zB. (auf der Seite) im GoPlayground:
https://go.dev/tour/moretypes/1
The issue with goplayground only exists when using Firefox, which is weird, because other sites work well in FF and neo.
Dieser PR sollte das Issue fixen.
https://github.com/pqrs-org/KE-complex_modifications/pull/1313
Interessant ist auch, wie andere das Problem Custom Keyboard Layout unter macOS lösen:
https://github.com/jackrosenthal/threelayout
Hier werden anscheinend Keys auf Variablen gemappt, um die weiteren Layer zu realisieren.
Ich habe das Layout mal ausprobiert (vorher auf QWERTY wechseln und ein Backup der Karabiner config erstellen) und habe keinerlei Probleme mit der Ebene 3 (Taste Ä auf einer QWERTZ Tastatur). Allerdings wurde anscheinend das komplette Layout via Karabiner erstellt, weiß also nicht, inwieweit das mit diesem Layout kompatibel wäre.