Pārlūkot izejas kodu

Modular version by default, fixes multiple layouts bugs (#20)

* chore: git ignore kanata exe to be able to have it directly in the config dir

* refactor: move modularized version to be the default and only one

* fix: nav/num/symbols layers for all layouts
trilowy 1 gadu atpakaļ
vecāks
revīzija
948bfea3d8
46 mainītis faili ar 909 papildinājumiem un 812 dzēšanām
  1. 1 0
      .gitignore
  2. 77 19
      README.md
  3. 0 0
      img/selenium33/all.svg
  4. 0 0
      img/selenium33/index.html
  5. 0 0
      img/selenium33/navigation.svg
  6. 0 0
      img/selenium33/numrow.svg
  7. 17 28
      kanata/README.md
  8. 0 42
      kanata/arsenik_easy_altgr.kbd
  9. 0 52
      kanata/arsenik_easy_ansi.kbd
  10. 0 52
      kanata/arsenik_hrm_altgr.kbd
  11. 0 62
      kanata/arsenik_hrm_ansi.kbd
  12. 88 0
      kanata/defalias_azerty_pc.kbd
  13. 87 0
      kanata/defalias_bepo_pc.kbd
  14. 89 0
      kanata/defalias_ergol_pc.kbd
  15. 89 0
      kanata/defalias_qwerty-lafayette_pc.kbd
  16. 87 0
      kanata/defalias_qwerty_mac.kbd
  17. 88 0
      kanata/defalias_qwerty_pc.kbd
  18. 88 0
      kanata/defalias_qwertz_pc.kbd
  19. 1 1
      mods/atomic/deflayer_base.kbd
  20. 22 0
      kanata/deflayer_base_lt.kbd
  21. 7 10
      mods/atomic/deflayer_base_lt_hrm.kbd
  22. 5 5
      mods/atomic/deflayer_navigation.kbd
  23. 5 5
      mods/atomic/deflayer_navigation_vim.kbd
  24. 14 0
      kanata/deflayer_symbols_1dk.kbd
  25. 26 0
      kanata/deflayer_symbols_1dk_num.kbd
  26. 14 0
      kanata/deflayer_symbols_noop.kbd
  27. 29 0
      kanata/deflayer_symbols_noop_num.kbd
  28. 1 1
      mods/atomic/defsrc_mac.kbd
  29. 1 1
      mods/atomic/defsrc_mac_anglemod.kbd
  30. 1 1
      mods/atomic/defsrc_pc.kbd
  31. 1 1
      mods/atomic/defsrc_pc_anglemod.kbd
  32. 71 0
      kanata/kanata.kbd
  33. 0 16
      mods/atomic/README.md
  34. 0 13
      mods/atomic/defalias_mac.kbd
  35. 0 13
      mods/atomic/defalias_pc.kbd
  36. 0 25
      mods/atomic/deflayer_base_lt.kbd
  37. 0 42
      mods/atomic/deflayer_symbols_1dk.kbd
  38. 0 15
      mods/atomic/deflayer_symbols_ansi.kbd
  39. 0 51
      mods/atomic/deflayer_symbols_azerty.kbd
  40. 0 51
      mods/atomic/deflayer_symbols_qwertz.kbd
  41. 0 59
      mods/atomic/kanata.kbd
  42. 0 77
      mods/selenium33/README.md
  43. 0 170
      mods/selenium33/selenium.kbd
  44. 0 0
      qmk/selenium33/keyboards/ferris/keymaps/1dk/config.h
  45. 0 0
      qmk/selenium33/keyboards/ferris/keymaps/1dk/keymap.c
  46. 0 0
      qmk/selenium33/keyboards/ferris/keymaps/1dk/rules.mk

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+kanata*.exe

+ 77 - 19
README.md

@@ -1,19 +1,23 @@
 Arsenik
 ================================================================================
 
-A beginner-friendly, [Miryoku][1]-like approach to minimize finger movements:
+Configure your keyboard (even if it is not programmable) with a
+beginner-friendly, [Miryoku][1]-like approach to minimize finger movements!
 
-- 3 home-row mods per hand for <kbd>Ctrl</kbd>, <kbd>Alt</kbd>, <kbd>Super</kbd>
-- 3 layer-tap keys under the thumbs: <kbd>Shift</kbd>/<kbd>Backspace</kbd>,
-<kbd>Navigation</kbd>/<kbd>Space</kbd>, <kbd>Symbol</kbd>/<kbd>Return</kbd>
+You can choose your options:
+- [angle-mod](https://colemakmods.github.io/ergonomic-mods/angle.html) (by
+default the only option activated)
+- 3 home-row mods (HRM) per hand for <kbd>Ctrl</kbd>, <kbd>Alt</kbd>, <kbd>Super</kbd>
+- 3 layer-tap keys under the thumbs: <kbd>Alt</kbd> (or <kbd>Shift</kbd> in 
+HRM)/<kbd>Backspace</kbd>, <kbd>Navigation</kbd>/<kbd>Space</kbd>,
+<kbd>Symbol</kbd>/<kbd>Return</kbd>
 
 ![base, navigation and sym layers on a 33-key keyboard](img/all.svg)
 
 **Bring the keys to your fingers, rather than moving your fingers to the keys!**
 
 - A long press on the <kbd>Return</kbd> key brings up the <kbd>Symbol</kbd>
-layer, where all programming symbols are arranged for comfort and efficiency,
-Dvorak-like.
+layer, where all programming symbols are arranged for comfort and efficiency.
 - A long press on the <kbd>Space</kbd> bar brings up the <kbd>Navigation</kbd>
 layer, with a numpad, cursor navigation (<kbd>ESDF</kbd>) and one-hand shortcuts.
 
@@ -49,14 +53,14 @@ a step-by-step approach.
 
 ### 1. Supercharge Your Thumbs
 
-If you’re new to mod-taps, we suggest to start with the “easy” variants where
-only the thumbs are affected:
+If you’re new to mod-taps, we suggest to start by adding the “layer-tap” option
+where only the thumbs are affected:
 
-- the left thumb key remains a <kbd>Cmd</kbd> or <kbd>Alt</kbd> key when hold,
+- the left thumb key remains a <kbd>Cmd</kbd> or <kbd>Alt</kbd> key when held,
 but emits a <kbd>Backspace</kbd> when tapped;
-- the right thumb key brings the <kbd>Symbols</kbd> layer when hold (similar to
+- the right thumb key brings the <kbd>Symbols</kbd> layer when held (similar to
 an <kbd>AltGr</kbd> key), and emits <kbd>Return</kbd> when tapped;
-- the spacebar brings the <kbd>Navigation</kbd> layer when hold.
+- the spacebar brings the <kbd>Navigation</kbd> layer when held.
 
 ![alt, navigation and sym layers under the thumbs](img/base_easy.svg)
 
@@ -70,9 +74,9 @@ When you are familiar with mod-taps, it’s time to enable them on the homerow
 with the “hrm” variants:
 
 - <kbd>FDS</kbd> and <kbd>JKL</kbd> become <kbd>Ctrl</kbd>, <kbd>Alt</kbd>,
-<kbd>Super</kbd> when hold long enough;
+<kbd>Super</kbd> when held long enough;
 - the left thumb key can now emit a <kbd>Shift</kbd> rather than <kbd>Alt</kbd>
-wen hold.
+when held.
 
 ![homerow mods on SDF keys](img/base_hrm.svg)
 
@@ -84,15 +88,73 @@ thumb key, and symmetrical modifiers on the homerow.
 - the 300 ms delay before a key becomes a modifier has been chosen to be easy
 for beginners. Once used to mod-taps, you may want to reduce it so keyboard
 shortcuts can be done more quickly;
-- adding new layers should be easy, even without additional thumb keys — check
-[the Selenium33 mod][11] to get some ideas.
+- more layers available to enable (Vim-navigation, num-row, etc).
+
+#### A Vim-friendly mod:
+
+- 3 home-row mods per hand for <kbd>Ctrl</kbd>, <kbd>Alt</kbd>, <kbd>Super</kbd>
+- 3 layer-tap keys under the thumbs: <kbd>Shift</kbd>/<kbd>Backspace</kbd>,
+<kbd>Navigation</kbd>/<kbd>Space</kbd>, <kbd>Symbol</kbd>/<kbd>Return</kbd>
+
+![base, navigation and sym layers on a 33-key keyboard](img/selenium33/all.svg)
+
+It uses 4 layers (instead of 3 for Arsenik), which makes it a natural fit
+for 34-key keyboards like the [Ferris][34].
+
+- Vim-like navigation in all apps, with any OS layout
+- super-comfortable <kbd>Tab</kbd> and <kbd>Shift</kbd>-<kbd>Tab</kbd>
+- mouse emulation: previous / next and mouse scroll
+- easy left-hand shortcuts
+
+![Vim navigation layer on a 33-key keyboard](img/selenium33/navigation.svg)
+
+This <kbd>Navigation</kbd> layer has a few empty slots on purpose, so you can
+add our own keys or layers.
+
+
+#### NumRow >> NumPad
+
+In <kbd>Symbol</kbd> mode, pressing the left thumb key brings up the
+<kbd>NumRow</kbd> layer:
+
+- all digits are on the home row, in the order you already know
+- the upper row helps with <kbd>Shift</kbd>-digit shortcuts
+- the lower row has dash, comma, dot and slash signs to help with number / date
+inputs
+
+![NumRow layer on a 33-key keyboard](img/selenium33/numrow.svg)
+
+Even on keyboards that *do* have a physical number row, this <kbd>NumRow</kbd>
+layer can be interesting to use in order to minimize finger movements further
+more. And it makes it easier to mix symbols with numbers (e.g. `[0]`).
 
 
 Downloads
 --------------------------------------------------------------------------------
 
+### kanata
+
 [Non-programmable keyboards are supported through kanata.](kanata)
 
+### QMK
+
+The QMK implementation is a bit different:
+
+- it takes advantage of the 4 thumb keys
+- the Navigation layer uses a mouse emulation on the left hand
+
+In fact, this is what I ended up with for my beloved Ferris in the first place,
+and Arsenik/Selenium is an attempt to fit most of this magic into my laptop keyboard.
+
+![QMK code](qmk/selenium33/keyoards/ferris/keymaps/1dk)
+
+```bash
+# from the `qmk_firmware` root:
+make ferris/0_2/bling:1dk:flash
+```
+
+### Others
+
 Other desktop implementations (kmonad, keyd…) would be nice to see as well.
 
 Programmable keyboards should be trivial to configure with QMK, ZMK,
@@ -128,7 +190,6 @@ AltGr layer at all (e.g. QWERTY, Colemak, Workman…), or an optimized AltGr lay
 
 - [Miryoku][1]: 36 keys, 6 layers
 - [Seniply][7]: 34 keys, 6 layers, no layer-taps (“Callum-style”)
-- [Selenium33][11]: 33 keys, 4 layers — a Vim-friendly Arsenik mod
 
 <!-- https://jasoncarloscox.com/writing/combo-mods/ -->
 
@@ -140,13 +201,10 @@ AltGr layer at all (e.g. QWERTY, Colemak, Workman…), or an optimized AltGr lay
 [6]: https://github.com/lobre/shaka34
 [7]: https://stevep99.github.io/seniply/
 [8]: https://getreuer.info/posts/keyboards/symbol-layer/#my-symbol-layer
-[11]: mods/selenium33
 
 
 TODO
 --------------------------------------------------------------------------------
 
-- angle mods!
 - KMonad / Karabiner support
 - sample QMK / ZMK implementations for common keyboards
-- variants for specific OS layouts

mods/selenium33/img/all.svg → img/selenium33/all.svg


mods/selenium33/img/index.html → img/selenium33/index.html


mods/selenium33/img/navigation.svg → img/selenium33/navigation.svg


mods/selenium33/img/numrow.svg → img/selenium33/numrow.svg


+ 17 - 28
kanata/README.md

@@ -1,33 +1,19 @@
 kanata
 ================================================================================
 
+A modularized Arsenik that let you choose your features, e.g.
+angle mods, Vim-like navigation layer, Mac/Azerty/Qwertz support, etc.
 
-Pick Your Poison!
---------------------------------------------------------------------------------
+- load `kanata.kbd` with kanata (installation instructions below)
+- enable each feature by un-commenting the related line
+- live-reload the configuration with Space+Backspace (requires layer-taps)
+
+Configuration options:
 
-| type  | without homerow-mods        | with homerow-mods          | suitable layouts                  |
-| ----- | --------------------------- | -------------------------- | --------------------------------- |
-| ANSI  | [arsenik_easy_ansi.kbd][1]  | [arsenik_hrm_ansi.kbd][3]  | QWERTY, Dvorak, Colemak, Workman… |
-| AltGr | [arsenik_easy_altgr.kbd][2] | [arsenik_hrm_altgr.kbd][4] | [Lafayette42][10], [Ergo-L][11]…  |
-
-[1]: arsenik_easy_ansi.kbd
-[2]: arsenik_easy_altgr.kbd
-[3]: arsenik_hrm_ansi.kbd
-[4]: arsenik_hrm_altgr.kbd
-
-- “Easy” variants don’t use any homerow-mods and leave the left thumb key
-modifier unchanged — but they still use a <kbd>Prog</kbd> layer and put the
-<kbd>Backspace</kbd> and <kbd>Return</kbd> keys under the thumbs. A good
-starting point if you’re new to dual keys.
-- ANSI variants assume all symbols in your keyboard layout are in their
-QWERTY-ANSI positions: works fine with most US layouts but Dvorak users will get
-a slightly different <kbd>Prog</kbd> layer.
-- AltGr variants use your layout’s AltGr layer instead of the <kbd>Prog</kbd>
-layer: perfect for layouts that already have an optimized AltGr layer, such as
-[QWERTY-Lafayette][10] and [Ergo-L][11].
-
-[10]: https://qwerty-lafayette.org/42
-[11]: https://ergol.org
+- key arrangement: Mac or PC, with or without angle mod?
+- base layer: standard, layer-taps, homerow mods?
+- symbols layer: AltGr, QWERTY, QWERTZ, AZERTY?
+- navigation layer: ESDF or HJKL?
 
 Note that kanata can also use the laptop’s trackpoint buttons (e.g. ThinkPad)
 as two additional thumb keys. :-)
@@ -45,6 +31,9 @@ rustup update stable
 cargo install kanata
 ```
 
+Windows users might prefer the `kanata_winIOv2.exe` version as it fixes some
+weird bugs.
+
 Linux users may want to run these extra steps:
 
 <details>
@@ -56,7 +45,7 @@ proper authorisations.
 If you don’t want to run `kanata` with `sudo`, you’ll need to allow `kanata` to
 read from `uinput`. This requires the users to be part of both `input` and
 `uinput` groups.
-Update README.md
+
 For that, you first need to create a `uinput` group if it is not the case yet:
 
 ```bash
@@ -83,8 +72,8 @@ KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
 <details>
 <summary> Making a user-side systemd service for kanata </summary>
 
-Note: This only works if `kanata` is able to run without <pre>sudo</pre> (and are using
-`systemd`).
+Note: This only works if `kanata` is able to run without <pre>sudo</pre> (and
+is using `systemd`).
 
 Using a `systemd service` allows running `kanata` as a daemon, possibly right
 after logging in. Here is a template for a service file:

+ 0 - 42
kanata/arsenik_easy_altgr.kbd

@@ -1,42 +0,0 @@
-;; ANSI sub-layer (let kanata ignore all other keys)
-(defsrc
-  q    w    e    r    t    y    u    i    o    p
-  a    s    d    f    g    h    j    k    l    ;
-  z    x    c    v    b    n    m    ,    .    /
-       lalt           spc            ralt
-)
-
-;; Base layer (active by default when kanata starts up):
-;;  - the 3 main thumb keys become mod/taps
-(deflayer qwerty
-  _    _    _    _    _    _    _    _    _    _
-  _    _    _    _    _    _    _    _    _    _
-  _    _    _    _    _    _    _    _    _    _
-       @alt           @nav           @sym
-)
-
-;; Navigation layer:
-;;  - left: arrows, Tab/Shift-Tab, one-hand shortcuts (Ctrl-AZXCV)
-;;  - right: numpad
-(deflayer numnav
-  tab  home up   end  pgup    /  7  8  9  XX
-  C-a  lft  down rght pgdn    -  4  5  6  0
-  C-z  C-x  C-c  C-v  S-tab   ,  1  2  3  .
-       del            _             esc
-)
-
-;; Special key aliases
-(defalias
-  ;; Main mod-tap: VimNav layer when held, Space when tapped.
-  ;; The space key must be held long enough (300ms) to become a layer shift.
-  nav (tap-hold 200 300 spc (layer-toggle numnav))
-
-  ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
-  ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
-  ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
-  ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
-  alt (tap-hold-press 200 200 bspc lalt)
-  sym (tap-hold-press 200 200 ret ralt)
-)
-
-;; vim: set ft=lisp

+ 0 - 52
kanata/arsenik_easy_ansi.kbd

@@ -1,52 +0,0 @@
-;; ANSI sub-layer (let kanata ignore all other keys)
-(defsrc
-  q    w    e    r    t    y    u    i    o    p
-  a    s    d    f    g    h    j    k    l    ;
-  z    x    c    v    b    n    m    ,    .    /
-       lalt           spc            ralt
-)
-
-;; Base layer (active by default when kanata starts up):
-;;  - the 3 main thumb keys become mod/taps
-(deflayer qwerty
-  _    _    _    _    _    _    _    _    _    _
-  _    _    _    _    _    _    _    _    _    _
-  _    _    _    _    _    _    _    _    _    _
-       @alt           @nav           @sym
-)
-
-;; Navigation layer:
-;;  - left: arrows, Tab/Shift-Tab, one-hand shortcuts (Ctrl-AZXCV)
-;;  - right: numpad
-(deflayer numnav
-  tab  home up   end  pgup    /  7  8  9  XX
-  C-a  lft  down rght pgdn    -  4  5  6  0
-  C-z  C-x  C-c  C-v  S-tab   ,  1  2  3  .
-       del            _             esc
-)
-
-;; Symbol layer
-(deflayer symbols
-  S-2  S-,  S-.  S-4  S-5  S-6  S-7  S-8  '    grv
-  S-[  S-9  S-0  S-]  =    \    S-=  -    /    S-'
-  @tld [    ]    S--  S-3  S-\  S-1  ;    S-;  S-/
-       bspc           spc            _
-)
-
-;; Special key aliases
-(defalias
-  tld S-grv
-
-  ;; Main mod-tap: VimNav layer when held, Space when tapped.
-  ;; The space key must be held long enough (300ms) to become a layer shift.
-  nav (tap-hold 200 300 spc (layer-toggle numnav))
-
-  ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
-  ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
-  ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
-  ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
-  alt (tap-hold-press 200 200 ret lalt)
-  sym (tap-hold-press 200 200 ret (layer-toggle symbols))
-)
-
-;; vim: set ft=lisp

+ 0 - 52
kanata/arsenik_hrm_altgr.kbd

@@ -1,52 +0,0 @@
-;; ANSI sub-layer (let kanata ignore all other keys)
-(defsrc
-  q    w    e    r    t    y    u    i    o    p
-  a    s    d    f    g    h    j    k    l    ;
-  z    x    c    v    b    n    m    ,    .    /
-       lalt           spc            ralt
-)
-
-;; Base layer (active by default when kanata starts up):
-;;  - home-row mods on SDF and JKL
-;;  - the 3 main thumb keys become mod/taps
-(deflayer qwerty
-  _    _    _    _    _    _    _    _    _    _
-  _    @ss  @dd  @ff  _    _    @jj  @kk  @ll  _
-  _    _    _    _    _    _    _    _    _    _
-       @sft           @nav           @alt
-)
-
-;; Navigation layer:
-;;  - left: arrows, Tab/Shift-Tab, one-hand shortcuts (Ctrl-AZXCV)
-;;  - right: numpad
-(deflayer numnav
-  tab  home up   end  pgup    /  7  8  9  XX
-  C-a  lft  down rght pgdn    -  4  5  6  0
-  C-z  C-x  C-c  C-v  S-tab   ,  1  2  3  .
-       del            _             esc
-)
-
-;; Special key aliases
-(defalias
-  ;; Main mod-tap: NumNav layer when held, Space when tapped.
-  ;; The space key must be held long enough (300ms) to become a layer shift.
-  nav (tap-hold 200 300 spc (layer-toggle numnav))
-
-  ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
-  ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
-  ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
-  ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
-  sft (tap-hold-press 200 200 bspc lsft)
-  alt (tap-hold-press 200 200 ret ralt)
-
-  ;; Home-row mods
-  ;; Must be held long enough (300ms) to become a modifier.
-  ss (tap-hold 200 300 s lmet)
-  dd (tap-hold 200 300 d lalt)
-  ff (tap-hold 200 300 f lctl)
-  jj (tap-hold 200 300 j rctl)
-  kk (tap-hold 200 300 k lalt)
-  ll (tap-hold 200 300 l rmet)
-)
-
-;; vim: set ft=lisp

+ 0 - 62
kanata/arsenik_hrm_ansi.kbd

@@ -1,62 +0,0 @@
-;; ANSI sub-layer (let kanata ignore all other keys)
-(defsrc
-  q    w    e    r    t    y    u    i    o    p
-  a    s    d    f    g    h    j    k    l    ;
-  z    x    c    v    b    n    m    ,    .    /
-       lalt           spc            ralt
-)
-
-;; Base layer (active by default when kanata starts up):
-;;  - home-row mods on SDF and JKL
-;;  - the 3 main thumb keys become mod/taps
-(deflayer qwerty
-  _    _    _    _    _    _    _    _    _    _
-  _    @ss  @dd  @ff  _    _    @jj  @kk  @ll  _
-  _    _    _    _    _    _    _    _    _    _
-       @sft           @nav           @sym
-)
-
-;; Navigation layer:
-;;  - left: arrows, Tab/Shift-Tab, one-hand shortcuts (Ctrl-AZXCV)
-;;  - right: numpad
-(deflayer numnav
-  tab  home up   end  pgup    /  7  8  9  XX
-  C-a  lft  down rght pgdn    -  4  5  6  0
-  C-z  C-x  C-c  C-v  S-tab   ,  1  2  3  .
-       del            _             esc
-)
-
-;; Symbol layer
-(deflayer symbols
-  S-2  S-,  S-.  S-4  S-5  S-6  S-7  S-8  '    grv
-  S-[  S-9  S-0  S-]  =    \    S-=  -    /    S-'
-  @tld [    ]    S--  S-3  S-\  S-1  ;    S-;  S-/
-       bspc           spc            _
-)
-
-;; Special key aliases
-(defalias
-  tld S-grv
-
-  ;; Main mod-tap: VimNav layer when held, Space when tapped.
-  ;; The space key must be held long enough (300ms) to become a layer shift.
-  nav (tap-hold 200 300 spc (layer-toggle numnav))
-
-  ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
-  ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
- ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
-  ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
-  sft (tap-hold-press 200 200 bspc lsft)
-  sym (tap-hold-press 200 200 ret (layer-toggle symbols))
-
-  ;; Home-row mods
-  ;; Must be held long enough (300ms) to become a modifier.
-  ss (tap-hold 200 300 s lmet)
-  dd (tap-hold 200 300 d lalt)
-  ff (tap-hold 200 300 f lctl)
-  jj (tap-hold 200 300 j rctl)
-  kk (tap-hold 200 300 k ralt)
-  ll (tap-hold 200 300 l rmet)
-)
-
-;; vim: set ft=lisp

+ 88 - 0
kanata/defalias_azerty_pc.kbd

@@ -0,0 +1,88 @@
+;; Azerty Windows/Linux aliases
+;; Works with AZERTY-fr. Needs a couple tweaks for the Belgian and Mac variants.
+
+;; Navigation layer
+(defalias
+
+  all C-q
+  sav C-s
+  cls C-z
+  ndo C-w
+  cut C-x
+  cpy C-c
+  pst C-v
+
+  0 S-0
+  1 S-1
+  2 S-2
+  3 S-3
+  4 S-4
+  5 S-5
+  6 S-6
+  7 S-7
+  8 S-8
+  9 S-9
+  , m
+  . S-,
+)
+
+;; Symbols layer
+(defalias
+
+  ^  (macro [ spc)
+  <  <
+  >  S-<
+  $  ]
+  %  S-'
+  @  AG-0
+  &  1
+  *  \
+  '  4
+  `  (macro AG-7 spc)
+
+  {  AG-4
+  pl 5
+  pr -
+  }  AG-=
+  =  =
+  \  AG-8
+  +  S-=
+  -  6
+  /  S-.
+  '' 3
+
+  ~  (macro AG-2 spc)
+  [  AG-5
+  ]  AG--
+  _  8
+  #  AG-3
+  |  AG-6
+  !  /
+  ;  ,
+  :  .
+  ?  S-m
+)
+
+;; NumRow layer
+(defalias
+
+  s0 0
+  s1 1
+  s2 2
+  s3 3
+  s4 4
+  s5 5
+  s6 6
+  s7 7
+  s8 8
+  s9 9
+  nbs spc ;; no narrow no-break space in Azerty
+
+  dk1 XX
+  dk2 XX
+  dk3 XX
+  dk4 XX
+  dk5 XX
+)
+
+;; vim: set ft=lisp

+ 87 - 0
kanata/defalias_bepo_pc.kbd

@@ -0,0 +1,87 @@
+;; Bépo Windows/Linux aliases
+
+;; Navigation layer
+(defalias
+
+  all C-a
+  sav C-k
+  cls C-]
+  ndo C-[
+  cut C-c
+  cpy C-h
+  pst C-u
+
+  0 S-0
+  1 S-1
+  2 S-2
+  3 S-3
+  4 S-4
+  5 S-5
+  6 S-6
+  7 S-7
+  8 S-8
+  9 S-9
+  , g
+  . v
+)
+
+;; Symbols layer
+(defalias
+
+  ^  AG-6
+  <  AG-2
+  >  AG-3
+  $  `
+  %  =
+  @  6
+  &  AG-e
+  *  0
+  '  AG-g
+  `  S-=
+
+  {  AG-x
+  pl 4
+  pr 5
+  }  AG-c
+  =  -
+  \  AG-z
+  +  7
+  -  8
+  /  AG-<
+  '' 1
+
+  ~  AG-b
+  [  AG-4
+  ]  AG-5
+  _  AG-spc
+  #  S-`
+  |  AG-q
+  !  S-y
+  ;  S-g
+  :  S-v
+  ?  S-n
+)
+
+;; NumRow layer
+(defalias
+
+  s0 0
+  s1 1
+  s2 2
+  s3 3
+  s4 4
+  s5 5
+  s6 6
+  s7 7
+  s8 8
+  s9 9
+  nbs S-spc ;; narrow no-break space
+
+  dk1 XX
+  dk2 XX
+  dk3 XX
+  dk4 XX
+  dk5 XX
+)
+
+;; vim: set ft=lisp

+ 89 - 0
kanata/defalias_ergol_pc.kbd

@@ -0,0 +1,89 @@
+;; Ergo‑L Windows/Linux aliases
+
+;; Navigation layer
+(defalias
+
+  all C-a
+  sav C-s
+  cls C-t
+  ndo C-z
+  cut C-x
+  cpy C-w
+  pst C-v
+
+  0 0
+  1 1
+  2 2
+  3 3
+  4 4
+  5 5
+  6 6
+  7 7
+  8 8
+  9 9
+  , ,
+  . .
+)
+
+;; Symbols layer
+(defalias
+
+  ^  AG-q
+  <  AG-w
+  >  AG-e
+  $  AG-r
+  %  AG-t
+  @  AG-y
+  &  AG-u
+  *  AG-i
+  '  AG-o
+  `  AG-p
+
+  {  AG-a
+  pl AG-s
+  pr AG-d
+  }  AG-f
+  =  AG-g
+  \  AG-h
+  +  AG-j
+  -  AG-k
+  /  AG-l
+  '' AG-;
+
+  ~  AG-z
+  [  AG-x
+  ]  AG-c
+  _  AG-v
+  #  AG-b
+  |  AG-n
+  !  AG-m
+  ;  AG-,
+  :  AG-.
+  ?  AG-/
+)
+
+;; NumRow layer
+(defalias
+
+  s0 S-0
+  s1 S-1
+  s2 S-2
+  s3 S-3
+  s4 S-4
+  s5 S-5
+  s6 S-6
+  s7 S-7
+  s8 S-8
+  s9 S-9
+  nbs S-spc ;; narrow no-break space
+
+  1dk o
+  ;; digits must be escaped, otherwise they’re interpreted as delays in ms
+  dk1 (macro @1dk @1)
+  dk2 (macro @1dk @2)
+  dk3 (macro @1dk @3)
+  dk4 (macro @1dk @4)
+  dk5 (macro @1dk @5)
+)
+
+;; vim: set ft=lisp

+ 89 - 0
kanata/defalias_qwerty-lafayette_pc.kbd

@@ -0,0 +1,89 @@
+;; Qwerty‑Lafayette Windows/Linux aliases
+
+;; Navigation layer
+(defalias
+
+  all C-a
+  sav C-s
+  cls C-w
+  ndo C-z
+  cut C-x
+  cpy C-c
+  pst C-v
+
+  0 0
+  1 1
+  2 2
+  3 3
+  4 4
+  5 5
+  6 6
+  7 7
+  8 8
+  9 9
+  , ,
+  . .
+)
+
+;; Symbols layer
+(defalias
+
+  ^  AG-q
+  <  AG-w
+  >  AG-e
+  $  AG-r
+  %  AG-t
+  @  AG-y
+  &  AG-u
+  *  AG-i
+  '  AG-o
+  `  AG-p
+
+  {  AG-a
+  pl AG-s
+  pr AG-d
+  }  AG-f
+  =  AG-g
+  \  AG-h
+  +  AG-j
+  -  AG-k
+  /  AG-l
+  '' AG-;
+
+  ~  AG-z
+  [  AG-x
+  ]  AG-c
+  _  AG-v
+  #  AG-b
+  |  AG-n
+  !  AG-m
+  ;  AG-,
+  :  AG-.
+  ?  AG-/
+)
+
+;; NumRow layer
+(defalias
+
+  s0 S-0
+  s1 S-1
+  s2 S-2
+  s3 S-3
+  s4 S-4
+  s5 S-5
+  s6 S-6
+  s7 S-7
+  s8 S-8
+  s9 S-9
+  nbs S-spc ;; narrow no-break space
+
+  1dk ;
+  ;; digits must be escaped, otherwise they’re interpreted as delays in ms
+  dk1 (macro @1dk @1)
+  dk2 (macro @1dk @2)
+  dk3 (macro @1dk @3)
+  dk4 (macro @1dk @4)
+  dk5 (macro @1dk @5)
+)
+
+;; vim: set ft=lisp

+ 87 - 0
kanata/defalias_qwerty_mac.kbd

@@ -0,0 +1,87 @@
+;; Qwerty/Colemak macOS aliases
+
+;; Navigation layer
+(defalias
+
+  all M-a
+  sav M-s
+  cls M-w
+  ndo M-z
+  cut M-x
+  cpy M-c
+  pst M-v
+
+  0 0
+  1 1
+  2 2
+  3 3
+  4 4
+  5 5
+  6 6
+  7 7
+  8 8
+  9 9
+  , ,
+  . .
+)
+
+;; Symbols layer
+(defalias
+
+  ^  S-6
+  <  S-,
+  >  S-.
+  $  S-4
+  %  S-5
+  @  S-2
+  &  S-7
+  *  S-8
+  '  '
+  `  `
+
+  {  S-[
+  pl S-9
+  pr S-0
+  }  S-]
+  =  =
+  \  \
+  +  S-=
+  -  -
+  /  /
+  '' S-'
+
+  ~  S-`
+  [  [
+  ]  ]
+  _  S--
+  #  S-3
+  |  S-\
+  !  S-1
+  ;  ;
+  :  S-;
+  ?  S-/
+)
+
+;; NumRow layer
+(defalias
+
+  s0 S-0
+  s1 S-1
+  s2 S-2
+  s3 S-3
+  s4 S-4
+  s5 S-5
+  s6 S-6
+  s7 S-7
+  s8 S-8
+  s9 S-9
+  nbs spc ;; no narrow no-break space in Qwerty
+
+  dk1 XX
+  dk2 XX
+  dk3 XX
+  dk4 XX
+  dk5 XX
+)
+
+;; vim: set ft=lisp

+ 88 - 0
kanata/defalias_qwerty_pc.kbd

@@ -0,0 +1,88 @@
+;; Qwerty/Colemak Windows/Linux aliases
+;; Works with QWERTY-US, Colemak and others.
+
+;; Navigation layer
+(defalias
+
+  all C-a
+  sav C-s
+  cls C-w
+  ndo C-z
+  cut C-x
+  cpy C-c
+  pst C-v
+
+  0 0
+  1 1
+  2 2
+  3 3
+  4 4
+  5 5
+  6 6
+  7 7
+  8 8
+  9 9
+  , ,
+  . .
+)
+
+;; Symbols layer
+(defalias
+
+  ^  S-6
+  <  S-,
+  >  S-.
+  $  S-4
+  %  S-5
+  @  S-2
+  &  S-7
+  *  S-8
+  '  '
+  `  `
+
+  {  S-[
+  pl S-9
+  pr S-0
+  }  S-]
+  =  =
+  \  \
+  +  S-=
+  -  -
+  /  /
+  '' S-'
+
+  ~  S-`
+  [  [
+  ]  ]
+  _  S--
+  #  S-3
+  |  S-\
+  !  S-1
+  ;  ;
+  :  S-;
+  ?  S-/
+)
+
+;; NumRow layer
+(defalias
+
+  s0 S-0
+  s1 S-1
+  s2 S-2
+  s3 S-3
+  s4 S-4
+  s5 S-5
+  s6 S-6
+  s7 S-7
+  s8 S-8
+  s9 S-9
+  nbs spc ;; no narrow no-break space in Qwerty
+
+  dk1 XX
+  dk2 XX
+  dk3 XX
+  dk4 XX
+  dk5 XX
+)
+
+;; vim: set ft=lisp

+ 88 - 0
kanata/defalias_qwertz_pc.kbd

@@ -0,0 +1,88 @@
+;; Qwertz Windows/Linux aliases
+;; Works with QWERTZ-de. Needs a couple tweaks for other QWERTZ variants.
+
+;; Navigation layer
+(defalias
+
+  all C-a
+  sav C-s
+  cls C-w
+  ndo C-y
+  cut C-x
+  cpy C-c
+  pst C-v
+
+  0 0
+  1 1
+  2 2
+  3 3
+  4 4
+  5 5
+  6 6
+  7 7
+  8 8
+  9 9
+  , ,
+  . .
+)
+
+;; Symbols layer
+(defalias
+
+  ^  (macro grv spc)
+  <  <
+  >  S-<
+  $  S-4
+  %  S-5
+  @  AG-q
+  &  S-6
+  *  S-]
+  '  S-\
+  `  (macro S-= spc)
+
+  {  AG-7
+  pl S-8
+  pr S-9
+  }  AG-0
+  =  S-0
+  \  AG--
+  +  ]
+  -  /
+  /  S-7
+  '' S-2
+
+  ~  AG-]
+  [  AG-8
+  ]  AG-9
+  _  S-/
+  #  \
+  |  AG-<
+  !  S-1
+  ;  S-,
+  :  S-.
+  ?  S--
+)
+
+;; NumRow layer
+(defalias
+
+  s0 S-0
+  s1 S-1
+  s2 S-2
+  s3 S-3
+  s4 S-4
+  s5 S-5
+  s6 S-6
+  s7 S-7
+  s8 S-8
+  s9 S-9
+  nbs spc ;; no narrow no-break space in Qwerty
+
+  dk1 XX
+  dk2 XX
+  dk3 XX
+  dk4 XX
+  dk5 XX
+)
+
+;; vim: set ft=lisp

