Browse Source

NumNav layer (#5)

Fabien Cazenave 1 year ago
parent
commit
920ac1507d
13 changed files with 302 additions and 246 deletions
  1. 61 31
      README.md
  2. 50 47
      img/all.svg
  3. BIN
      img/arsenik.png
  4. BIN
      img/arsenik.xcf
  5. 45 0
      img/base_easy.svg
  6. 64 0
      img/base_hrm.svg
  7. 9 5
      img/index.html
  8. 13 15
      img/symbols.svg
  9. 13 13
      kanata/README.md
  10. 11 37
      kanata/arsenik_easy_altgr.kbd
  11. 14 32
      kanata/arsenik_easy_ansi.kbd
  12. 10 36
      kanata/arsenik_altgr.kbd
  13. 12 30
      kanata/arsenik_ansi.kbd

+ 61 - 31
README.md

@@ -15,8 +15,7 @@ A basic [Miryoku][1]-like approach to minimize finger movements:
 layer, where all programming symbols are arranged for comfort and efficiency,
 layer, where all programming symbols are arranged for comfort and efficiency,
 Dvorak-like.
 Dvorak-like.
 - 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 easy one-hand shortcuts (<kbd>Ctrl</kbd>-<kbd>WASZXCV</kbd>),
-Vim-like navigation (<kbd>HJKL</kbd>) and more…
+layer, with a numpad, cursor navigation (<kbd>ESDF</kbd>) and one-hand shortcuts.
 
 
 This is how modern ergonomic keyboards work — e.g. [Planck][47], [Atreus][44],
 This is how modern ergonomic keyboards work — e.g. [Planck][47], [Atreus][44],
 [Corne][42], [Ferris][34]… The goal here is to propose an approach that works
 [Corne][42], [Ferris][34]… The goal here is to propose an approach that works
@@ -32,41 +31,74 @@ Main Benefits
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
 - <kbd>Shift</kbd>, <kbd>Backspace</kbd>, <kbd>Return</kbd> under the thumbs!
 - <kbd>Shift</kbd>, <kbd>Backspace</kbd>, <kbd>Return</kbd> under the thumbs!
-- all programming symbols in the comfortable 3×10 zone
+- all numbers and programming symbols in the comfortable 3×10 zone
 - symmetrical modifiers on the home row
 - symmetrical modifiers on the home row
-- Vim-like navigation in all apps
 - easier left-hand shortcuts
 - easier left-hand shortcuts
 - works with any keyboard
 - works with any keyboard
 
 
-
-Using Arsenik
---------------------------------------------------------------------------------
-
 Unlike Miryoku which requires 6 thumb keys, Arsenik has been designed to work
 Unlike Miryoku which requires 6 thumb keys, Arsenik has been designed to work
 with standard ANSI/ISO/laptop keyboards, leveraging the spacebar and the two
 with standard ANSI/ISO/laptop keyboards, leveraging the spacebar and the two
 Alt/Cmd keys.
 Alt/Cmd keys.
 
 
-[Non-programmable keyboards are supported through kanata.](kanata)
 
 
-Programmable keyboards should be trivial to configure with QMK, ZMK,
-Kaleidoscope, etc.
+Pick Your Poison!
+--------------------------------------------------------------------------------
 
 
+Adjusting to compact keyboard layouts isn’t easy, but Arsenik is designed for
+a step-by-step approach.
 
 
-No numbers? No problem.
---------------------------------------------------------------------------------
+### 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:
+
+- the left thumb key remains a <kbd>Cmd</kbd> or <kbd>Alt</kbd> key when hold,
+but emits a <kbd>Backspace</kbd> when tapped;
+- the right thumb key brings the <kbd>Symbols</kbd> layer when hold (similar to
+an <kbd>AltGr</kbd> key), and emits <kbd>Return</kbd> when tapped;
+- the spacebar brings the <kbd>Navigation</kbd> layer when when hold.
+
+![alt, navigation and sym layers under the thumbs](img/base_easy.svg)
+
+Having <kbd>Backspace</kbd> and <kbd>Enter</kbd> under the thumbs is enough to
+reduce the pinky fatigue very significantly. And using the <kbd>Symbol</kbd>
+and <kbd>Navigation</kbd> layer further reduces hand and finger movements.
 
 
-If your keyboard has no number row, we got you covered! In <kbd>Symbol</kbd>
-mode, pressing the left thumb key brings up the <kbd>NumRow</kbd> layer:
+### 2. Enable the Home-Row Mods
 
 
-![NumRow layer on a 33-key keyboard](img/numrow.svg)
+When you are familiar with mod-taps, it’s time to enable them on the homerow
+with the “hrm” variants:
 
 
-- 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
+- <kbd>FDS</kbd> and <kbd>JKL</kbd> become <kbd>Ctrl</kbd>, <kbd>Alt</kbd>,
+<kbd>Super</kbd> when hold long enough;
+- the left thumb key can now emit a <kbd>Shift</kbd> rather than <kbd>Alt</kbd>
+wen hold.
 
 
-Even on keyboards that *do* have a number row, this <kbd>NumRow</kbd> layer can
-be interesting to use in order to minimize finger movements a bit more.
+![homerow mods on SDF keys](img/base_hrm.svg)
+
+This is a very basic variant of the [Miryoku][1] principle: one layer on each
+thumb key, and symmetrical modifiers on the homerow.
+
+### 3. Spice It Up
+
+- 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
+mods to get some ideas;
+- the right thumb key could do something more useful than <kbd>Enter</kbd> —
+like a one-time-shift, for instance.
+
+
+Downloads
+--------------------------------------------------------------------------------
+
+[Non-programmable keyboards are supported through kanata.](kanata)
+
+Other desktop implementations (kmonad, keyd…) would be nice to see as well.
+
+Programmable keyboards should be trivial to configure with QMK, ZMK,
+Kaleidoscope, etc.
 
 
 
 
 Related Projects
 Related Projects
@@ -77,20 +109,18 @@ Related Projects
 - [Miryoku][1] for the main idea of using modifiers on the homerow and layer
 - [Miryoku][1] for the main idea of using modifiers on the homerow and layer
 shifters under the thumbs;
 shifters under the thumbs;
 - [Lafayette][2] and [Ergo-L][3] for the <kbd>Symbol</kbd> layer, which has been
 - [Lafayette][2] and [Ergo-L][3] for the <kbd>Symbol</kbd> layer, which has been
-blatantly taken *as is*.
+blatantly taken *as is*;
+- [Extend][4], [Neo][5], [Shaka34][6] for the <kbd>Navigation</kbd> layer.
 
 
-### Alternatives
+### Alternative Symbol Layers
 
 
-- [Extend][4] for the <kbd>Navigation</kbd> layer
-- [Neo][5] for the <kbd>Navigation</kbd> and <kbd>Symbol</kbd> layers
-- [Pascal Getreuer][6] for the <kbd>Symbol</kbd> layer
+- [Neo][5]
+- [Pascal Getreuer’s][7]
 
 
 ### Non-Goals
 ### Non-Goals
 
 
 - being the most efficient 3×5 layout — [Miryoku][1] is probably the most
 - being the most efficient 3×5 layout — [Miryoku][1] is probably the most
 advanced approach for that, at least on custom 36-key keyboards;
 advanced approach for that, at least on custom 36-key keyboards;
-- being the most intuitive 3×5 layout — [Neo][5]’s navigation-and-numpad layer
-would be an easier alternative, but a more Vim-like approach has been preferred;
 - fitting any OS layout — Arsenik works best if your OS layout has either no
 - fitting any OS layout — Arsenik works best if your OS layout has either no
 AltGr layer at all (e.g. QWERTY, Colemak, Workman…), or an optimized AltGr layer
 AltGr layer at all (e.g. QWERTY, Colemak, Workman…), or an optimized AltGr layer
 ([Lafayette][2], [Ergo-L][3]…).
 ([Lafayette][2], [Ergo-L][3]…).
@@ -100,13 +130,13 @@ AltGr layer at all (e.g. QWERTY, Colemak, Workman…), or an optimized AltGr lay
 [3]: https://ergol.org
 [3]: https://ergol.org
 [4]: https://dreymar.colemak.org/layers-extend.html
 [4]: https://dreymar.colemak.org/layers-extend.html
 [5]: https://www.neo-layout.org/
 [5]: https://www.neo-layout.org/
-[6]: https://getreuer.info/posts/keyboards/symbol-layer/
+[6]: https://github.com/lobre/shaka34
+[7]: https://getreuer.info/posts/keyboards/symbol-layer/
 
 
 
 
 TODO
 TODO
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
-- NumPad layer?
 - angle mods!
 - angle mods!
 - KMonad / Karabiner support
 - KMonad / Karabiner support
 - sample QMK / ZMK implementations for common keyboards
 - sample QMK / ZMK implementations for common keyboards

+ 50 - 47
img/all.svg

@@ -21,10 +21,12 @@
     .left   { transform: translate(-15px, 0); }
     .left   { transform: translate(-15px, 0); }
     .right  { transform: translate(+15px, 0); }
     .right  { transform: translate(+15px, 0); }
 
 
-    .shortcut { font-size: smaller; }
+    .shortcut { font-size: 10px; transform: translate(-3px,  -1px); }
     .layerSym { font-weight: normal; }
     .layerSym { font-weight: normal; }
     .layerMod { font-weight: bold; font-size: 14px; }
     .layerMod { font-weight: bold; font-size: 14px; }
-    .layerNav { font-weight: bold; transform: translateY(-22.6px); }
+    .layerNav { font-weight: bold; }
+    .layerNav { font-weight: bold; }
+    .right .layerNav { font-weight: normal; }
 
 
     .layerMod, .colorMod { fill: #333; }
     .layerMod, .colorMod { fill: #333; }
     .layerSym, .colorSym { fill: blue; }
     .layerSym, .colorSym { fill: blue; }
@@ -45,29 +47,31 @@
       <g transform="translate(90)">
       <g transform="translate(90)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">Q</text>
         <text x="12.8" y="20.6" class="level2">Q</text>
+        <text x="38.0" y="20.6" class="layerNav">⇥</text>
         <text x="38.0" y="43.4" class="layerSym">@</text>
         <text x="38.0" y="43.4" class="layerSym">@</text>
       </g>
       </g>
       <g transform="translate(150)">
       <g transform="translate(150)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">W</text>
         <text x="12.8" y="20.6" class="level2">W</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^w</text>
-        <text x="38.0" y="43.4" class="layerSym">[</text>
+        <text x="38.0" y="20.6" class="layerNav">⇱</text>
+        <text x="38.0" y="43.4" class="layerSym">&lt;</text>
       </g>
       </g>
       <g transform="translate(210)">
       <g transform="translate(210)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">E</text>
         <text x="12.8" y="20.6" class="level2">E</text>
-        <text x="38.0" y="43.4" class="layerNav">⎗</text>
-        <text x="38.0" y="43.4" class="layerSym">]</text>
+        <text x="38.0" y="20.6" class="layerNav">↑</text>
+        <text x="38.0" y="43.4" class="layerSym">&gt;</text>
       </g>
       </g>
       <g transform="translate(270)">
       <g transform="translate(270)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">R</text>
         <text x="12.8" y="20.6" class="level2">R</text>
-        <text x="38.0" y="43.4" class="layerNav">⎘</text>
+        <text x="38.0" y="20.6" class="layerNav">⇲</text>
         <text x="38.0" y="43.4" class="layerSym">$</text>
         <text x="38.0" y="43.4" class="layerSym">$</text>
       </g>
       </g>
       <g transform="translate(330)">
       <g transform="translate(330)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">T</text>
         <text x="12.8" y="20.6" class="level2">T</text>
+        <text x="38.0" y="20.6" class="layerNav">⇞</text>
         <text x="38.0" y="43.4" class="layerSym">%</text>
         <text x="38.0" y="43.4" class="layerSym">%</text>
       </g>
       </g>
     </g>
     </g>
@@ -75,25 +79,25 @@
       <g transform="translate(390)">
       <g transform="translate(390)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">Y</text>
         <text x="12.8" y="20.6" class="level2">Y</text>
-        <text x="38.0" y="43.4" class="layerNav">⇱</text>
+        <text x="38.0" y="20.6" class="layerNav">/</text>
         <text x="38.0" y="43.4" class="layerSym">^</text>
         <text x="38.0" y="43.4" class="layerSym">^</text>
       </g>
       </g>
       <g transform="translate(450)">
       <g transform="translate(450)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">U</text>
         <text x="12.8" y="20.6" class="level2">U</text>
-        <text x="38.0" y="43.4" class="layerNav">⇟</text>
+        <text x="38.0" y="20.6" class="layerNav">7</text>
         <text x="38.0" y="43.4" class="layerSym">&amp;</text>
         <text x="38.0" y="43.4" class="layerSym">&amp;</text>
       </g>
       </g>
       <g transform="translate(510)">
       <g transform="translate(510)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">I</text>
         <text x="12.8" y="20.6" class="level2">I</text>
-        <text x="38.0" y="43.4" class="layerNav">⇞</text>
-        <text x="38.0" y="43.4" class="layerSym">"</text>
+        <text x="38.0" y="20.6" class="layerNav">8</text>
+        <text x="38.0" y="43.4" class="layerSym">*</text>
       </g>
       </g>
       <g transform="translate(570)">
       <g transform="translate(570)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">O</text>
         <text x="12.8" y="20.6" class="level2">O</text>
-        <text x="38.0" y="43.4" class="layerNav">⇲</text>
+        <text x="38.0" y="20.6" class="layerNav">9</text>
         <text x="38.0" y="43.4" class="layerSym">'</text>
         <text x="38.0" y="43.4" class="layerSym">'</text>
       </g>
       </g>
       <g transform="translate(630)">
       <g transform="translate(630)">
@@ -109,7 +113,7 @@
       <g transform="translate(90)">
       <g transform="translate(90)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">A</text>
         <text x="12.8" y="20.6" class="level2">A</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^a</text>
+        <text x="38.0" y="20.6" class="layerNav shortcut">all</text>
         <text x="38.0" y="43.4" class="layerSym">{</text>
         <text x="38.0" y="43.4" class="layerSym">{</text>
       </g>
       </g>
       <g transform="translate(150)">
       <g transform="translate(150)">
@@ -117,7 +121,7 @@
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <text x="12.8" y="20.6" class="level2">S</text>
         <text x="12.8" y="20.6" class="level2">S</text>
         <text x="12.8" y="43.4" class="layerMod">⌘</text>
         <text x="12.8" y="43.4" class="layerMod">⌘</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^s</text>
+        <text x="38.0" y="20.6" class="layerNav">←</text>
         <text x="38.0" y="43.4" class="layerSym">(</text>
         <text x="38.0" y="43.4" class="layerSym">(</text>
       </g>
       </g>
       <g transform="translate(210)">
       <g transform="translate(210)">
@@ -125,7 +129,7 @@
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <text x="12.8" y="20.6" class="level2">D</text>
         <text x="12.8" y="20.6" class="level2">D</text>
         <text x="12.8" y="43.4" class="layerMod">⌥</text>
         <text x="12.8" y="43.4" class="layerMod">⌥</text>
-        <text x="38.0" y="43.4" class="layerNav">⇤</text>
+        <text x="38.0" y="20.6" class="layerNav">↓</text>
         <text x="38.0" y="43.4" class="layerSym">)</text>
         <text x="38.0" y="43.4" class="layerSym">)</text>
       </g>
       </g>
       <g transform="translate(270)">
       <g transform="translate(270)">
@@ -133,28 +137,29 @@
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <text x="12.8" y="20.6" class="level2">F</text>
         <text x="12.8" y="20.6" class="level2">F</text>
         <text x="12.8" y="43.4" class="layerMod">⌃</text>
         <text x="12.8" y="43.4" class="layerMod">⌃</text>
-        <text x="38.0" y="43.4" class="layerNav">⇥</text>
+        <text x="38.0" y="20.6" class="layerNav">→</text>
         <text x="38.0" y="43.4" class="layerSym">}</text>
         <text x="38.0" y="43.4" class="layerSym">}</text>
       </g>
       </g>
       <g transform="translate(330)">
       <g transform="translate(330)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">G</text>
         <text x="12.8" y="20.6" class="level2">G</text>
-        <text x="38.0" y="43.4" class="layerSym">_</text>
+        <text x="38.0" y="20.6" class="layerNav">⇟</text>
+        <text x="38.0" y="43.4" class="layerSym"> = </text>
       </g>
       </g>
     </g>
     </g>
     <g class="right">
     <g class="right">
       <g transform="translate(390)">
       <g transform="translate(390)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">H</text>
         <text x="12.8" y="20.6" class="level2">H</text>
-        <text x="38.0" y="43.4" class="layerNav">←</text>
-        <text x="38.0" y="43.4" class="layerSym">|</text>
+        <text x="38.0" y="20.6" class="layerNav">-</text>
+        <text x="38.0" y="43.4" class="layerSym">\</text>
       </g>
       </g>
       <g transform="translate(450)">
       <g transform="translate(450)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <text x="12.8" y="20.6" class="level2">J</text>
         <text x="12.8" y="20.6" class="level2">J</text>
         <text x="12.8" y="43.4" class="layerMod">⌃</text>
         <text x="12.8" y="43.4" class="layerMod">⌃</text>
-        <text x="38.0" y="43.4" class="layerNav">↓</text>
+        <text x="38.0" y="20.6" class="layerNav">4</text>
         <text x="38.0" y="43.4" class="layerSym">+</text>
         <text x="38.0" y="43.4" class="layerSym">+</text>
       </g>
       </g>
       <g transform="translate(510)">
       <g transform="translate(510)">
@@ -162,7 +167,7 @@
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <text x="12.8" y="20.6" class="level2">K</text>
         <text x="12.8" y="20.6" class="level2">K</text>
         <text x="12.8" y="43.4" class="layerMod">⌥</text>
         <text x="12.8" y="43.4" class="layerMod">⌥</text>
-        <text x="38.0" y="43.4" class="layerNav">↑</text>
+        <text x="38.0" y="20.6" class="layerNav">5</text>
         <text x="38.0" y="43.4" class="layerSym">-</text>
         <text x="38.0" y="43.4" class="layerSym">-</text>
       </g>
       </g>
       <g transform="translate(570)">
       <g transform="translate(570)">
@@ -170,13 +175,14 @@
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <rect width="26" height="26" rx="2" ry="2" class="dualKey"/>
         <text x="12.8" y="20.6" class="level2">L</text>
         <text x="12.8" y="20.6" class="level2">L</text>
         <text x="12.8" y="43.4" class="layerMod">⌘</text>
         <text x="12.8" y="43.4" class="layerMod">⌘</text>
-        <text x="38.0" y="43.4" class="layerNav">→</text>
-        <text x="38.0" y="43.4" class="layerSym">*</text>
+        <text x="38.0" y="20.6" class="layerNav">6</text>
+        <text x="38.0" y="43.4" class="layerSym">/</text>
       </g>
       </g>
       <g transform="translate(630)">
       <g transform="translate(630)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="43.4" class="level1">;</text>
         <text x="12.8" y="43.4" class="level1">;</text>
         <text x="12.8" y="20.6" class="level2">:</text>
         <text x="12.8" y="20.6" class="level2">:</text>
+        <text x="38.0" y="20.6" class="layerNav">0</text>
         <text x="38.0" y="43.4" class="layerSym">!</text>
         <text x="38.0" y="43.4" class="layerSym">!</text>
       </g>
       </g>
     </g>
     </g>
@@ -188,7 +194,7 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g>
         <g>
           <text x="12.8" y="20.6" class="level2">Z</text>
           <text x="12.8" y="20.6" class="level2">Z</text>
-          <text x="38.0" y="43.4" class="layerNav shortcut">^z</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">undo</text>
           <text x="38.0" y="43.4" class="layerSym">~</text>
           <text x="38.0" y="43.4" class="layerSym">~</text>
         </g>
         </g>
       </g>
       </g>
@@ -196,30 +202,31 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g>
         <g>
           <text x="12.8" y="20.6" class="level2">X</text>
           <text x="12.8" y="20.6" class="level2">X</text>
-          <text x="38.0" y="43.4" class="layerNav shortcut">^x</text>
-          <text x="38.0" y="43.4" class="layerSym">&lt;</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">cut</text>
+          <text x="38.0" y="43.4" class="layerSym">[</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(210)">
       <g transform="translate(210)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g>
         <g>
           <text x="12.8" y="20.6" class="level2">C</text>
           <text x="12.8" y="20.6" class="level2">C</text>
-          <text x="38.0" y="43.4" class="layerNav shortcut">^c</text>
-          <text x="38.0" y="43.4" class="layerSym">&gt;</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">copy</text>
+          <text x="38.0" y="43.4" class="layerSym">]</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(270)">
       <g transform="translate(270)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g>
         <g>
           <text x="12.8" y="20.6" class="level2">V</text>
           <text x="12.8" y="20.6" class="level2">V</text>
-          <text x="38.0" y="43.4" class="layerNav shortcut">^v</text>
-          <text x="38.0" y="43.4" class="layerSym"> = </text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">paste</text>
+          <text x="38.0" y="43.4" class="layerSym">_</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(330)">
       <g transform="translate(330)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g>
         <g>
           <text x="12.8" y="20.6" class="level2">B</text>
           <text x="12.8" y="20.6" class="level2">B</text>
+        <text x="38.0" y="20.6" class="layerNav">⇤</text>
           <text x="38.0" y="43.4" class="layerSym">#</text>
           <text x="38.0" y="43.4" class="layerSym">#</text>
         </g>
         </g>
       </g>
       </g>
@@ -228,36 +235,33 @@
       <g transform="translate(390)">
       <g transform="translate(390)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">N</text>
         <text x="12.8" y="20.6" class="level2">N</text>
-        <text x="30.0" y="43.4" class="layerNav">🖰</text>
-        <text x="38.0" y="43.4" class="layerNav">←</text>
-        <text x="38.0" y="43.4" class="layerSym">\</text>
+        <text x="38.0" y="20.6" class="layerNav">,</text>
+        <text x="38.0" y="43.4" class="layerSym">|</text>
       </g>
       </g>
       <g transform="translate(450)">
       <g transform="translate(450)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">M</text>
         <text x="12.8" y="20.6" class="level2">M</text>
-        <text x="30.0" y="43.4" class="layerNav">🖰</text>
-        <text x="42.0" y="43.4" class="layerNav">↓</text>
-        <text x="38.0" y="43.4" class="layerSym">/</text>
+        <text x="38.0" y="20.6" class="layerNav">1</text>
+        <text x="38.0" y="43.4" class="layerSym">!</text>
       </g>
       </g>
       <g transform="translate(510)">
       <g transform="translate(510)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="43.4" class="level1">,</text>
         <text x="12.8" y="43.4" class="level1">,</text>
         <text x="12.8" y="20.6" class="level2">&lt;</text>
         <text x="12.8" y="20.6" class="level2">&lt;</text>
-        <text x="30.0" y="43.4" class="layerNav">🖰</text>
-        <text x="42.0" y="43.4" class="layerNav">↑</text>
+        <text x="38.0" y="20.6" class="layerNav">2</text>
         <text x="38.0" y="43.4" class="layerSym">;</text>
         <text x="38.0" y="43.4" class="layerSym">;</text>
       </g>
       </g>
       <g transform="translate(570)">
       <g transform="translate(570)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="43.4" class="level1">.</text>
         <text x="12.8" y="43.4" class="level1">.</text>
         <text x="12.8" y="20.6" class="level2">&gt;</text>
         <text x="12.8" y="20.6" class="level2">&gt;</text>
-        <text x="30.0" y="43.4" class="layerNav">🖰</text>
-        <text x="38.0" y="43.4" class="layerNav">→</text>
+        <text x="38.0" y="20.6" class="layerNav">3</text>
         <text x="38.0" y="43.4" class="layerSym">:</text>
         <text x="38.0" y="43.4" class="layerSym">:</text>
       </g>
       </g>
       <g transform="translate(630)">
       <g transform="translate(630)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <text x="12.8" y="20.6" class="level2">?</text>
         <text x="12.8" y="20.6" class="level2">?</text>
+        <text x="38.0" y="20.6" class="layerNav">.</text>
         <text x="38.0" y="43.4" class="layerSym">?</text>
         <text x="38.0" y="43.4" class="layerSym">?</text>
       </g>
       </g>
     </g>
     </g>
@@ -267,21 +271,20 @@
     <g transform="translate(180)">
     <g transform="translate(180)">
       <rect width="82" height="52" rx="5" ry="5"/>
       <rect width="82" height="52" rx="5" ry="5"/>
       <rect width="41" height="26" rx="2" ry="2" class="dualKey"/>
       <rect width="41" height="26" rx="2" ry="2" class="dualKey"/>
-      <text x="20.5" y="42.8" class="layerMod shortcut">shift</text>
-      <text x="61.5" y="42.8" class="layerMod shortcut colorSym">num</text>
-      <text x="61.5" y="42.8" class="layerNav" style="font-size: 14px;">⌦</text>
+      <text x="20.5" y="42.8" class="layerMod">shift</text>
+      <text x="61.5" y="20.6" class="layerNav" style="font-size: 14px;">⌦</text>
       <text x="20.5" y="20.6" class="level2" style="font-size: 14px;">⌫</text>
       <text x="20.5" y="20.6" class="level2" style="font-size: 14px;">⌫</text>
     </g>
     </g>
     <g transform="translate(270)">
     <g transform="translate(270)">
       <rect width="232" height="52" rx="5" ry="5"/>
       <rect width="232" height="52" rx="5" ry="5"/>
-      <rect width="116" height="26" rx="2" ry="2" class="dualKey"/>
-      <text x="58.0" y="42.8" class="layerMod colorNav shortcut">navigation</text>
+      <rect width="41" height="26" rx="2" ry="2" class="dualKey"/>
+      <text x="20.5" y="42.8" class="layerMod colorNav">nav</text>
     </g>
     </g>
     <g transform="translate(510)">
     <g transform="translate(510)">
       <rect width="82" height="52" rx="5" ry="5"/>
       <rect width="82" height="52" rx="5" ry="5"/>
       <rect width="41" height="26" rx="2" ry="2" class="dualKey"/>
       <rect width="41" height="26" rx="2" ry="2" class="dualKey"/>
-      <text x="20.5" y="42.8" class="layerMod colorSym shortcut">sym</text>
-      <text x="61.5" y="42.8" class="layerNav">⎋</text>
+      <text x="20.5" y="42.8" class="layerMod colorSym">sym</text>
+      <text x="61.5" y="20.6" class="layerNav" style="font-weight: normal;">⎋</text>
       <text x="20.5" y="22.6" class="level2">⏎</text>
       <text x="20.5" y="22.6" class="level2">⏎</text>
     </g>
     </g>
   </g>
   </g>

BIN
img/arsenik.png


BIN
img/arsenik.xcf


+ 45 - 0
img/base_easy.svg

@@ -0,0 +1,45 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="26 -4 720 60">
+
+  <style>
+    rect, path {
+      fill: #f8f8f8;
+      stroke: #666;
+      stroke-width: .5px;
+    }
+    text {
+      fill: #999;
+      font: normal 20px sans-serif;
+      text-align: center;
+    }
+    .layer {
+      font-size: 14px;
+      font-weight: bold;
+      text-anchor: middle;
+      fill: #333;
+    }
+
+    @media (prefers-color-scheme: dark) {
+      text       { fill: #888; }
+      rect, path { fill: #444; }
+      .layer     { fill: #eee; }
+    }
+  </style>
+
+  <g id="row_AA">
+    <g transform="translate(180)">
+      <rect width="82" height="52" rx="5" ry="5"/>
+      <text x="12.8" y="20.6" style="font-size: 14px;">⌫</text>
+      <text x="41.0" y="42.8" class="layer">Alt</text>
+    </g>
+    <g class="homeKey" transform="translate(270)">
+      <rect width="232" height="52" rx="5" ry="5"/>
+      <text x="116.0" y="42.8" class="layer" style="fill: #e83;">Navigation</text>
+    </g>
+    <g transform="translate(510)">
+      <rect width="82" height="52" rx="5" ry="5"/>
+      <text x="12.8" y="23.6">⏎</text>
+      <text x="41.0" y="42.8" class="layer" style="fill: #66d;">Symbols</text>
+    </g>
+  </g>
+
+</svg>

+ 64 - 0
img/base_hrm.svg

@@ -0,0 +1,64 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-120 -4 720 60">
+
+  <style>
+    rect, path {
+      fill: #f8f8f8;
+      stroke: #666;
+      stroke-width: .5px;
+    }
+    text {
+      fill: #999;
+      font: normal 20px sans-serif;
+      text-align: center;
+    }
+    .layer {
+      font-size: 14px;
+      font-weight: bold;
+      text-anchor: middle;
+      fill: #333;
+    }
+
+    @media (prefers-color-scheme: dark) {
+      text       { fill: #888; }
+      rect, path { fill: #444; }
+      .layer     { fill: #eee; }
+    }
+  </style>
+
+  <g id="row_AC" text-anchor="middle">
+    <g transform="translate(90)">
+      <rect width="52" height="52" rx="5" ry="5"/>
+      <g class="key">
+        <text x="12.8" y="20.6">A</text>
+      </g>
+    </g>
+    <g transform="translate(150)">
+      <rect width="52" height="52" rx="5" ry="5"/>
+      <g class="key">
+        <text x="12.8" y="20.6">S</text>
+        <text x="26.0" y="43.4" class="layer">Super</text>
+      </g>
+    </g>
+    <g transform="translate(210)">
+      <rect width="52" height="52" rx="5" ry="5"/>
+      <g class="key">
+        <text x="12.8" y="20.6">D</text>
+        <text x="26.0" y="43.4" class="layer">Alt</text>
+      </g>
+    </g>
+    <g transform="translate(270)">
+      <rect width="52" height="52" rx="5" ry="5"/>
+      <g class="key">
+        <text x="12.8" y="20.6">F</text>
+        <text x="26.0" y="43.4" class="layer">Ctrl</text>
+      </g>
+    </g>
+    <g transform="translate(330)">
+      <rect width="52" height="52" rx="5" ry="5"/>
+      <g class="key">
+        <text x="12.8" y="20.6">G</text>
+      </g>
+    </g>
+  </g>
+
+</svg>

+ 9 - 5
img/index.html

@@ -16,15 +16,19 @@
   </style>
   </style>
 </head>
 </head>
 <body>
 <body>
-  <h1> Arsenik
+  <h1> Arsenik </h1>
   <img src="all.svg">
   <img src="all.svg">
-  <h2> Base
+  <h2> Base </h2>
   <img src="base.svg">
   <img src="base.svg">
-  <h2> Symbols
+	<br>
+  <img src="base_easy.svg">
+	<br>
+  <img src="base_hrm.svg">
+  <h2> Symbols </h2>
   <img src="symbols.svg">
   <img src="symbols.svg">
-  <h2> Navigation
+  <h2> Navigation </h2>
   <img src="navigation.svg">
   <img src="navigation.svg">
-  <h2> NumRow
+  <h2> NumRow </h2>
   <img src="numrow.svg">
   <img src="numrow.svg">
 </body>
 </body>
 </html>
 </html>

+ 13 - 15
img/symbols.svg

@@ -45,14 +45,14 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">W</text>
           <text x="12.8" y="20.6" class="level2">W</text>
-          <text x="38.0" y="43.4" class="layerSym">[</text>
+          <text x="38.0" y="43.4" class="layerSym">&lt;</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(210)">
       <g transform="translate(210)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">E</text>
           <text x="12.8" y="20.6" class="level2">E</text>
-          <text x="38.0" y="43.4" class="layerSym">]</text>
+          <text x="38.0" y="43.4" class="layerSym">&gt;</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(270)">
       <g transform="translate(270)">
@@ -89,7 +89,7 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">I</text>
           <text x="12.8" y="20.6" class="level2">I</text>
-          <text x="38.0" y="43.4" class="layerSym">"</text>
+          <text x="38.0" y="43.4" class="layerSym">*</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(570)">
       <g transform="translate(570)">
@@ -143,7 +143,7 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">G</text>
           <text x="12.8" y="20.6" class="level2">G</text>
-          <text x="38.0" y="43.4" class="layerSym">_</text>
+          <text x="38.0" y="43.4" class="layerSym"> = </text>
         </g>
         </g>
       </g>
       </g>
     </g>
     </g>
@@ -152,7 +152,7 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">H</text>
           <text x="12.8" y="20.6" class="level2">H</text>
-          <text x="38.0" y="43.4" class="layerSym">|</text>
+          <text x="38.0" y="43.4" class="layerSym">\</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(450)">
       <g transform="translate(450)">
@@ -173,7 +173,7 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">L</text>
           <text x="12.8" y="20.6" class="level2">L</text>
-          <text x="38.0" y="43.4" class="layerSym">*</text>
+          <text x="38.0" y="43.4" class="layerSym">/</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(630)">
       <g transform="translate(630)">
@@ -181,7 +181,7 @@
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="43.4" class="level1">;</text>
           <text x="12.8" y="43.4" class="level1">;</text>
           <text x="12.8" y="20.6" class="level2">:</text>
           <text x="12.8" y="20.6" class="level2">:</text>
-          <text x="38.0" y="43.4" class="layerSym">!</text>
+          <text x="38.0" y="43.4" class="layerSym">"</text>
         </g>
         </g>
       </g>
       </g>
     </g>
     </g>
@@ -200,21 +200,21 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">X</text>
           <text x="12.8" y="20.6" class="level2">X</text>
-          <text x="38.0" y="43.4" class="layerSym">&lt;</text>
+          <text x="38.0" y="43.4" class="layerSym">[</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(210)">
       <g transform="translate(210)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">C</text>
           <text x="12.8" y="20.6" class="level2">C</text>
-          <text x="38.0" y="43.4" class="layerSym">&gt;</text>
+          <text x="38.0" y="43.4" class="layerSym">]</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(270)">
       <g transform="translate(270)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">V</text>
           <text x="12.8" y="20.6" class="level2">V</text>
-          <text x="38.0" y="43.4" class="layerSym"> = </text>
+          <text x="38.0" y="43.4" class="layerSym">_</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(330)">
       <g transform="translate(330)">
@@ -230,14 +230,14 @@
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">N</text>
           <text x="12.8" y="20.6" class="level2">N</text>
-          <text x="38.0" y="43.4" class="layerSym">\</text>
+          <text x="38.0" y="43.4" class="layerSym">|</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(450)">
       <g transform="translate(450)">
         <rect width="52" height="52" rx="5" ry="5"/>
         <rect width="52" height="52" rx="5" ry="5"/>
         <g class="key" text-anchor="middle">
         <g class="key" text-anchor="middle">
           <text x="12.8" y="20.6" class="level2">M</text>
           <text x="12.8" y="20.6" class="level2">M</text>
-          <text x="38.0" y="43.4" class="layerSym">/</text>
+          <text x="38.0" y="43.4" class="layerSym">!</text>
         </g>
         </g>
       </g>
       </g>
       <g transform="translate(510)">
       <g transform="translate(510)">
@@ -270,15 +270,13 @@
   <g id="row_AA">
   <g id="row_AA">
     <g transform="translate(180)">
     <g transform="translate(180)">
       <rect width="82" height="52" rx="5" ry="5"/>
       <rect width="82" height="52" rx="5" ry="5"/>
-      <!-- <text x="20.5" y="20.6" class="level2" style="font-size: 14px;">⌫</text> -->
-      <text x="20.5" y="42.8" class="layer layerNum">num</text>
+      <text x="20.5" y="20.6" class="level2" style="font-size: 14px;">⌫</text>
     </g>
     </g>
     <g transform="translate(270)">
     <g transform="translate(270)">
       <rect width="232" height="52" rx="5" ry="5"/>
       <rect width="232" height="52" rx="5" ry="5"/>
     </g>
     </g>
     <g transform="translate(510)">
     <g transform="translate(510)">
       <rect width="82" height="52" rx="5" ry="5" class="layerSym"/>
       <rect width="82" height="52" rx="5" ry="5" class="layerSym"/>
-      <!-- <text x="20.5" y="23.6" class="level2">⏎</text> -->
       <text x="20.5" y="42.8" class="layer">sym</text>
       <text x="20.5" y="42.8" class="layer">sym</text>
     </g>
     </g>
   </g>
   </g>

+ 13 - 13
kanata/README.md

@@ -2,29 +2,29 @@ kanata
 ================================================================================
 ================================================================================
 
 
 
 
-Pick Your Poison
+Pick Your Poison!
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
-| type  | with homerow-mods      | without homerow-mods        | suitable layouts                  |
-| ----- | ---------------------- | --------------------------- | --------------------------------- |
-| ANSI  | [arsenik_ansi.kbd][1]  | [arsenik_easy_ansi.kbd][3]  | QWERTY, Dvorak, Colemak, Workman… |
-| AltGr | [arsenik_altgr.kbd][2] | [arsenik_easy_altgr.kbd][4] | [Lafayette42][10], [Ergo-L][11]…  |
+| 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_ansi.kbd
-[2]: arsenik_altgr.kbd
-[3]: arsenik_easy_ansi.kbd
-[4]: arsenik_easy_altgr.kbd
+[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
 - 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
 QWERTY-ANSI positions: works fine with most US layouts but Dvorak users will get
 a slightly different <kbd>Prog</kbd> layer.
 a slightly different <kbd>Prog</kbd> layer.
 - AltGr variants use your layout’s AltGr layer instead of the <kbd>Prog</kbd>
 - 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
 layer: perfect for layouts that already have an optimized AltGr layer, such as
 [QWERTY-Lafayette][10] and [Ergo-L][11].
 [QWERTY-Lafayette][10] and [Ergo-L][11].
-- “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.
 
 
 [10]: https://qwerty-lafayette.org/42
 [10]: https://qwerty-lafayette.org/42
 [11]: https://ergol.org
 [11]: https://ergol.org

+ 11 - 37
kanata/arsenik_easy_altgr.kbd

@@ -12,57 +12,31 @@
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
-       @sft           @nav           @sym
+       @alt           @nav           @sym
 )
 )
 
 
 ;; Navigation layer:
 ;; Navigation layer:
-;;  - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll
-;;  - left: one-hand shortcuts (Ctrl-WASZXCV), Tab/Shift-Tab, prev/next
-(deflayer vimnav
-  lrld C-w  bck  fwd  XX   home pgdn pgup end  XX
-  C-a  C-s S-tab tab  XX   lft  down up   rght XX
-  C-z  C-x  C-c  C-v  XX   @mwl @mwd @mwu @mwr XX
-       del            _              esc
-)
-
-;; Symbol layer (= AltGr except for the left thumb key)
-(deflayer symbols
-  RA-q RA-w RA-e RA-r RA-t RA-y RA-u RA-i RA-o RA-p
-  RA-a RA-s RA-d RA-f RA-g RA-h RA-j RA-k RA-l RA-;
-  RA-z RA-x RA-c RA-v RA-b RA-n RA-m RA-, RA-. RA-/
-       @num           spc            _
-)
-
-;; 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
-  XX   XX   XX   XX   XX   S--  -    ,    .    /
-       @sft           S-spc          @sym
+;;  - 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
 ;; Special key aliases
 (defalias
 (defalias
   ;; Main mod-tap: VimNav layer when hold, Space when tapped.
   ;; Main mod-tap: VimNav layer when hold, Space when tapped.
   ;; The space key must be hold long enough (300ms) to become a layer shift.
   ;; 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
   ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
   ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
   ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
   ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
   ;;  - 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.
   ;;    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)
-  sym (tap-hold-press 200 200 ret (layer-toggle symbols))
-
-  ;; NumRow layer shifter
-  num (layer-toggle numrow)
-
-  ;; Mouse wheel emulation
-  mwu (mwheel-up    50 120)
-  mwd (mwheel-down  50 120)
-  mwl (mwheel-left  50 120)
-  mwr (mwheel-right 50 120)
+  alt (tap-hold-press 200 200 bspc lalt)
+  sym (tap-hold-press 200 200 ret ralt)
 )
 )
 
 
 ;; vim: set ft=lisp
 ;; vim: set ft=lisp

+ 14 - 32
kanata/arsenik_easy_ansi.kbd

@@ -12,33 +12,25 @@
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
-       @sft           @nav           @sym
+       @alt           @nav           @sym
 )
 )
 
 
 ;; Navigation layer:
 ;; Navigation layer:
-;;  - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll
-;;  - left: one-hand shortcuts (Ctrl-WASZXCV), Tab/Shift-Tab, prev/next
-(deflayer vimnav
-  lrld C-w  bck  fwd  XX   home pgdn pgup end  XX
-  C-a  C-s S-tab tab  XX   lft  down up   rght XX
-  C-z  C-x  C-c  C-v  XX   @mwl @mwd @mwu @mwr XX
-       del            _              esc
+;;  - 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
 ;; Symbol layer
 (deflayer symbols
 (deflayer symbols
-  1    [    ]    S-4  S-5  S-6  S-7  S-8  '    0
-  S-[  S-9  S-0  S-]  =    S-=  -    S-,  S-.  S-'
-  @tld grv  S-\  S--  /    \    S-2  S-3  S-1  S-/
-  _    @num           spc            @alt _    _
-)
-
-;; 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
-  XX   XX   XX   XX   XX   S--  -    ,    .    /
-       @sft           S-spc          @sym
+  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
 ;; Special key aliases
@@ -47,24 +39,14 @@
 
 
   ;; Main mod-tap: VimNav layer when hold, Space when tapped.
   ;; Main mod-tap: VimNav layer when hold, Space when tapped.
   ;; The space key must be hold long enough (300ms) to become a layer shift.
   ;; 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
   ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
   ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
   ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
   ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
   ;;  - 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.
   ;;    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)
+  alt (tap-hold-press 200 200 ret lalt)
   sym (tap-hold-press 200 200 ret (layer-toggle symbols))
   sym (tap-hold-press 200 200 ret (layer-toggle symbols))
-
-  ;; NumRow layer shifter
-  num (layer-toggle numrow)
-
-  ;; Mouse wheel emulation
-  mwu (mwheel-up    50 120)
-  mwd (mwheel-down  50 120)
-  mwl (mwheel-left  50 120)
-  mwr (mwheel-right 50 120)
 )
 )
 
 
 ;; vim: set ft=lisp
 ;; vim: set ft=lisp

+ 10 - 36
kanata/arsenik_altgr.kbd

@@ -13,40 +13,24 @@
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
   _    @ss  @dd  @ff  _    _    @jj  @kk  @ll  _
   _    @ss  @dd  @ff  _    _    @jj  @kk  @ll  _
   _    _    _    _    _    _    _    _    _    _
   _    _    _    _    _    _    _    _    _    _
-       @sft           @nav           @sym
+       @sft           @nav           @alt
 )
 )
 
 
 ;; Navigation layer:
 ;; Navigation layer:
-;;  - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll
-;;  - left: one-hand shortcuts (Ctrl-WASZXCV), Tab/Shift-Tab, prev/next
-(deflayer vimnav
-  lrld C-w  bck  fwd  XX   home pgdn pgup end  XX
-  C-a  C-s S-tab tab  XX   lft  down up   rght XX
-  C-z  C-x  C-c  C-v  XX   @mwl @mwd @mwu @mwr XX
-       del            _              esc
-)
-
-;; Symbol layer (= AltGr except for the left thumb key)
-(deflayer symbols
-  RA-q RA-w RA-e RA-r RA-t RA-y RA-u RA-i RA-o RA-p
-  RA-a RA-s RA-d RA-f RA-g RA-h RA-j RA-k RA-l RA-;
-  RA-z RA-x RA-c RA-v RA-b RA-n RA-m RA-, RA-. RA-/
-       @num           spc            _
-)
-
-;; 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
-  XX   XX   XX   XX   XX   S--  -    ,    .    /
-       @sft           S-spc          @sym
+;;  - 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
 ;; Special key aliases
 (defalias
 (defalias
-  ;; Main mod-tap: VimNav layer when hold, Space when tapped.
+  ;; Main mod-tap: NumNav layer when hold, Space when tapped.
   ;; The space key must be hold long enough (300ms) to become a layer shift.
   ;; 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
   ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
   ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
   ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
@@ -54,10 +38,6 @@
   ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
   ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
   sft (tap-hold-press 200 200 bspc lsft)
   sft (tap-hold-press 200 200 bspc lsft)
   alt (tap-hold-press 200 200 ret ralt)
   alt (tap-hold-press 200 200 ret ralt)
-  sym (tap-hold-press 200 200 ret (layer-toggle symbols))
-
-  ;; NumRow layer shifter
-  num (layer-toggle numrow)
 
 
   ;; Home-row mods
   ;; Home-row mods
   ;; Must be hold long enough (300ms) to become a modifier.
   ;; Must be hold long enough (300ms) to become a modifier.
@@ -67,12 +47,6 @@
   jj (tap-hold 200 300 j rctl)
   jj (tap-hold 200 300 j rctl)
   kk (tap-hold 200 300 k lalt)
   kk (tap-hold 200 300 k lalt)
   ll (tap-hold 200 300 l rmet)
   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)
 )
 )
 
 
 ;; vim: set ft=lisp
 ;; vim: set ft=lisp

+ 12 - 30
kanata/arsenik_ansi.kbd

@@ -17,29 +17,21 @@
 )
 )
 
 
 ;; Navigation layer:
 ;; Navigation layer:
