Browse Source

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 year ago
parent
commit
948bfea3d8
46 changed files with 909 additions and 812 deletions
  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
 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)
 ![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!**
 **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>
 - 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>
 - 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.
 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
 ### 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;
 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;
 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)
 ![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:
 with the “hrm” variants:
 
 
 - <kbd>FDS</kbd> and <kbd>JKL</kbd> become <kbd>Ctrl</kbd>, <kbd>Alt</kbd>,
 - <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>
 - 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)
 ![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
 - 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
 for beginners. Once used to mod-taps, you may want to reduce it so keyboard
 shortcuts can be done more quickly;
 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
 Downloads
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
+### kanata
+
 [Non-programmable keyboards are supported through kanata.](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.
 Other desktop implementations (kmonad, keyd…) would be nice to see as well.
 
 
 Programmable keyboards should be trivial to configure with QMK, ZMK,
 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
 - [Miryoku][1]: 36 keys, 6 layers
 - [Seniply][7]: 34 keys, 6 layers, no layer-taps (“Callum-style”)
 - [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/ -->
 <!-- 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
 [6]: https://github.com/lobre/shaka34
 [7]: https://stevep99.github.io/seniply/
 [7]: https://stevep99.github.io/seniply/
 [8]: https://getreuer.info/posts/keyboards/symbol-layer/#my-symbol-layer
 [8]: https://getreuer.info/posts/keyboards/symbol-layer/#my-symbol-layer
-[11]: mods/selenium33
 
 
 
 
 TODO
 TODO
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
-- angle mods!
 - KMonad / Karabiner support
 - KMonad / Karabiner support
 - sample QMK / ZMK implementations for common keyboards
 - 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
 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)
 Note that kanata can also use the laptop’s trackpoint buttons (e.g. ThinkPad)
 as two additional thumb keys. :-)
 as two additional thumb keys. :-)
@@ -45,6 +31,9 @@ rustup update stable
 cargo install kanata
 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:
 Linux users may want to run these extra steps:
 
 
 <details>
 <details>
@@ -56,7 +45,7 @@ proper authorisations.
 If you don’t want to run `kanata` with `sudo`, you’ll need to allow `kanata` to
 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
 read from `uinput`. This requires the users to be part of both `input` and
 `uinput` groups.
 `uinput` groups.
-Update README.md
+
 For that, you first need to create a `uinput` group if it is not the case yet:
 For that, you first need to create a `uinput` group if it is not the case yet:
 
 
 ```bash
 ```bash
@@ -83,8 +72,8 @@ KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
 <details>
 <details>
 <summary> Making a user-side systemd service for kanata </summary>
 <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
 Using a `systemd service` allows running `kanata` as a daemon, possibly right
 after logging in. Here is a template for a service file:
 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
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
   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
   q    w    e    r    t         y    u    i    o    p
   a    @ss  @dd  @ff  g         h    @jj  @kk  @ll  ;
   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
             @sft          @nav            @sym
 )
 )
 
 
 (defalias
 (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))
   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)
   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
   ;; 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)
   ss (tap-hold 200 300 s lmet)
   dd (tap-hold 200 300 d lalt)
   dd (tap-hold 200 300 d lalt)
   ff (tap-hold 200 300 f lctl)
   ff (tap-hold 200 300 f lctl)

+ 5 - 5
mods/atomic/deflayer_navigation.kbd

@@ -1,5 +1,5 @@
 ;; Num-Navigation layer:
 ;; 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
 ;;  - left: one-handed shortcuts (Cmd/Ctrl-AZXCV) + Tab/S-Tab
 ;;  - top: Super-num (i3/sway) or Alt-num (browser)
 ;;  - top: Super-num (i3/sway) or Alt-num (browser)
 
 
@@ -8,10 +8,10 @@
 
 
 (deflayer navigation
 (deflayer navigation
   M-1  M-2  M-3  M-4  M-5  lrld M-6  M-7  M-8  M-9  M-0
   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
 ;; 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
   @pad @cls bck  fwd  XX        home pgdn pgup end  @run
   @all @sav S-tab tab XX        lft  down up   rght @fun
   @all @sav S-tab tab XX        lft  down up   rght @fun
   @ndo @cut @cpy @pst XX    _   @mwl @mwd @mwu @mwr XX
   @ndo @cut @cpy @pst XX    _   @mwl @mwd @mwu @mwr XX
-            del             _             ret
+            del             _             esc
 )
 )
 
 
 ;; NumPad
 ;; NumPad
 (deflayer 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
 ;; 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
   1    2    3    4    5  bspc   6    7    8    9    0
   q    w    e    r    t         y    u    i    o    p
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
   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
             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
   1    2    3    4    5  bspc   6    7    8    9    0
   q    w    e    r    t         y    u    i    o    p
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
   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
             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
   1    2    3    4    5  bspc   6    7    8    9    0
   q    w    e    r    t         y    u    i    o    p
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
   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
             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
   1    2    3    4    5  bspc   6    7    8    9    0
   q    w    e    r    t         y    u    i    o    p
   q    w    e    r    t         y    u    i    o    p
   a    s    d    f    g         h    j    k    l    ;
   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
             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