+ 1 - 1
mods/atomic/deflayer_base.kbd

@@ -4,7 +4,7 @@
   _    _    _    _    _    _    _    _    _    _    _
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
-  z    x    c    v    b   102d  n    m    ,    .    /
+  z    x    c    v    b    <    n    m    ,    .    /
             _              _              _
 )
 

+ 22 - 0
kanata/deflayer_base_lt.kbd

@@ -0,0 +1,22 @@
+;; Base layer: the 3 main thumb keys become mod/taps
+
+(deflayer base
+  _    _    _    _    _    _    _    _    _    _    _
+  q    w    e    r    t         y    u    i    o    p
+  a    s    d    f    g         h    j    k    l    ;
+  z    x    c    v    b    <    n    m    ,    .    /
+            @alt          @nav            @sym
+)
+
+(defalias
+  ;; Main mod-tap: Nav layer when held, Space when tapped.
+  ;; The space key must be held long enough (300ms) to become a layer shift.
+  nav (tap-hold 200 300 spc (layer-while-held navigation))
+
+  ;; Space-cadet thumb keys: Alt/BackSpace, AltGr/Enter.
+  ;; Acts as a modifier by default, or as BackSpace/Enter when tapped separately.
+  alt (tap-hold-press 200 200 bspc lalt)
+  sym (tap-hold-press 200 200 ret (layer-while-held symbols))
+)
+
+;; vim: set ft=lisp