-;;  - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll
-;;  - left: one-hand shortcuts (Ctrl-WASZXCV), Tab/Shift-Tab, prev/next
-(deflayer vimnav
-  lrld C-w  bck  fwd  XX   home pgdn pgup end  XX
-  C-a  C-s S-tab tab  XX   lft  down up   rght XX
-  C-z  C-x  C-c  C-v  XX   @mwl @mwd @mwu @mwr XX
-       del            _              esc
+;;  - 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
 ;; Symbol layer
 (deflayer symbols
 (deflayer symbols
-  1    [    ]    S-4  S-5  S-6  S-7  S-8  '    0
-  S-[  S-9  S-0  S-]  =    S-=  -    S-,  S-.  S-'
-  @tld grv  S-\  S--  /    \    S-2  S-3  S-1  S-/
-       @num           spc            @alt
-)
-
-;; 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
-  XX   XX   XX   XX   XX   S--  -    ,    .    /
-       @sft           S-spc          @sym
+  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
 ;; Special key aliases
@@ -48,19 +40,15 @@
 
 
   ;; Main mod-tap: VimNav layer when hold, Space when tapped.
   ;; Main mod-tap: VimNav layer when hold, Space when tapped.
   ;; The space key must be hold long enough (300ms) to become a layer shift.
   ;; 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
   ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
   ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
   ;;  - acts as a modifier by default, or as BS/Ret when tapped separately;
  ;;  - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
  ;;  - 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.
   ;;    neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
   sft (tap-hold-press 200 200 bspc lsft)
   sft (tap-hold-press 200 200 bspc lsft)
-  alt (tap-hold-press 200 200 ret ralt)
   sym (tap-hold-press 200 200 ret (layer-toggle symbols))
   sym (tap-hold-press 200 200 ret (layer-toggle symbols))
 
 
-  ;; NumRow layer shifter
-  num (layer-toggle numrow)
-
   ;; Home-row mods
   ;; Home-row mods
   ;; Must be hold long enough (300ms) to become a modifier.
   ;; Must be hold long enough (300ms) to become a modifier.
   ss (tap-hold 200 300 s lmet)
   ss (tap-hold 200 300 s lmet)
@@ -69,12 +57,6 @@
   jj (tap-hold 200 300 j rctl)
   jj (tap-hold 200 300 j rctl)
   kk (tap-hold 200 300 k ralt)
   kk (tap-hold 200 300 k ralt)
   ll (tap-hold 200 300 l rmet)
   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)
 )
 )
 
 
 ;; vim: set ft=lisp
 ;; vim: set ft=lisp