flake-update-20260505
..
rw-r--r--
9 B
rw-r--r--
1.5 KB
rw-r--r--
7.4 KB
rw-r--r--
719 B
rwxr-xr-x
1.3 KB

Eyelash Corne ZMK Config

Custom ZMK firmware for the Eyelash Corne keyboard (42-key split, nice!nano v2, wireless Bluetooth).

Features

  • Layouts: Bépo (primary), ErgoL, QWERTY
  • Home row mods, smart numword layer, combos, mod-morph, leader keys
  • Mouse emulation, French/currency Unicode support
  • nice!view display (gem animation), RGB underglow (auto-off on idle)
  • Power: 12min sleep timeout, +8dBm BT transmission

Build & Flash

./go.sh build  # Build both sides (output: firmwares/)
./go.sh flash  # Build and flash left/right (bootloader mode prompts)

Supports auto-mount (/run/media/$USER/NICENANO) and manual mount (/mnt).

Keymap Visualization

Eyelash Corne Keymap

Layers

Layer Name Description
L0 Bépo Primary French layout, home row mods, Unicode accents
L1 ErgoL Alternative French layout
L2 QWERTY Standard layout
L3 Accents French vowels (´ ` ^ ¨), Æ Œ Ñ Ç
L4 Symbols Programming symbols, brackets, operators
L5 Numbers Calculator-style numpad
L6 Navigation Arrows, page nav, shortcuts
L7 Function F1-F12, media, system controls

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)

Configuration

  • Power: 12min sleep timeout, RGB auto-off, soft off support
  • Bluetooth: +8dBm transmission, multiple devices
  • Display: nice!view gem animation (4.8s interval), shows layer/battery/BT
  • Mouse: Movement 1200, scroll 20, idle 125ms

Build config (build.yaml): Left/right halves with nice!view, settings reset

Leader Key Sequences

Leader 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.

Layout Switching

Sequence Output Description
l b Switch to BÉP Switch to Bépo layout
l e Switch to ERG Switch to ErgoL layout
l q Switch to QWE Switch to QWERTY layout

Development Patterns - General

Sequence Output Description
c n nil Go nil value
c e if err != nil {↵⇥ Go error check
c l console.log() JavaScript console.log
c p fmt.Println() Go fmt.Println
c f function() {} JavaScript function
c a () => {} JavaScript arrow function

Development Patterns - Python

Sequence Output Description
p i if name == “main":↵⇥ Python main block
p d def ():↵⇥ Python function def
p c class :↵⇥ Python class def
p p print(f”") Python f-string print
p t try:↵⇥↵except Exception as e:↵⇥ Python try/except
p w with open("", “r”) as f:↵⇥ Python with open

Development Patterns - Emacs Lisp

Sequence Output Description
e d (defun ()↵ Emacs Lisp defun
e i (interactive) Emacs Lisp interactive
e l (let (( Emacs Lisp let binding
e s (setq ) Emacs Lisp setq
e m (message “”) Emacs Lisp message
e r (require ‘) Emacs Lisp require

Development Patterns - Nix

Sequence Output Description
n f { pkgs, … }: Nix function signature
n l let↵⇥↵in↵ Nix let/in expression
n w with pkgs; [↵⇥↵] Nix with statement
n i inherit ; Nix inherit keyword
n b buildInputs = [ ]; Nix buildInputs attribute
n p pkgs.writeShellScriptBin "" ‘’↵⇥↵’’ Nix shell script wrapper

Import Patterns

Sequence Output Description
i p import Python import
i f from import Python from import
i n { pkgs }: {↵⇥↵} Nix module import
i e (use-package ↵⇥ Emacs use-package

Personal Macros

Sequence Output Description
m e vincent@sbr.pm Email address
m g Vincent Demeester vincent@sbr.pm Git signature
m s –↵Vincent Demeester↵vincent@sbr.pm Email signature

Application Shortcuts

These leader sequences trigger niri window manager keybindings:

Sequence Keybinding Application
a d Mod+D Fuzzel (app launcher)
a e Mod+Shift+Enter Emacs (client)
a t Mod+Enter Kitty (terminal)
a j Mod+Control+D Rofimoji (emoji)
a v Mod+Control+V Cliphist (clipboard)
a r Mod+Shift+D Raffi (launcher)

Inspirations and References