+ 7 - 10
mods/atomic/deflayer_base_lt_hrm.kbd

@@ -4,25 +4,22 @@
   _    _    _    _    _    _    _    _    _    _    _
   q    w    e    r    t         y    u    i    o    p
   a    @ss  @dd  @ff  g         h    @jj  @kk  @ll  ;
-  z    x    c    v    b   102d  n    m    ,    .    /
+  z    x    c    v    b    <    n    m    ,    .    /
             @sft          @nav            @sym
 )
 
 (defalias
-  ;; Main mod-tap: VimNav layer when hold, Space when tapped.
-  ;; The space key must be hold long enough (300ms) to become a layer shift.
+  ;; Main mod-tap: Nav layer when held, Space when tapped.
+  ;; The space key must be held long enough (300ms) to become a layer shift.
   nav (tap-hold 200 300 spc (layer-while-held navigation))
 
-  ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Escape
-  ;;  - acts as a modifier by default, or as BS/Esc when tapped separately;
-  ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
-  ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
-  alt (tap-hold-press 200 200 esc ralt)
+  ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Enter.
+  ;; Acts as a modifier by default, or as BackSpace/Enter when tapped separately.
   sft (tap-hold-press 200 200 bspc lsft)
-  sym (tap-hold-press 200 200 esc (layer-while-held symbols))
+  sym (tap-hold-press 200 200 ret (layer-while-held symbols))
 
   ;; Home-row mods
-  ;; Must be hold long enough (300ms) to become a modifier.
+  ;; Must be held long enough (300ms) to become a modifier.
   ss (tap-hold 200 300 s lmet)
   dd (tap-hold 200 300 d lalt)
   ff (tap-hold 200 300 f lctl)

+ 5 - 5
mods/atomic/deflayer_navigation.kbd

@@ -1,5 +1,5 @@
 ;; Num-Navigation layer:
-;;  - should inherit from NumPad (but this doesn’t work for some reason)
+;;  - should inherit from NumPad
 ;;  - left: one-handed shortcuts (Cmd/Ctrl-AZXCV) + Tab/S-Tab
 ;;  - top: Super-num (i3/sway) or Alt-num (browser)
 
@@ -8,10 +8,10 @@
 
 (deflayer navigation
   M-1  M-2  M-3  M-4  M-5  lrld M-6  M-7  M-8  M-9  M-0
-  tab  home up   end  pgup      XX   7    8    9    @run
-  @all lft  down rght pgdn      -    4    5    6    0
-  @ndo @cut @cpy @pst S-tab _   ,    1    2    3    .
-            del             _             ret
+  tab  home up   end  pgup      XX   @7   @8   @9   @run
+  @all lft  down rght pgdn      @-   @4   @5   @6   @0
+  @ndo @cut @cpy @pst S-tab _   @,   @1   @2   @3   @.
+            del            @nbs           esc
 )
 
 ;; vim: set ft=lisp

+ 5 - 5
mods/atomic/deflayer_navigation_vim.kbd

@@ -11,16 +11,16 @@
   @pad @cls bck  fwd  XX        home pgdn pgup end  @run
   @all @sav S-tab tab XX        lft  down up   rght @fun
   @ndo @cut @cpy @pst XX    _   @mwl @mwd @mwu @mwr XX
-            del             _             ret
+            del             _             esc
 )
 
 ;; NumPad
 (deflayer numpad
   _    _    _    _    _     _   _    _    _    _    _
-  XX   home up   end  pgup      XX   7    8    9    XX
-  XX   lft  down rght pgdn      -    4    5    6    0
-  XX   XX   XX   XX   XX    _   ,    1    2    3    .
-            @std           spc            @std
+  XX   home up   end  pgup      XX   @7   @8   @9   XX
+  XX   lft  down rght pgdn      @-   @4   @5   @6   @0
+  XX   XX   XX   XX   XX    _   @,   @1   @2   @3   @.
+            @std           @nbs           @std
 )
 
 ;; function keys

