Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kbd-go60-i3-code-german

Work in Progress

Dieses Repository beschreibt einen persönlichen MoErgo-Go60-Entwurf, der aktiv weiterentwickelt wird. Layout, Build-Pfad, JSON-Generator und Doku können sich kurzfristig ändern.

Persönliches MoErgo Go60-Layout für:

  • deutsches OS-Layout unter Linux
  • i3 / Regolith
  • Coding, Navigation und Zahleneingabe ohne häufiges Verlassen der Home Row

Aktueller Stand

Das Repo enthält inzwischen zwei technische Zielpfade für dasselbe Layout:

  • config/go60.keymap + config/go60.conf Lokaler ZMK-Pfad für den klassischen Firmware-Build. Hier ist das Layout als 4-Layer-Variante umgesetzt: Base, NAV, Numpad, Magic. AltGr läuft über echten RALT plus Mod-Morphs für ä/ö/ü/ß; zusätzlich erzeugt ein Long-Press (300ms) auf A/O/U direkt ä/ö/ü (phone-style).
  • scripts/build_moergo_json.py -> moergo-layout.json Upload-Pfad für den MoErgo-Web-Editor. Hier wird zusätzlich ein 5. Layer AltGr erzeugt, weil der Editor Custom-Behaviors anders modelliert als die lokale ZMK-Keymap. Dieser Pfad ist aktuell der bevorzugte Weg für Builds mit per-Key-LED-Farben.

Die ergonomische Grundidee bleibt in beiden Pfaden gleich:

  • Home-Row-Mods im GACS-Schema
  • linke Thumb-Seite für BkSp, NAV, Numpad, Super
  • rechte Thumb-Seite für Space, AltGr, Ctrl, Enter
  • rechte Hand als Numpad auf eigenem Layer
  • Magic-Layer für BT, RGB, Reset und Bootloader
  • Touchpads: links Scroll, rechts Cursor

Hinweis – optimiert für Rechtshänder. Inhalts-Cluster (Numpad- Ziffern, NAV-Pfeile, Maus-Cursor) sitzen auf der rechten Hand; Layer-Trigger und Modifier-Halte (NAV, Numpad, Magic, HRM-Mods) sitzen primär auf der linken Hand. Linkshänder müssten das Layout spiegeln (Trigger auf RH, Inhalt auf LH).

Neu in den letzten Commits:

  • Umlaut-Long-Press (300ms) auf A/O/Uä/ö/ü; Shift bleedet durch → Ä/Ö/Ü. AltGr+a/o/u/s funktioniert weiterhin als Mod-Morph (auf der Tap-Seite verdrahtet). A verliert dabei die HRM-Super-Rolle (Super sitzt dediziert auf LH C2R5).
  • NAV+AltGr+Pfeil = Window-Focus in i3/Regolith. Inner Mod-Morph morpht RALT zu LGUI, sodass Window-Switching einhändig läuft (LH-Daumen NAV + RH-Daumen AltGr + RH-Pfeil). Move bleibt Shift-HRM (F) + AltGr + PfeilSuper+Shift+Pfeil via Bleed.
  • LH-Scroll auf 1/4 (vorher 1/2 noch zu schnell).
  • Numpad-Trigger umgezogen auf LH T3 (äußere Daumentaste): Hold = momentary, Doppel-Tap = tog L_NUMPAD an/aus auf derselben Taste. Vorher saß der Trigger auf LH C3R5 (Del-Position), war mit dem Daumen aber mühsam zu erreichen — und Alt am Daumen wurde fast nie genutzt. Die zwei wurden getauscht: Alt wohnt jetzt auf C3R5, Numpad auf T3. Del bleibt auf RH C6R4. Math-Trio ± · × blieb auf Numpad-R1 (historischer Workaround der alten Trigger-Position).
  • NAV-Doppelbelegung: Alt+Pfeil/PgUp/PgDn = Media (Vol±, Prev/ Next, Play/Pause, Mute) per Mod-Morph. Shift+Pfeil (Selektion) und Ctrl+Pfeil (Wortsprung) bleiben Standard. Grüne Media- Tasten auf NAV LH R2 bleiben als direkter Zugriff.
  • Multi-Bracket-Tasten im Numpad: RH C2R1/C3R1 senden (), mit LH-Modifier-Tasten auch [] (Shift), {} (Ctrl) und <> (Alt)
  • Unicode-Math-Symbole auf Numpad LH: π ∞ ∇ √ Σ ∫ ± · × per Ctrl+Shift+U (Linux/IBus, funktioniert in GTK-Apps)
  • Formel-Variablen X Y Z T auf Numpad LH
  • NAV mit Home-Row-Mod-Passthrough: Ctrl+Pfeil für Wortsprung, Ctrl+Shift+Pfeil für Wortauswahl funktioniert unverändert
  • Print-taugliches SVG-Coloring: Buchstaben, Ziffern, Operatoren, Klammern/Syntax, Separatoren und Action-Tasten jeweils eigene Farbe
  • AltGr-Lernlabels auf Base: ä ö ü ß und { [ ] } \ in der Ecke der jeweiligen Basistaste
  • RGB-Underglow-Defaults in config/go60.conf
  • Python-Generator für MoErgo-JSON-Uploads

