Neo2 layer 3 fixes für macOS #644
No reviewers
Labels
No Label
(╯°□°)╯︵ ┻━┻
Bug
Diskussion
Dokumentation
Duplikat
Gitea
Hardware
Hilfe
Invalid
Java
Lernen
Qt
Remote
Subversion
Tablet
Tastaturbelegung
Test
Treiber/Android
Treiber/iOS
Treiber/Linux/Konsole
Treiber/Linux/xkb
Treiber/Linux/xmodmap
Treiber/MacOS
Treiber/Windows/AHK
Treiber/Windows/kbdneo
Treiber/Windows/ReNeo
Verbesserung
Website
Windows 11
Wontfix
Worksforme
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: neo/neo-layout#644
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "andre/neo-layout:neo2-layer3-fixes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mit diesen Änderungen ist es möglich, Shortcuts mit Sonderzeichen verwenden zu können
(bspw.
⌘
+/
,⌘
+[
/⌘
+]
etc.), ohne dass diese als Shortcuts mit⌥
interpretiert werden. DiePrevent problematic keys
Regeln sind dadurch nicht mehr notwendig.Erreicht wurde das, indem Layer 1 und Layer 2 in ein Englisch (International) Layout verändert wurden.
Damit die Neo2 Layouts (Neo2, Bone, NeoQWERTZ und ADNW) weiterhin funktionieren, sind neue Karabiner-Regeln notwendig.
Ich habe das ADNW-Layout auch modifiziert, konnte aber keinen Link zu einem Repository auf der ADNW-Seite finden. Deshalb habe ich das Layout dem PR hinzugefügt.
Link zum Karabiner Pull Request: https://github.com/pqrs-org/KE-complex_modifications/pull/1538
WIP: Neo2 layer 3 fixes für macOSto Neo2 layer 3 fixes für macOSNeo2 layer 3 fixes für macOSto WIP: Neo2 layer 3 fixes für macOS1254017aaf
to6f7336fd33
6f7336fd33
toa28c196331
WIP: Neo2 layer 3 fixes für macOSto Neo2 layer 3 fixes für macOSSieht eigentlich gut aus, in Terminal, Firefox, Safari, Slack (Electron), Apple Keynote, MS Powerpoint usw. verhält es sich zumindest für Texteingabe richtig (Shortcuts hab ich jetzt nicht groß getestet).
Mein einziges Problem ist in Exceed Turbo X (Remote Desktop Lösung). Da kommt das Bone’sche ö, ü, ä so an:
Ebene 3 funktioniert dafür richtig, da kommt z.B. ein () so an:
Ich bin mir nicht ganz sicher was da wo schiefläuft, ich glaub der mappt die Ebenen/Modifier irgendwie falsch? Ich experimentiere mal mit den ETX Settings.
Oh, einen Bug hab ich noch gefunden: CapsLock+QWERTZ'sches V gibt mir statt einer Tilde ein ˇ (also ein dead key accent, wenn ich danach z.B. s drücke kriege š). Magst du das fixen?
Tritt sowohl mit Neo als auch Bone auf und direkt am Macbook als auch an einer angeschlossenen nicht-Apple Tastatur.
Einen hab ich noch: In KVirc öffnet sich das “Configure registered users” Fenster wenn ich ß drücke. Das Setting hat anscheinend als Shortcut Option+U.
Das Programm “Key Codes” zeigt mir wenn ich ß drücke folgendes:
** Keys: ⌥U**
Nicht gut, oder? Irgendeine Möglichkeit das richtig hinzukriegen?
Das Problem konnte ich mit den verlinkten Karabiner-Regeln nicht reproduzieren.
Bei mir produziert CapsLock+V eine Tilde.
Be KVirc habe ich diese Version ausprobiert und bei NeoQwertz macht das Ä Probleme (ruft Configure registered users auf).
Ich denke nicht, dass dieses spezifische Problem gelöst werden kann.Das Numpad kann für die Umlaute und ß zweckentfremdet werden (die Nummern funktionieren dann nach Remapping trotzdem).
Normalerweise sollten Programme den Shortcut Option+U bei EN-Intl Layouts nicht nutzen, da dieser für die Umlaute genutzt wird.
a28c196331
to1a78e934ca
Ich habe die Änderungen nun in beiden Repos gepusht.
Das Ebene 4 Numpad ist jetzt aber kaputt weil das auf keypad_* mappt und dort im keylayout nun Umlaute und Zeug liegen :D
Hast du da eine Idee? Vielleicht Ebene 4 Numpad einfach auf z.B. "1" statt "keypad_1" mappen? Ist natürlich suboptimal falls man wirklich Numpad Inputs will.
Die Tilde funktoniert bei mir mit "Deutsch (AdNW)" aber nicht bei den Layouts im neo.bundle (dort kriege ich wie gehabt das ˇ). Weißt du wo der Unterschied ist?
Mit deinem Vorschlag funktionieren die Ebene 4 Nummern wieder, danke.
Was das Problem mit dem Numpad angeht, zumindest bei Blender kann man
Emulate Numpad
aktivieren, damit die Numrow als Numpad interpretiert wird (und damit auch die Ebene 4-Ziffern). Mir fällt momentan kein anderes Programm ein, wo ein Numpad zwingend notwendig wäre.Bezüglich der Tilde: Ich kann das Problem nicht reproduzieren. Hast du bereits versucht, Karabiner mit einer neuen config zu starten (gegebenenfalls vorher die Karabiner-Systemconfig zurücksetzen)?
Die Karabiner-Regeln unterscheiden sich bei den Layouts nur in Ebene 1 und 2.
Das Ganze ist ziemlich hacky, aber ohne QMK-Keyboard oder kmonad wird man das Sonderzeichen-Problem mit den Neo-Layouts unter macOS, denke ich, nicht lösen können.
Bin auf ein paar Probleme mit der Taste links von 1 (soll ein ^ erzeugen) und der Taste rechts vom linken Shift (M4L) gestoßen.
First of all ist da das gute alte Problem das die Taste links von 1 bei Mac Tastaturen ein "non_us_backslash" ist und bei normalen Tastaturen ein "grave_accent_and_tilde". Vice versa für M4L: Bei Mac ist es "grave_accent_and_tilde", bei normalen Tastaturen ein "non_us_backslash".
Momentan ist das in deinen KE Rules für Mac falsch implementiert, statt non_us_backslash sollte hier grave_accent_and_tilde stehen:
Das führt auch schon zum nächsten Problem: Mischbetrieb mit einer Mac Tastatur (z.B. eingebaut im Macbook) und normaler Tastatur ist so nicht möglich. Darum hatten wir bisher die device_if conditions in den KE Rules. Das brauchen wir wieder.
Das Rätsel um die Tilde hat sich auch geklärt: Du mappst in KE das v auf Shift+non_us_backslash (bisserl ein Hack). Im AdNW keylayout liegt dort die Tilde, in den Neo'schen Layouts liegt dort ˇ wie in der Neo Referenz spezifiziert. Ich vermute wir müssen mit den Neo'schen Layouts nachziehen und haben halt dann keine Möglichkeit mehr ˇ einzugeben?
Ich konnte das Problem mit der Tilde reproduzieren, indem ich das Tastaturlayout auf ANSI stelle. Stelle ich das wieder auf ISO um, funktioniert es.
Bei mir verhalten sich die MacBook Tastatur und das externe Magic Keyboard gleich (Taste links neben 1 geben beim Karabiner Event Viewer beide ein
grave_accent_and_tilde
aus).Gibt es eine Referenz für ADNW? Denn bei Shift+Grave Accent and Tilde kommt dieses Zeichen heraus: ˜
Egal ob ich ISO oder ANSI einstelle, die Taste links neben 1 wird bei meinem Macbook Pro 2019 (ISO layout, QWERTY Beschriftung) als non_us_backslash reported. Ich bin verwirrt.
Die verschiedenen Varianten vom Layout für Mactastaturen und normale Tastaturen gabs schon vor meiner Zeit, also ich glaub nicht das ich der einzige bin bei dem es so ist. Komisch nur das es sich bei dir richtig verhält. Eine normale USB Tastatur zum Gegenchecken hast du nicht zufällig?
Edit: Habe diesen alten Issue dazu gefunden, scheint ein bekannter, alter MacOS Bug zu sein
https://github.com/pqrs-org/Karabiner-Elements/issues/885
Edit2: Und den https://github.com/pqrs-org/Karabiner-Elements/issues/2514 und den: https://github.com/pqrs-org/Karabiner-Elements/issues/2985
Ich habe noch eine ISO MX Keys Mini, die gibt auch
grave_accent_and_tilde
aus (sowohl im Mac- als auch im Windows-Modus).Die interne MacBook Tastatur und das Magic Keyboard sind aber ANSI. Alle drei Tastaturen verhalten sich bei mir identisch, nur dass die ANSI-Tastaturen Backslash als zweiten Mod3-Key haben und der erste Mod4-Key natürlich fehlt.
EDIT: Aus irgendeinen Grund habe ich jetzt das gleiche Problem. o_O
Da ich kein MacBook mit ISO-Layout habe, kann ich leider nicht testen, welche Änderungen nötig sind, damit die Karabiner-Regeln mit allen ISO-Mac-Tastaturen funktionieren.
Mit diesen Änderungen in der neo Karabiner-Datei lassen sich Modifikationen schnell testen (Vorsicht: das überschreibt das vorhandene Profil)
Aus dem Rootverzeichnis des Karabiner-Repos auführen:
ls src/json/neo2.json.js | entr -s "make && cp public/json/neo2.json ~/.config/karabiner/karabiner.json"
@Mike1
Ich habe jetzt ein paar Änderungen bezüglich der Tilde/Zirkumflex gepusht.
Getestet wurde mit der MX Keys Mini (ISO) im PC und Mac-Modus, dort funktioniert die Zirkumflex-Taste in allen Ebenen nun korrekt (ebenfalls CapsLock+V und CapsLock+B).
Könntest du bitte die MacBook-Tastatur ebenfalls testen?
Sieht schon mal gut aus :)
Einziges Problem das ich noch habe ist Mischbetrieb.
Wenn ich nur die Mac Rule aktiv habe geht auf der Macbook-Tastatur alles aber auf der externen Tastatur sind Mod4L und ^ vertauscht. Wenn ich die „PC keyboards“ rule aktiv habe ist es genau umgekehrt. Also so wie ich es sehe brauchen wir die device_if conditions von früher damit man Macbook mit angesteckter normaler Tastatur problemlos verwenden kann.
Die Änderungen sind gepusht.
Jetzt ist aber Ebene 4 mit der „Neo2 layers (PC keyboards)“ rule kaputt. M4R + n öffnet mir z.B. in Terminal einen neuen Tab statt eine „4” auszugeben.
Soll da wirklich right_option und nicht right_command stehen?
Übrigens: Wir matchen hier genau genommen nicht nur auf interne keyboards sondern auch auf externe mit der ID von Apple (was ich auch gut finde, außer Apple produziert irgendwann mal eine normale ISO Tastatur):
Ich habe die Variablen und Beschreibungen dementsprechend geändert.
AltGr+N produziert bei mir die 4, sowohl mit der MX Keys in PC-Modus als auch mit einer USB Logitech PC-Tastatur.
Mein Fehler wegen right_option vs. right_command, ich hatte aus irgendeinem Grund eine simple rule um die beiden zu vertauschen.
Das Problem mit der Tilde ist zurück, mit AdnW geht es, bei den Neo'schen Layouts kriege ich sowohl beim Macbook als auch auf der externen Tastatur wieder den ˇ statt der Tilde.
Ansonsten würds jetzt eigentlich gut aussehen, habe mit der ISO Tastatur vom Macbook, einem Truly Ergonomic Keyboard („ISO“) mit eigener Firmware und einer Logitech K330 getestet.
Noch ein Problem: Die ^ Taste links von 1 erzeugt bei mir auf dem Macbook überhaupt keinen Output, vermutlich weil du sie quasi auf M4L mappst:
Ist das ein Versuch die ANSI vs ISO Diskrepanzen zu lösen? Bei mir hats komischerweise überhaupt keine Auswirkung wenn ich in den MacOS system settings zwischen ANSI und ISO umstelle, ich weiß also nicht obs an meinen Settings liegt oder was für Settings ich überhaupt habe. Auf der externen Tastatur bekomme ich ein ` statt dem ^
Edit: Jetzt krieg ich auf dem Macbook auch den ` mit der Taste links von 1.
Das mit dem ˇ wundert mich auch nicht wenn man Neo'sche Layouts und AdnW vergleicht, siehe Screenshot.
1a78e934ca
to6f83711fb2
Das Problem mit ˇ habe ich nur, wenn hier ANSI ausgewählt ist.
Ich habe mir nun ein Magic Keyboard ISO mit TouchID gekauft und nachdem ich die Vendor ID hinzugefügt habe, funktioniert bei mir alles.
ADNW ist nun auch gefixt.
Ah nice, mit Virtual Keyboard in KE auf ISO geht ~ jetzt bei mir.
Ich bin leider noch auf zwei weitere Probleme draufgekommen: Ein „ (M3L + 8) öffnet in KVirc das Emoticon-Menü, weil das dort auf Option + E gemappt ist. Irgendeine Idee wie wir das umgehen können?
Zweites: MacOS screen locken mit Command+Control+q funktioniert nicht (es hat keinen Effekt).
Output vom KE Events Viewer. Die letzten zwei Events sind wenn ich q ohne Modifier drücke. Verwendetes Layout ist Bone.
Anscheinend erwartet macOS bei Command+Control Shortcuts die Keycodes der Tasten, statt der Buchstaben.
Wenn ich Q und P per Karabiner vertausche (ABC Extended Layout), funktioniert der Shortcut für mich.
Ich denke daher, dass der beste Kompromiss ist, die Neo-Layouts komplett in Karabiner zu implementieren.
Vorteile
Nachteile
@Mike1
Ich habe die Layouts (Neo, NeoQwertz, Bone, Mine, Noted, AdNW, KOY und VOU) nun implementiert.
Um diese zu testen, müssen beide Regelsätze (neo2.json und neo_layouts_based_on_abc_extended_layout.json) nach
~/.config/karabiner/assets/complex_modifications/
kopiert werden.Außerdem, falls noch nicht geschehen, müssen die modifizierten Neo-Layouts aus diesem Pull Request wieder mit denen aus dem Upstream erzetzt werden.
Für die Layouts aus dem neuen Regelsatz muss das ABC Extended Layout ausgewählt sein. Danach können alle bisherigen Neo-Regeln und die jeweilige Regel für das Neo-Layout aus dem neuen Regelsatz aktiviert werden.
Um ein PC-Keyboard zu nutzen, müssen für dieses folgende Modifikationen aktiviert werden:
Wenn es alles soweit in Ordnung ist, würde ich diesen Pull Request dann schließen und die Neo2 Dokumentation anpassen.
Jetzt hab ich endlich mal daran gedacht das mit dem built-in ABC Extended Layout und Karabiner Elements auszuprobieren.
Sieht soweit ganz gut aus, meine größten Probleme:
Also der größte Vorteil den ich aktuell sehe ist das man ohne Installation eines eigenen .keylayouts auskommt und ich momentan nur die eine einzige Rule „Bone“ in KE brauche.
Ich bin momentan dabei wieder etwas Zeit in das Neo2-Layout auf dem Mac zu investieren. Ich habe mir den PR (und den bereits gemergten für Karabiner Elements) angeschaut. Kann man den aktuellen Stand wie folgt zusammenfassen?
.keylayout
-file und mit dem "ABC - Extended"-Layout parallel existieren? Dieser PR ersetzt also nicht zwingend die bestehende Implementierung?Ein Nachteil der "ABC - Extended"-Variante ist aus meiner Sicht noch, dass der Keyboard Viewer dann nicht mit dem tatsächlichen Layout übereinstimmt.
Grundsätzlich zweifle ich daran, dass sich das Problem der Option-Shortcuts komplett lösen lässt. Eigentlich bin ich der Meinung, dass Option + irgendwas ohne weiteren Modifier auf Mac nie ein Shortcut sein sollte. Es gibt halt nicht die Unterscheidung zwischen Alt und Alt Gr, sodass Option in Abhängigkeit vom Tastaturlayout immer dazu dienen kann bestimmte Sonderzeichen zu erzeugen. Wird Option + irgendwas dann ein Shortcut zugewiesen, kann es natürlich zu einer Kollision bzw. Doppelbelegung kommen und es hängt von der jeweiligen Software ab, was von beiden Vorrang hat. Da Neo2 besonders viele Zeichen auf Ebene 3 hat, ist das Problem hier natürlich verstärkt im Vergleich zu den meisten anderen Tastaturlayouts. Des Weiteren ist nicht mal zwingend klar, ob alle User immer die gleiche Vorrangregelung haben wollen ...
Natürlich ist es aussichtlos darauf zu setzen, dass solche Shortcuts nicht mehr verwendet werden. Aber es erscheint mir zweifelhaft, dass sie eine universelle Lösung finden lässt. Daher hilft es vielleicht nur verschiedene Optionen anzubieten in der Hoffnung, dass für die meisten eine der Optionen eine zufriedenstellende Lösung ist ...
Die Implementierung mit dem ABC Layout hat den Vorteil das man nur noch die Karabiner Elements Regel braucht weil das ABC Layout mit dem Betriebssystem ausgeliefert wird.
Für mich ist der größte Nachteil das Umlaute mit toten Tasten erzeugt werden (was z.B. bei Remote Desktop Lösungen ein Problem sein kann) und das z.B. doppeltes Drücken von ˆ ein U+02C6 MODIFIER LETTER CIRCUMFLEX ACCENT statt nur dem CIRCUMFLEX ACCENT ergibt.
Ja, dieser PR kann geschlossen werden.
Die neuen Karabiner Modifications und die vorherigen können parallel aktiviert sein. Erstere sind nur aktiv, wenn das ABC Extended Layout ausgewählt wurde.
Ebene 5 und 6 können weiterhin genutzt werden, wenn zum nativen Layout gewechselt wird.
Pull request closed