+ 14 - 0
kanata/deflayer_symbols_1dk.kbd

@@ -0,0 +1,14 @@
+;; Symbol layer: Lafayette/Ergo‑L AltGr programmation layer for the masses!
+
+(deflayer symbols
+  AG-1 AG-2 AG-3 AG-4 AG-5 XX   AG-6 AG-7 AG-8 AG-9 AG-0
+  @^   @<   @>   @$   @%        @@   @&   @*   @'   @`
+  @{   @pl  @pr  @}   @=        @\   @+   @-   @/   @''
+  @~   @[   @]   @_   @#   XX   @|   @!   @;   @:   @?
+            _              spc            @sym
+)
+
+;; Note: this requires kanata 0.5+ to work properly.
+;; kanata 0.4 does not release Shift soon enough for this layer to work.
+
+;; vim: set ft=lisp

+ 26 - 0
kanata/deflayer_symbols_1dk_num.kbd

@@ -0,0 +1,26 @@
+;; Symbol layer: Lafayette/Ergo‑L AltGr programmation layer
+;; but enables a NumRow.
+
+(deflayer symbols
+  AG-1 AG-2 AG-3 AG-4 AG-5 XX   AG-6 AG-7 AG-8 AG-9 AG-0
+  @^   @<   @>   @$   @%        @@   @&   @*   @'   @`
+  @{   @pl  @pr  @}   @=        @\   @+   @-   @/   @''
+  @~   @[   @]   @_   @#   XX   @|   @!   @;   @:   @?
+            @num          spc            @sym
+)
+
+;; Numrow layer
+
+(deflayer numrow
+  _    _    _    _    _     _   _    _    _    _    _
+  @s1  @s2  @s3  @s4  @s5       @s6  @s7  @s8  @s9  @s0
+  @1   @2   @3   @4   @5        @6   @7   @8   @9   @0
+  @dk1 @dk2 @dk3 @dk4 @dk5  _   XX   @-   @,   @.   @/
+            @num           @nbs           @sym
+)
+
+(defalias
+  num (layer-toggle numrow)
+)
+
+;; vim: set ft=lisp