Layer

Die folgenden SVGs werden aus keymap.yaml per uv run draw generiert und durch den Pre-Commit-Hook aktuell gehalten.

Base – DE-QWERTZ mit Home-Row-Mods

Base Layer

Standard-Schreibebene. Home-Row-Mods im xACS-Schema: links S=Alt, D=Ctrl, F=Shift, gespiegelt rechts auf ; L K J plus ;=Super. Die A-Position trägt kein Super-HRM (Super sitzt dediziert auf LH C2R5), sondern reagiert auf Long-Press (300ms) → ä. O und U analog für ö/ü. Tap sendet den Buchstaben; balanced Flavor, 280ms für die HRMs, 300ms für den Umlaut-Long-Press.

Als Lernhilfe tragen viele Tasten zusätzlich das Shift-Zweitzeichen (z. B. ! " § $ % über 1 2 3 4 5). Umlaute sind auf zwei Wegen erreichbar: Long-Press auf A/O/Uä/ö/ü (Shift bleed → Ä/Ö/Ü), oder AltGr+a/o/u/sä/ö/ü/ß (Mod-Morph). ß hat zusätzlich eine eigene Taste auf RH C6R1.

Daumen links (inside → outside): BkSp (Tap-Dance auf Ctrl+BkSp für Wortlöschen), NAV (Hold aktiviert NAV-Layer), Numpad (Tap-Dance: hold = momentary, Doppel-Tap = toggle). Alt sitzt auf LH C3R5 (Bottom-Row, mittlere Position). Daumen rechts (outside → inside): Ctrl, AltGr, Space. AltGr am rechten Daumen macht die ganze deutsche AltGr-Ebene ohne Layer-Wechsel erreichbar.

NAV – Navigation, F-Keys, Media

NAV Layer

Aktiviert durch Halten des mittleren linken Daumens. Rechte Hand trägt Pfeile (← ↓ ↑ → auf J K I L-Positionen), Home/End, PgUp/PgDn und F1…F12. Linke Hand trägt in R2 die Medientasten Prev/Play/Next plus Vol+/Vol-/Mute.

Wichtig: die Home-Row-Positionen (A S D F) sind auf NAV komplett transparent. Dadurch greifen die Base-HRMs weiter, und Kombinationen wie Ctrl+→ (Wortsprung) oder Ctrl+Shift+→ (Wortauswahl) funktionieren, ohne den NAV-Layer wieder verlassen zu müssen.

Window-Switching in i3/Regolith einhändig: NAV+AltGr+PfeilSuper+Pfeil (Focus). Inner Mod-Morph konsumiert RALT und emittiert LGUI, sodass der Host nur Super+Pfeil sieht. Move = zusätzlich Shift-HRM (F) halten → Super+Shift+Pfeil via Bleed.

Bedien-Matrix (am Beispiel , gespiegelt für ↑ ↓ →)

Operation Tastenkombi LH-Finger
Cursor ← NAV + J 1 (Daumen)
Selektion ← NAV + F-Shift + J 2 (Daumen+Index)
Wort-Sprung ← NAV + D-Ctrl + J 2 (Daumen+Mid)
Wort-Selektion ← NAV + D + F + J 3
Window-Focus ← NAV + AltGr (RH-T2) + J 1 (Daumen)
Window-Move ← NAV + F-Shift + AltGr + J 2 (Daumen+Index)
Workspace 1..9 Super (LH C2R5) + Zahl 1
Window→Workspace N Super + F-Shift + Zahl 2
Workspace prev/next aktuell durch Alt+Pfeil=Media verdeckt

J ist hier die NAV-Pfeil-Position (). Modifier kommen aus den HRMs auf LH R3 (F=Shift, D=Ctrl, S=Alt) bzw. dem AltGr am rechten Daumen. Super liegt dediziert auf LH C2R5 (Bottom-Row, kein HRM). Home/End sitzen auf den NAV-Positionen H/; als 1-Daumen-Operation; PgUp/PgDn auf U/O.

Numpad – Ziffernblock, Mathematik, Formelvariablen

Numpad Layer

Per Hold auf LH T3 (äußere Daumentaste) momentary aktiv, per Doppel-Tap getoggled; ein zweiter Doppel-Tap auf derselben Taste schaltet wieder aus (tog L_NUMPAD, kein separater Exit-Key auf der RH nötig). Del wohnt auf RH C6R4 (wo früher der Num-Toggle saß). Rechte Hand wird zum klassischen Ziffernblock mit Mathe-Spalte / * - + ⏎ am Pinky, 0 . , auf der Daumenzeile, = # auf der linken Index-Spalte.

Linke Hand ist grundsätzlich deaktiviert (kein Buchstabenleckagerisiko), mit gezielten Ausnahmen:

  • Multi-Bracket-Mods auf R3: S=Alt, D=Ctrl, F=Shift als reine Modifier-Tasten. In Kombination mit RH C2R1/C3R1 (( / )) ergeben sie [] (Shift), {} (Ctrl) und <> (Alt). Ein einziges Finger-Paar für alle Klammerarten.
  • UTF-8 Math-Symbole: ± · × auf R1 C5/C4/C3 (historisch von R4 nach oben verschoben, als der Numpad-Trigger noch auf C3R5 saß), π ∞ ebenfalls auf R1, ∇ √ Σ ∫ auf R2. Intern Makros, die per Ctrl+Shift+U + Hex + Space in GTK-Apps (Chrome, gedit, gnome-terminal, …) den Unicode-Codepoint einfügen. Alacritty/kitty/xterm blockieren IBus – dort funktionieren die Makros nicht.
  • Formel-Variablen T (R2), Y X (R4) und Z (RH R2). Grau eingefärbt, damit sie visuell nicht mit den blauen Ziffern kollidieren.
  • ^-Passthrough ganz oben links für Potenzen; mit Shift (F-Position) ergibt sich °.

Magic – BT, RGB, Reset

Magic Layer

MoErgo-Referenzlayout, aktiviert durch Halten von LH C6R4. Tap alleine zeigt den RGB-Status. Hier leben Bluetooth-Profilwahl (BT0…BT3, BT-Clr, BT-ClrAll), RGB-Steuerung (Helligkeit, Farbton, Sättigung, Geschwindigkeit, Effekt-Toggle), Reset, Bootloader und USB-Output.

Dokumentations-Einstieg

  • layout.md Aktuelle Belegung, Thumb-Konzept, Layer-Übersicht und Unterschiede zwischen lokalem ZMK- und MoErgo-Editor-Pfad.
  • design-decisions.md Warum das Layout so gebaut ist und warum der Editor-Pfad technisch leicht vom lokalen ZMK-Pfad abweicht.
  • config/README.md Details zum lokalen ZMK-Build, zur Firmware-Konfiguration und zur Abgrenzung gegenüber dem JSON-Upload-Workflow.

Die übrigen Markdown-Dateien bleiben als historische Begleitdokumente im Repo, sind aber nicht mehr der primäre Einstieg.

Repository-Struktur

Pfad Zweck
keymap.yaml Ergonomischer Layout-Entwurf und SVG-Farbannotation
config/go60.keymap Lokale ZMK-Device-Tree-Keymap
config/go60.conf Kconfig-Optionen, aktuell inkl. RGB-Underglow-Defaults
scripts/build_moergo_json.py Generator für den MoErgo-Web-Editor
moergo-layout.json Generiertes Upload-Artefakt für my.moergo.com/go60
example-led-keys-go60.keymap Referenzdatei aus der MoErgo-LED-/Editor-Welt
example-colored-led-keys.json Referenz-JSON für farbige Tasten im Editor
assets/*.svg Gerenderte Layer-SVGs aus keymap.yaml
src/my_split_keyboard/ Python-Helper für die SVG-Erzeugung

Lokaler SVG-Workflow

uv run draw

Regeneriert die SVGs in assets/ aus keymap.yaml.

MoErgo-JSON-Workflow

uv run python scripts/build_moergo_json.py

Erzeugt moergo-layout.json. Diese Datei kann in den MoErgo Web-Editor hochgeladen werden. Der JSON-Weg ist aktuell nötig, wenn Builds die im Generator definierten per-Key-Farben enthalten sollen.

Firmware-Build

Der klassische ZMK-Build läuft weiterhin über GitHub Actions auf Basis von config/. Das resultierende Artifact ist go60.uf2.

Wichtig:

  • Der lokale config/-Pfad bildet das Layout funktional ab.
  • Der MoErgo-JSON-Pfad bildet zusätzlich editor- und LED-spezifische Details ab.
  • Beide Pfade sollen semantisch nah beieinander bleiben, sind aber aktuell nicht byte-identisch.

Git-Hook

git config core.hooksPath .githooks

Der Hook regeneriert die SVGs automatisch, wenn die Layout-Quellen geändert werden.

License

MIT, siehe LICENSE.

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages