auto-update-daily-20260202
1#+title: Eyelash Corne ZMK Config
2
3Custom ZMK firmware for the Eyelash Corne keyboard (42-key split, nice!nano v2, wireless Bluetooth).
4
5* Features
6
7- Layouts: Bépo (primary), ErgoL, QWERTY
8- Home row mods, smart numword layer, combos, mod-morph, leader keys
9- Mouse emulation, French/currency Unicode support
10- nice!view display (gem animation), RGB underglow (auto-off on idle)
11- Power: 12min sleep timeout, +8dBm BT transmission
12
13* Build & Flash
14
15#+begin_src bash
16./go.sh build # Build both sides (output: firmwares/)
17./go.sh flash # Build and flash left/right (bootloader mode prompts)
18#+end_src
19
20Supports auto-mount (=/run/media/$USER/NICENANO=) and manual mount (=/mnt=).
21
22* Keymap Visualization
23
24[[file:../eyelash_corne.svg]]
25
26* Layers
27
28| Layer | Name | Description |
29|-------+------------+----------------------------------------------------------|
30| L0 | Bépo | Primary French layout, home row mods, Unicode accents |
31| L1 | ErgoL | Alternative French layout |
32| L2 | QWERTY | Standard layout |
33| L3 | Accents | French vowels (´ ` ^ ¨), Æ Œ Ñ Ç |
34| L4 | Symbols | Programming symbols, brackets, operators |
35| L5 | Numbers | Calculator-style numpad |
36| L6 | Navigation | Arrows, page nav, shortcuts |
37| L7 | Function | F1-F12, media, system controls |
38
39*Home row mods (Bépo)*: Left: A(GUI) U(Alt) I(Shift) E(Ctrl) | Right: C(Hyper) T(Ctrl) S(Shift) R(Alt) N(GUI)
40
41* Configuration
42
43- *Power*: 12min sleep timeout, RGB auto-off, soft off support
44- *Bluetooth*: +8dBm transmission, multiple devices
45- *Display*: nice!view gem animation (4.8s interval), shows layer/battery/BT
46- *Mouse*: Movement 1200, scroll 20, idle 125ms
47
48Build config (=build.yaml=): Left/right halves with nice!view, settings reset
49
50* Leader Key Sequences
51
52Leader key is activated with the *RH0+RH2 combo* (right thumb cluster: Shift + Alt on QWERTY). After activation, press a sequence of keys (timeout: 300ms per key) to insert text snippets or launch applications.
53
54** Layout Switching
55
56| Sequence | Output | Description |
57|----------+---------------+----------------------------|
58| l b | Switch to BÉP | Switch to Bépo layout |
59| l e | Switch to ERG | Switch to ErgoL layout |
60| l q | Switch to QWE | Switch to QWERTY layout |
61
62** Development Patterns - General
63
64| Sequence | Output | Description |
65|----------+---------------------+-----------------------------|
66| c n | nil | Go nil value |
67| c e | if err != nil {↵⇥ | Go error check |
68| c l | console.log() | JavaScript console.log |
69| c p | fmt.Println() | Go fmt.Println |
70| c f | function() {} | JavaScript function |
71| c a | () => {} | JavaScript arrow function |
72
73** Development Patterns - Python
74
75| Sequence | Output | Description |
76|----------+----------------------------------------------+--------------------------|
77| p i | if __name__ == "__main__":↵⇥ | Python main block |
78| p d | def ():↵⇥ | Python function def |
79| p c | class :↵⇥ | Python class def |
80| p p | print(f"") | Python f-string print |
81| p t | try:↵⇥↵except Exception as e:↵⇥ | Python try/except |
82| p w | with open("", "r") as f:↵⇥ | Python with open |
83
84** Development Patterns - Emacs Lisp
85
86| Sequence | Output | Description |
87|----------+---------------------+------------------------------|
88| e d | (defun ()↵ | Emacs Lisp defun |
89| e i | (interactive) | Emacs Lisp interactive |
90| e l | (let (( | Emacs Lisp let binding |
91| e s | (setq ) | Emacs Lisp setq |
92| e m | (message "") | Emacs Lisp message |
93| e r | (require ') | Emacs Lisp require |
94
95** Development Patterns - Nix
96
97| Sequence | Output | Description |
98|----------+----------------------------------+--------------------------------|
99| n f | { pkgs, ... }: | Nix function signature |
100| n l | let↵⇥↵in↵ | Nix let/in expression |
101| n w | with pkgs; [↵⇥↵] | Nix with statement |
102| n i | inherit ; | Nix inherit keyword |
103| n b | buildInputs = [ ]; | Nix buildInputs attribute |
104| n p | pkgs.writeShellScriptBin "" ''↵⇥↵'' | Nix shell script wrapper |
105
106** Import Patterns
107
108| Sequence | Output | Description |
109|----------+---------------------------------+--------------------------------|
110| i p | import | Python import |
111| i f | from import | Python from import |
112| i n | { pkgs }: {↵⇥↵} | Nix module import |
113| i e | (use-package ↵⇥ | Emacs use-package |
114
115** Personal Macros
116
117| Sequence | Output | Description |
118|----------+------------------------------------------------+-----------------------------|
119| m e | vincent@sbr.pm | Email address |
120| m g | Vincent Demeester <vincent@sbr.pm> | Git signature |
121| m s | --↵Vincent Demeester↵vincent@sbr.pm | Email signature |
122
123** Application Shortcuts
124
125These leader sequences trigger niri window manager keybindings:
126
127| Sequence | Keybinding | Application |
128|----------+---------------------+----------------------|
129| a d | Mod+D | Fuzzel (app launcher)|
130| a e | Mod+Shift+Enter | Emacs (client) |
131| a t | Mod+Enter | Kitty (terminal) |
132| a j | Mod+Control+D | Rofimoji (emoji) |
133| a v | Mod+Control+V | Cliphist (clipboard) |
134| a r | Mod+Shift+D | Raffi (launcher) |
135
136* Inspirations and References
137
138- https://github.com/urob/zmk-config
139- https://github.com/manna-harbour/miryoku_zmk
140- https://github.com/mctechnology17/zmk-config
141- https://github.com/urob/zmk-helpers
142- https://github.com/rayduck/pnohty
143- https://sunaku.github.io/home-row-mods.html
144- https://sunaku.github.io/ergohaven-remnant-keyboard.html
145- https://github.com/JeffDess/zmk-config
146- https://github.com/Townk/zmk-config
147- https://github.com/GPeye/hammerbeam-slideshow
148- https://github.com/zzeneg/zmk-nice-view-hid
149- https://github.com/GPeye/urchin-peripheral-animation
150- https://github.com/GPeye/nice-view-mod
151- https://github.com/n3oney/zmk-config
152- https://github.com/moutis/zmk-config
153- https://github.com/englmaxi/zmk-config
154- https://github.com/SethMilliken/zmk-config
155- https://github.com/minusfive/knucklehead