+ 14 - 0
kanata/deflayer_symbols_noop.kbd

@@ -0,0 +1,14 @@
+;; Symbol layer: same as AltGr.
+;; Concretely this does nothing, just let AltGr as-is for keyboard layouts
+;; depending heavily on AltGr, like Bépo or simply Lafayette layouts like
+;; Ergo‑L, which already have that layer baked in.
+
+(deflayer symbols
+  AG-1 AG-2 AG-3 AG-4 AG-5  XX  AG-6 AG-7 AG-8 AG-9 AG-0
+  AG-q AG-w AG-e AG-r AG-t      AG-y AG-u AG-i AG-o AG-p
+  AG-a AG-s AG-d AG-f AG-g      AG-h AG-j AG-k AG-l AG-;
+  AG-z AG-x AG-c AG-v AG-b  XX  AG-n AG-m AG-, AG-. AG-/
+            _              spc            @sym
+)
+
+;; vim: set ft=lisp

+ 29 - 0
kanata/deflayer_symbols_noop_num.kbd

@@ -0,0 +1,29 @@
+;; Symbol layer: same as AltGr but enables a NumRow.
+;; Concretely this does nothing, just let AltGr as-is for keyboard layouts
+;; depending heavily on AltGr, like Bépo or simply Lafayette layouts like
+;; Ergo‑L, which already have that layer baked in.
+;; Except it adds an NumRow layer.
+
+(deflayer symbols
+  AG-1 AG-2 AG-3 AG-4 AG-5  XX  AG-6 AG-7 AG-8 AG-9 AG-0
+  AG-q AG-w AG-e AG-r AG-t      AG-y AG-u AG-i AG-o AG-p
+  AG-a AG-s AG-d AG-f AG-g      AG-h AG-j AG-k AG-l AG-;
+  AG-z AG-x AG-c AG-v AG-b  XX  AG-n AG-m AG-, AG-. AG-/
+            @num           spc            @sym
+)
+
+;; Numrow layer
+
+(deflayer numrow
+  _    _    _    _    _     _   _    _    _    _    _
+  @s1  @s2  @s3  @s4  @s5       @s6  @s7  @s8  @s9  @s0
+  @1   @2   @3   @4   @5        @6   @7   @8   @9   @0
+  @dk1 @dk2 @dk3 @dk4 @dk5  _   XX   @-   @,   @.   @/
+            @num           @nbs           @sym
+)
+
+(defalias
+  num (layer-toggle numrow)
+)
+
+;; vim: set ft=lisp

+ 1 - 1
mods/atomic/defsrc_mac.kbd

@@ -4,7 +4,7 @@
   1    2    3    4    5  bspc   6    7    8    9    0
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
-  z    x    c    v    b  102d   n    m    ,    .    /
+  z    x    c    v    b    <    n    m    ,    .    /
             lmet          spc             rmet
 )
 

+ 1 - 1
mods/atomic/defsrc_mac_anglemod.kbd

@@ -4,7 +4,7 @@
   1    2    3    4    5  bspc   6    7    8    9    0
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
-  102d z    x    c    v    b    n    m    ,    .    /
+  <    z    x    c    v    b    n    m    ,    .    /
             lmet          spc             rmet
 )
 

+ 1 - 1
mods/atomic/defsrc_pc.kbd

@@ -4,7 +4,7 @@
   1    2    3    4    5  bspc   6    7    8    9    0
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
-  z    x    c    v    b  102d   n    m    ,    .    /
+  z    x    c    v    b    <    n    m    ,    .    /
             lalt          spc             ralt
 )
 

+ 1 - 1
mods/atomic/defsrc_pc_anglemod.kbd

@@ -4,7 +4,7 @@
   1    2    3    4    5  bspc   6    7    8    9    0
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
-  102d z    x    c    v    b    n    m    ,    .    /
+  <    z    x    c    v    b    n    m    ,    .    /
             lalt          spc             ralt
 )
 

+ 71 - 0
kanata/kanata.kbd

@@ -0,0 +1,71 @@
+;;==========================================================================;;
+;;                                                                          ;;
+;;  With Arsenik, choose the features you want for your keyboard:           ;;
+;;  angle mods, Vim-like navigation layer, Mac/Azerty/Qwertz support, etc.  ;;
+;;                                                                          ;;
+;;==========================================================================;;
+
+;; Every section is mandatory and should enable one and only one `include`
+;; - enable each feature by un-commenting the related line.
+;; - a commented line starts with ;;
+
+;; Live-reload the configuration with Space+Backspace (requires layer-taps).
+
+
+;;-----------------------------------------------------------------------------
+;; Original key arrangement on your keyboard: Mac or PC.
+;; Choose here if you want to add an angle mod: ZXCVB are shifted to the left.
+;; See https://colemakmods.github.io/ergonomic-mods/angle.html for more details.
+
+;; (include defsrc_pc.kbd)  ;; PC, standard finger assignment
+;; (include defsrc_mac.kbd)  ;; Mac, standard finger assignment
+(include defsrc_pc_anglemod.kbd)  ;; PC, ZXCVB are shifted to the left
+;; (include defsrc_mac_anglemod.kbd)  ;; Mac, ZXCVB are shifted to the left
+
+
+;;-----------------------------------------------------------------------------
+;; `Base` layer: standard or dual keys? (layer-taps, homerow mods?)
+;; If you just want angle mod, you still have to enable the standard base.
+
+(include deflayer_base.kbd)  ;; standard keyboard behavior
+;; (include deflayer_base_lt.kbd)  ;; layer-taps on both thumb keys
+;; (include deflayer_base_lt_hrm.kbd)  ;; layer-taps + home-row mods
+
+;; Note: not enabling layer-taps here makes the rest of the file useless.
+
+
+;;-----------------------------------------------------------------------------
+;; `Symbols` layer
+
+(include deflayer_symbols_noop.kbd)  ;; AltGr stays as-is
+;; (include deflayer_symbols_1dk.kbd)  ;; AltGr programmation layer like Ergo‑L
+;; (include deflayer_symbols_noop_num.kbd)  ;; AltGr stays as-is + NumRow layers
+;; (include deflayer_symbols_1dk_num.kbd)  ;; AltGr prog layer + NumRow layers
+
+
+;;-----------------------------------------------------------------------------
+;; `Navigation` layer: ESDF or HJKL?
+
+(include deflayer_navigation.kbd)  ;; ESDF on the left, NumPad on the right
+;; (include deflayer_navigation_vim.kbd)  ;; HJKL + NumPad on [Space]+[Q]
+
+;; Replace XX by the keyboard shortcut of your application launcher, if any.
+;; Mapped on [Space]+[P] in both navigation layers.
+
+;; (defalias run M-p)  ;; [Command]-[P]
+(defalias run XX)  ;; do nothing
+
+
+;;-----------------------------------------------------------------------------
+;; Aliases for `Symbols` and `Navigation` layers
+;; Depends on PC/Mac and keyboard layout
+
+(include defalias_ergol_pc.kbd)  ;; Ergo‑L PC
+;; (include defalias_qwerty-lafayette_pc.kbd)  ;; Qwerty‑Lafayette PC
+;; (include defalias_qwerty_pc.kbd)  ;; Qwerty / Colemak PC
+;; (include defalias_qwerty_mac.kbd)  ;; Qwerty / Colemak Mac
+;; (include defalias_azerty_pc.kbd)  ;; Azerty PC
+;; (include defalias_qwertz_pc.kbd)  ;; Qwertz PC
+;; (include defalias_bepo_pc.kbd)  ;; Bépo PC
+
+;; vim: set ft=lisp

+ 0 - 16
mods/atomic/README.md

@@ -1,16 +0,0 @@
-An experiment to modularize Arsenik and bring more features, e.g.
-angle mods, Vim-like navigation layer, Mac/Azerty/Qwertz support, etc.
-
-- load `kanata.kbd`
-- enable each feature by un-commenting the related line
-- live-reload the configuration with Space+Backspace (requires layer-taps)
-
-Configuration options:
-
-- key arrangement: Mac or PC, with or without angle mod?
-- base layer: standard, layer-taps, homerow mods?
-- symbols layer: AltGr, QWERTY, QWERTZ, AZERTY?
-- navigation layer: ESDF or HJKL?
-
-This should work exactly like Arsenik by default, except Escape and Enter have
-been swapped.

+ 0 - 13
mods/atomic/defalias_mac.kbd

@@ -1,13 +0,0 @@
-;; macOS shortcuts
-
-(defalias
-  all M-a
-  sav M-s
-  cls M-w
-  ndo M-z
-  cut M-x
-  cpy M-c
-  pst M-v
-)
-
-;; vim: set ft=lisp

+ 0 - 13
mods/atomic/defalias_pc.kbd

@@ -1,13 +0,0 @@
-;; Windows/Linux shortcuts
-
-(defalias
-  all C-a
-  sav C-s
-  cls C-w
-  ndo C-z
-  cut C-x
-  cpy C-c
-  pst C-v
-)
-
-;; vim: set ft=lisp

+ 0 - 25
mods/atomic/deflayer_base_lt.kbd

@@ -1,25 +0,0 @@
-;; Base layer: the 3 main thumb keys become mod/taps
-
-(deflayer base
-  _    _    _    _    _    _    _    _    _    _    _
-  q    w    e    r    t         y    u    i    o    p
-  a    s    d    f    g         h    j    k    l    ;
-  z    x    c    v    b   102d  n    m    ,    .    /
-            @sft          @nav            @sym
-)
-
-(defalias
-  ;; Main mod-tap: VimNav layer when hold, Space when tapped.
-  ;; The space key must be hold long enough (300ms) to become a layer shift.
-  nav (tap-hold 200 300 spc (layer-while-held navigation))
-
-  ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Escape
-  ;;  - acts as a modifier by default, or as BS/Esc when tapped separately;
-  ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
-  ;;    AltGr is not used outside of the 3×10 main alpha keys.
-  alt (tap-hold-press 200 200 esc ralt)
-  sft (tap-hold-press 200 200 bspc lalt)
-  sym (tap-hold-press 200 200 esc (layer-while-held symbols))
-)
-
-;; vim: set ft=lisp

+ 0 - 42
mods/atomic/deflayer_symbols_1dk.kbd

@@ -1,42 +0,0 @@
-;; Symbol layer: same as AltGr but enables a NumRow.
-;; This has been designed with Lafayette and Ergo-L in mind.
-
-(deflayer symbols
-  AG-1 AG-2 AG-3 AG-4 AG-5  XX  AG-6 AG-7 AG-8 AG-9 AG-0
-  AG-q AG-w AG-e AG-r AG-t      AG-y AG-u AG-i AG-o AG-p
-  AG-a AG-s AG-d AG-f AG-g      AG-h AG-j AG-k AG-l AG-;
-  AG-z AG-x AG-c AG-v AG-b  XX  AG-n AG-m AG-, AG-. AG-/
-            @num           spc            @sym
-)
-
-;; Numrow layer
-
-(deflayer numrow
-  _    _    _    _    _     _   _    _    _    _    _
-  S-1  S-2  S-3  S-4  S-5       S-6  S-7  S-8  S-9  S-0
-  1    2    3    4    5         6    7    8    9    0
-  @dk1 @dk2 @dk3 @dk4 @dk5  _   XX   -    ,    .    /
-            @num          S-spc           @sym
-)
-
-(defalias
-  num (layer-toggle numrow)
-
-  ;; Ergo-L/Lafayette dead-key macros
-  ;; 1dk o ;; Ergo-L
-  1dk ; ;; QWERTY-Lafayette
-  ;; digits must be escaped, otherwise they’re interpreted as delays in ms
-  ;; um1 (unmod 1) ;; raises an error, WTF?
-  1 1
-  2 2
-  3 3
-  4 4
-  5 5
-  dk1 (macro @1dk @1)
-  dk2 (macro @1dk @2)
-  dk3 (macro @1dk @3)
-  dk4 (macro @1dk @4)
-  dk5 (macro @1dk @5)
-)
-
-;; vim: set ft=lisp

+ 0 - 15
mods/atomic/deflayer_symbols_ansi.kbd

@@ -1,15 +0,0 @@
-;; Symbol layer: Lafayette/Ergo‑L AltGr layer for the masses!
-;; Works with QWERTY-US, Colemak and others.
-
-(deflayer symbols
-  _    _    _    _    _    _    _    _    _    _    _
-  S-2  S-,  S-.  S-4  S-5       S-6  S-7  S-8  '    `
-  S-[  S-9  S-0  S-]  =         \    S-=  -    /    S-'
-  S-`  [    ]    S--  S-3  XX   S-\  S-1  ;    S-;  S-/
-            _              spc            @sym
-)
-
-;; Note: this requires kanata 0.5+ to work properly.
-;; kanata 0.4 does not release Shift soon enough for this layer to work.
-
-;; vim: set ft=lisp

+ 0 - 51
mods/atomic/deflayer_symbols_azerty.kbd

@@ -1,51 +0,0 @@
-;; Symbol layer: Lafayette/Ergo‑L AltGr layer for the masses!
-;; Works with AZERTY-fr. Needs a couple tweaks for the Belgian and Mac variants.
-
-(deflayer symbols
-  _    _    _    _    _    _    _    _    _    _    _
-  @@   @<   @>   @$   @%        @^   @&   @*   @'   @`
-  @{   @pl  @pr  @}   @=        @\   @+   @-   @/   @''
-  @~   @[   @]   @_   @#   XX   @|   @!   @;   @:   @?
-            _              spc            @sym
-)
-
-;; Note: this requires kanata 0.5+ to work properly.
-;; kanata 0.4 does not release Shift soon enough for this layer to work.
-
-(defalias
-
-  @  AG-0
-  <  102d
-  >  S-102d
-  $  ]
-  %  S-'
-  ^  (macro [ spc)
-  &  1
-  *  \
-  '  4
-  `  AG-7
-
-  {  AG-4
-  pl 5
-  pr -
-  }  AG-=
-  =  =
-  \  AG-8
-  +  S-=
-  -  6
-  /  S-.
-  '' 3
-
-  ~  AG-2
-  [  AG-5
-  ]  AG--
-  _  8
-  #  AG-3
-  |  AG-6
-  !  /
-  ;  ,
-  :  .
-  ?  S-m
-)
-
-;; vim: set ft=lisp

+ 0 - 51
mods/atomic/deflayer_symbols_qwertz.kbd

@@ -1,51 +0,0 @@
-;; Symbol layer: Lafayette/Ergo‑L AltGr layer for the masses!
-;; Works with QWERTZ-de. Needs a couple tweaks for other QWERTZ variants.
-
-(deflayer symbols
-  _    _    _    _    _    _    _    _    _    _    _
-  @@   @<   @>   @$   @%        @^   @&   @*   @'   @`
-  @{   @pl  @pr  @}   @=        @\   @+   @-   @/   @''
-  @~   @[   @]   @_   @#   XX   @|   @!   @;   @:   @?
-            _              spc            @sym
-)
-
-;; Note: this requires kanata 0.5+ to work properly.
-;; kanata 0.4 does not release Shift soon enough for this layer to work.
-
-(defalias
-
-  @  AG-q
-  <  102d
-  >  S-102d
-  $  S-4
-  %  S-5
-  ^  (macro grv spc)
-  &  S-6
-  *  S-]
-  '  S-\
-  `  (macro S-= spc)
-
-  {  AG-7
-  pl S-8
-  pr S-9
-  }  AG-0
-  =  S-0
-  \  AG--
-  +  ]
-  -  /
-  /  S-7
-  '' S-2
-
-  ~  AG-]
-  [  AG-8
-  ]  AG-9
-  _  S-/
-  #  \
-  |  AG-102d
-  !  S-1
-  ;  S-,
-  :  S-.
-  ?  S--
-)
-
-;; vim: set ft=lisp

+ 0 - 59
mods/atomic/kanata.kbd

@@ -1,59 +0,0 @@
-;; An experiment to modularize Arsenik and bring more features:
-;; angle mods, Vim-like navigation layer, Mac/Azerty/Qwertz support, etc.
-
-;; Every section should enable one and only one `include`
-;; -- enable each feature by un-commenting the related line.
-
-;; Live-reload the configuration with Space+Backspace (requires layer-taps).
-
-
-;;-----------------------------------------------------------------------------
-;; Key arrangement: Mac or PC, with or without angle mod?
-
-;; (include defsrc_pc.kbd)  ;; PC, standard finger assignment
-;; (include defsrc_mac.kbd)  ;; Mac, standard finger assignment
-(include defsrc_pc_anglemod.kbd)  ;; PC, ZXCVB are shifted to the left
-;; (include defsrc_mac_anglemod.kbd)  ;; Mac, ZXCVB are shifted to the left
-
-
-;;-----------------------------------------------------------------------------
-;; `Base` layer: standard or dual keys? (layer-taps, homerow mods?)
-
-;; (include deflayer_base.kbd)  ;; standard keyboard behavior
-;; (include deflayer_base_lt.kbd)  ;; layer-taps on both thumb keys
-(include deflayer_base_lt_hrm.kbd)  ;; layer-taps + home-row mods
-
-;; Note: not enabling layer-taps here makes the rest of the file useless.
-
-
-;;-----------------------------------------------------------------------------
-;; `Symbols` layer
-
-(include deflayer_symbols_1dk.kbd)  ;; AltGr + NumRow layers
-;; (include deflayer_symbols_ansi.kbd)  ;; Symbol layer for Qwerty / Colemak
-;; (include deflayer_symbols_azerty.kbd)  ;; Symbol layer for Azerty
-;; (include deflayer_symbols_qwertz.kbd)  ;; Symbol layer for Qwertz
-
-
-;;-----------------------------------------------------------------------------
-;; `Navigation` layer: ESDF or HJKL?
-
-;; (include deflayer_navigation.kbd)  ;; ESDF on the left, NumPad on the right
-(include deflayer_navigation_vim.kbd)  ;; HJKL + NumPad on [Space]+[Q]
-
-;; Replace XX by the keyboard shortcut of your application launcher, if any.
-;; Mapped on [Space]+[P] in both navigation layers.
-
-(defalias run M-p)  ;; [Command]-[P]
-;; (defalias run XX)
-
-
-;;-----------------------------------------------------------------------------
-;; Keyboard shortcuts: macOS or Windows/Linux?
-
-(include defalias_pc.kbd)
-;; (include defalias_mac.kbd)
-
-;; TODO: add shortcut files for Dvorak layouts.
-
-;; vim: set ft=lisp

+ 0 - 77
mods/selenium33/README.md

@@ -1,77 +0,0 @@
-Selenium33
-================================================================================
-
-A Vim-friendly Arsenik mod:
-
-- 3 home-row mods per hand for <kbd>Ctrl</kbd>, <kbd>Alt</kbd>, <kbd>Super</kbd>
-- 3 layer-tap keys under the thumbs: <kbd>Shift</kbd>/<kbd>Backspace</kbd>,
-<kbd>Navigation</kbd>/<kbd>Space</kbd>, <kbd>Symbol</kbd>/<kbd>Return</kbd>
-
-![base, navigation and sym layers on a 33-key keyboard](img/all.svg)
-
-Selenium uses 4 layers (instead of 3 for Arsenik), which makes it a natural fit
-for 34-key keyboards like the [Ferris][34].
-
-[34]: https://github.com/pierrechevalier83/ferris
-
-
-Extended Navigation
---------------------------------------------------------------------------------
-
-- Vim-like navigation in all apps, with any OS layout
-- super-comfortable <kbd>Tab</kbd> and <kbd>Shift</kbd>-<kbd>Tab</kbd>
-- mouse emulation: previous / next and mouse scroll
-- easy left-hand shortcuts
-
-![Vim navigation layer on a 33-key keyboard](img/navigation.svg)
-
-This <kbd>Navigation</kbd> layer has a few empty slots on purpose, so you can
-add our own keys or layers.
-
-
-NumRow >> NumPad
---------------------------------------------------------------------------------
-
-In <kbd>Symbol</kbd> mode, pressing the left thumb key brings up the
-<kbd>NumRow</kbd> layer:
-
-- all digits are on the home row, in the order you already know
-- the upper row helps with <kbd>Shift</kbd>-digit shortcuts
-- the lower row has dash, comma, dot and slash signs to help with number / date
-inputs
-
-![NumRow layer on a 33-key keyboard](img/numrow.svg)
-
-Even on keyboards that *do* have a physical number row, this <kbd>NumRow</kbd>
-layer can be interesting to use in order to minimize finger movements further
-more. And it makes it easier to mix symbols with numbers (e.g. `[0]`).
-
-
-Implementations
---------------------------------------------------------------------------------
-
-### Kanata
-
-![kanata configuration](selenium.kbd)
-
-It turns out the `Atomic` mod can support all Selenium33 features smoothly.
-You should definitely use `Atomic` and tweak it to your liking instead of using
-this. :-)
-
-
-### QMK
-
-The QMK implementation is a bit different:
-
-- it takes advantage of the 4 thumb keys
-- the Navigation layer uses a mouse emulation on the left hand
-
-In fact, this is what I ended up with for my beloved Ferris in the first place,
-and Arsenik/Selenium is an attempt to fit most of this magic into my laptop keyboard.
-
-![QMK code](qmk/keyoards/ferris/keymaps/1dk)
-
-```bash
-# from the `qmk_firmware` root:
-make ferris/0_2/bling:1dk:flash
-```

+ 0 - 170
mods/selenium33/selenium.kbd

@@ -1,170 +0,0 @@
-;; Quick notes about the kanata configuration syntax:
-;;  - the syntax is Lisp-like but totally unrelated to Lisp, so no worries :-)
-;;  - comments are prefixed by double-semicolons
-;;  - only one `defsrc` is allowed, listing all keys handled by kanata
-;;  - up to 25 `deflayer` are allowed, one per layer emulation
-;;  - the underscore symbol `_` in `deflayer` sections means "transparent",
-;;    i.e. the previous layer behaviour is used when pressing that key
-
-;; `defsrc` defines the keys that will be intercepted by kanata.
-;; The order of the keys matches with deflayer declarations and all deflayer
-;; declarations must have the same number of keys as defsrc. Any keys not listed
-;; in defsrc will be passed straight to the operating system.
-(defsrc
-  q    w    e    r    t         y    u    i    o    p
-  a    s    d    f    g         h    j    k    l    ;
-  z    x    c    v    b   102d  n    m    ,    .    /
-            lalt           spc            ralt
-)
-
-;; Use this instead if you want to apply an angle mod:
-;; (defsrc
-;;   q    w    e    r    t         y    u    i    o    p
-;;   a    s    d    f    g         h    j    k    l    ;
-;;   102d z    x    c    v    b    n    m    ,    .    /
-;;             lalt           spc            ralt
-;; )
-
-;; Base layer (active by default when kanata starts up):
-;;  - the 3 main thumb keys become mod/taps
-;;  - home-row mods on SDF and JKL
-;;  - CapsLock becomes Escape
-(deflayer qwerty
-  q    w    e    r    t         y    u    i    o    p
-  a    @ss  @dd  @ff  g         h    @jj  @kk  @ll  ;
-  z    x    c    v    b   102d  n    m    ,    .    /
-            @sft          @nav            @ssm
-)
-
-;; Symbol layer
-(deflayer symbols
-  AG-q AG-w AG-e AG-r AG-t      AG-y AG-u AG-i AG-o AG-p
-  AG-a AG-s AG-d AG-f AG-g      AG-h AG-j AG-k AG-l AG-;
-  AG-z AG-x AG-c AG-v AG-b  _   AG-n AG-m AG-, AG-. AG-/
-            @num           spc            @sym
-)
-
-;; Numrow layer
-(deflayer numrow
-  S-1  S-2  S-3  S-4  S-5       S-6  S-7  S-8  S-9  S-0
-  1    2    3    4    5         6    7    8    9    0
-  @dk1 @dk2 @dk3 @dk4 @dk5  _   XX   -    ,    .    /
-            @num          S-spc           @sym
-)
-
-;; Numpad layer
-;;  - right: numpad below 798
-;;  - left: arrow bloc on ESDF + home/end + page up/down
-(deflayer numpad
-  XX   home up   end  pgup      XX   7    8    9    XX
-  XX   lft  down rght pgdn      -    4    5    6    0
-  XX   XX   XX   XX   XX    _   ,    1    2    3    .
-            @std           spc            @std
-)
-
-;; Num-Navigation layer:
-;;  - inherits from Numpad
-;;  - left: one-handed shortcuts (Cmd/Ctrl-AZXCV) + Tab/S-Tab
-;;  - top: Super-num (i3/sway) or Alt-num (browser), zoom in/out
-;; The `lrld` action stands for "live reload". This will re-parse everything
-;; except for linux-dev, i.e. you cannot live reload and switch keyboard devices.
-(deflayer numnav
-  tab  _    _    _    _         _    _    _    _    _
-  @all _    _    _    _         _    _    _    _    _
-  @ndo @cut @cpy @pst S-tab _   _    _    _    _    _
-            _               _             _
-)
-
-;; Vim-Navigation layer:
-;;  - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll
-;;  - left: one-hand shortcuts (Cmd/Ctrl-WASZXCV), Tab/Shift-Tab, prev/next
-;;  - top: Super-num (i3/sway) or Alt-num (browser), zoom in/out
-;; The `lrld` action stands for "live reload". This will re-parse everything
-;; except for linux-dev, i.e. you cannot live reload and switch keyboard devices.
-(deflayer vimnav
-  @pad @cls bck  fwd  XX        home pgdn pgup end  XX
-  @all @sav S-tab tab XX        lft  down up   rght @fun
-  @ndo @cut @cpy @pst XX    _   @mwl @mwd @mwu @mwr XX
-            del             _             esc
-)
-
-;; Function layer
-(deflayer funpad
-  f1   f2   f3   f4   XX        XX   XX   XX   XX   XX
-  f5   f6   f7   f8   XX        XX   lctl lalt lmet _
-  f9   f10  f11  f12  XX    _   XX   XX   XX   XX   XX
-            _               _             _
-)
-
-;; `defalias` is used to declare a shortcut for a more complicated action to keep
-;; the deflayer declarations clean and aligned. The alignment in deflayers is
-;; not necessary, but is highly recommended for ease of understanding visually.
-;; Aliases are referred to by `@<alias_name>`.
-(defalias
-  ;; tap: backtick (grave), hold: toggle layer-switching layer while held
-  ;; grl (tap-hold 200 200 grv (layer-toggle layers))
-
-  ;; layer-switch changes the base layer.
-  std (layer-switch qwerty)
-  pad (layer-switch numpad)
-
-  ;; layer-toggle shifts the layer while pressed
-  sym (layer-toggle symbols)
-  num (layer-toggle numrow)
-  fun (layer-toggle funpad)
-
-  ;; Main mod-tap: VimNav layer when hold, Space when tapped.
-  ;; The space key must be hold long enough (300ms) to become a layer shift.
-  nav (tap-hold 200 300 spc (layer-toggle vimnav))
-  ;; nav (tap-hold 200 300 spc (layer-toggle numnav))
-
-  ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
-  ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
-  ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
-  ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
-  sft (tap-hold-press 200 200 bspc lsft)
-  alt (tap-hold-press 200 200 ret ralt)
-  ssm (tap-hold-press 200 200 ret (layer-toggle symbols))
-
-  ;; Home-row mods
-  ;; Must be hold long enough (300ms) to become a modifier.
-  ss (tap-hold 200 300 s lmet)
-  dd (tap-hold 200 300 d lalt)
-  ff (tap-hold 200 300 f lctl)
-  jj (tap-hold 200 300 j rctl)
-  kk (tap-hold 200 300 k lalt)
-  ll (tap-hold 200 300 l rmet)
-
-  ;; Mouse wheel emulation
-  mwu (mwheel-up    50 120)
-  mwd (mwheel-down  50 120)
-  mwl (mwheel-left  50 120)
-  mwr (mwheel-right 50 120)
-
-  ;; shortcuts
-  all C-a
-  sav C-s
-  cls C-w
-  ndo C-z
-  cut C-x
-  cpy C-c
-  pst C-v
-
-  ;; Ergo-L/Lafayette dead-key macros
-  ;; 1dk o ;; Ergo-L
-  1dk ; ;; QWERTY-Lafayette
-  ;; digits must be escaped, otherwise they’re interpreted as delays in ms
-  ;; um1 (unmod 1) ;; raises an error, WTF?
-  1 1
-  2 2
-  3 3
-  4 4
-  5 5
-  dk1 (macro @1dk @1)
-  dk2 (macro @1dk @2)
-  dk3 (macro @1dk @3)
-  dk4 (macro @1dk @4)
-  dk5 (macro @1dk @5)
-)
-
-;; vim: set ft=lisp

mods/selenium33/qmk/keyboards/ferris/keymaps/1dk/config.h → qmk/selenium33/keyboards/ferris/keymaps/1dk/config.h


mods/selenium33/qmk/keyboards/ferris/keymaps/1dk/keymap.c → qmk/selenium33/keyboards/ferris/keymaps/1dk/keymap.c


mods/selenium33/qmk/keyboards/ferris/keymaps/1dk/rules.mk → qmk/selenium33/keyboards/ferris/keymaps/1dk/rules.mk