Browse Source

docs: readme and images matching actual Arsenik (#26)

* docs: readme and images matching actual Arsenik

* docs: Kazé PR review

Co-authored-by: Fabien Cazenave <fabi1cazenave@users.noreply.github.com>

* docs: meaningful links

* docs: Discord PR review

* docs: all images in ortho layout except on home

* docs: one page explanation

* docs: Kazé PR review

Co-authored-by: Fabien Cazenave <fabi1cazenave@users.noreply.github.com>

* docs: Kazé PR review

* docs: Lafayette layer instead of 1dk layer

---------

Co-authored-by: Fabien Cazenave <fabi1cazenave@users.noreply.github.com>
trilowy 1 year ago
parent
commit
19ed5fcc56

+ 228 - 118
README.md

@@ -1,210 +1,320 @@
-Arsenik
-================================================================================
+<h1 align="center">Arsenik</h1>
 
 
-Configure your keyboard (even if it is not programmable) with a
-beginner-friendly, [Miryoku][1]-like approach to minimize finger movements!
+<div align="center">
+  ★ <strong>Ergonomics for any keyboard!</strong> ★
+</div>
 
 
-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>
+<br>
+
+<div align="center">
+  Configure your keyboard — even if it is not programmable — with a
+  beginner-friendly approach to minimize finger movements!
+</div>
+
+<br>
 
 
 ![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!**
+*Note: The keyboard layout presented here in the illustration is Qwerty but it
+works with other layouts as well — e.g. Azerty, Qwertz, Ergo‑L, Bépo…*
+
+--------------------------------------------------------------------------------
 
 
-- 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.
-- 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.
 
 
-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
-with any keyboard, including your laptop’s.
+Table of contents
+--------------------------------------------------------------------------------
 
 
-[47]: https://olkb.com/collections/planck
-[44]: https://atreus.technomancy.us
-[42]: https://github.com/foostan/crkbd
-[34]: https://github.com/pierrechevalier83/ferris
+- [Philosophy](#philosophy)
+- [Features](#pick-your-poison)
+  1. [Angle mod](#1-angle-mod)
+  2. [Mod-taps](#2-supercharge-your-thumbs-with-mod-taps)
+  3. [Symbols layer](#3-symbols-layer)
+  4. [Navigation layer](#4-navigation-layer)
+  5. [Keyboard layout](#5-keyboard-layout)
+  6. [Extra customization](#bonus-spice-it-up)
+- [Installation](#installation)
+- [Why “Arsenik”?](#why-arsenik)
+- [Join the community](#join-the-community)
 
 
 
 
-Main Benefits
+Philosophy
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
-- <kbd>Shift</kbd>, <kbd>Backspace</kbd>, <kbd>Return</kbd> under the thumbs!
-- all numbers and programming symbols in the comfortable 3×10 zone
-- symmetrical modifiers on the home row
-- easier left-hand shortcuts
-- works with any keyboard
+**Bring the keys to your fingers, rather than moving your fingers to the keys.**
 
 
-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
-Alt/Cmd keys.
+Not sure if you should buy that expensive ergonomic keyboard?
+
+Download a ready-to-use Arsenik configuration for [Kanata], and enjoy on your
+regular keyboard features that were normally only accessible to programmable
+keyboard.
+
+*Note: You might benefit the most of Arsenik if you are [touch typing].*
 
 
 
 
 Pick Your Poison!
 Pick Your Poison!
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
-Adjusting to compact keyboard layouts isn’t easy, but Arsenik is designed for
-a step-by-step approach.
+Choose which Arsenik features to use from the following options:
+
+
+### 1. Angle mod
+
+On an ISO keyboard, it permutes the extra down-left key to ease the angle on
+your left wrist when typing.
+
+![Angle mod](./img/angle_mod.svg)
 
 
-### 1. Supercharge Your Thumbs
+
+### 2. Supercharge your thumbs with mod-taps
+
+#### First: layer-taps
 
 
 If you’re new to mod-taps, we suggest to start by adding the “layer-tap” option
 If you’re new to mod-taps, we suggest to start by adding the “layer-tap” option
 where only the thumbs are affected:
 where only the thumbs are affected:
 
 
 - the left thumb key remains a <kbd>Cmd</kbd> or <kbd>Alt</kbd> key when held,
 - 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 held (similar to
-an <kbd>AltGr</kbd> key), and emits <kbd>Return</kbd> when tapped;
-- the spacebar brings the <kbd>Navigation</kbd> layer when held.
+- the right thumb key brings the <kbd>Symbols</kbd> layer when held (in blue)
+— where all programming symbols are arranged for comfort and efficiency — and
+emits <kbd>Return</kbd> when tapped;
+- the spacebar brings the <kbd>Navigation</kbd> layer when held (in orange).
 
 
-![alt, navigation and sym layers under the thumbs](img/base_easy.svg)
+![alt, navigation and sym layers under the thumbs](./img/layer_taps.svg)
 
 
 Having <kbd>Backspace</kbd> and <kbd>Enter</kbd> under the thumbs is enough to
 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.
+reduce the pinky fatigue very significantly. And using the <kbd>Symbols</kbd>
+and <kbd>Navigation</kbd> layers further reduces hand and finger movements.
 
 
-### 2. Enable the Home-Row Mods
 
 
-When you are familiar with mod-taps, it’s time to enable them on the homerow
-with the “hrm” variants:
+#### Next level: enable the Home Row Mods
+
+When you are familiar with mod-taps, it’s time to enable them on the home row
+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 held 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>
 when held.
 when held.
 
 
-![homerow mods on SDF keys](img/base_hrm.svg)
+![home row mods on SDF keys](./img/hrm.svg)
+
+This is a very basic variant of the [Miryoku] principle: one layer on each
+thumb key, and symmetrical modifiers on the home row.
+
+
+### 3. Symbols layer
+
+For the <kbd>Symbols</kbd> layer you can keep <kbd>AltGr</kbd> as-is. It is
+useful for keyboard layouts that rely heavily on the <kbd>AltGr</kbd> key.
+
+But the real fun (especially for programmers) happens when we enable the 
+“Lafayette” programmation layer!
 
 
-This is a very basic variant of the [Miryoku][1] principle: one layer on each
-thumb key, and symmetrical modifiers on the homerow.
+![Lafayette symbols layer on a 33-key keyboard](./img/symbols.svg)
 
 
-### 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;
-- more layers available to enable (Vim-navigation, num-row, etc).
+#### Num row >> Num pad
+
+If enabled, in <kbd>Symbols</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
+- <kbd>Space</kbd> becomes a narrow no-break space for layouts that supports it
+
+![NumRow layer on a 33-key keyboard](./img/numrow.svg)
 
 
-#### A Vim-friendly mod:
+Even on keyboards that *do* have a physical number row, this `NumRow`layer can
+be interesting to use in order to minimize finger movements furthermore.
 
 
-- 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)
+### 4. Navigation layer
 
 
-It uses 4 layers (instead of 3 for Arsenik), which makes it a natural fit
-for 34-key keyboards like the [Ferris][34].
+A basic <kbd>Navigation</kbd> layer has an arrow cluster on the left hand to
+move around and a num pad on the right hand.
 
 
-- Vim-like navigation in all apps, with any OS layout
+![navigation layer on a 33-key keyboard](./img/navigation.svg)
+
+#### A superpowered Vim-friendly mod
+
+For those who like to move the cursor with <kbd>HJKL</kbd> in all apps with any
+keyboard layout, it is possible to enable a Vim-like <kbd>Navigation</kbd>
+layer.
+
+It also has:
 - super-comfortable <kbd>Tab</kbd> and <kbd>Shift</kbd>-<kbd>Tab</kbd>
 - super-comfortable <kbd>Tab</kbd> and <kbd>Shift</kbd>-<kbd>Tab</kbd>
 - mouse emulation: previous / next and mouse scroll
 - mouse emulation: previous / next and mouse scroll
-- easy left-hand shortcuts
 
 
-![Vim navigation layer on a 33-key keyboard](img/selenium33/navigation.svg)
+![Vim navigation layer on a 33-key keyboard](./img/vim_navigation.svg)
 
 
 This <kbd>Navigation</kbd> layer has a few empty slots on purpose, so you can
 This <kbd>Navigation</kbd> layer has a few empty slots on purpose, so you can
 add our own keys or layers.
 add our own keys or layers.
 
 
+<kbd>NumPad</kbd> and <kbd>Fn</kbd> lock these layers: they remain active
+without holding the key until escaped with <kbd>Alt</kbd> or <kbd>AltGr</kbd>.
 
 
-#### NumRow >> NumPad
+![NumPad layer on a 33-key keyboard](./img/numpad.svg)
+<p align="center">
+  <em>NumPad layer toggled</em>
+</p>
 
 
-In <kbd>Symbol</kbd> mode, pressing the left thumb key brings up the
-<kbd>NumRow</kbd> layer:
+![Fn layer on a 33-key keyboard](./img/fn.svg)
+<p align="center">
+  <em>Fn layer toggled</em>
+</p>
 
 
-- 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
+### 5. Keyboard layout
 
 
-![NumRow layer on a 33-key keyboard](img/selenium33/numrow.svg)
+Choose your keyboard layout among the available ones for Arsenik to work
+properly.
 
 
-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]`).
+If your layout is not on this list, feel free to open an issue or upvote an
+existing one.
 
 
+Here are some caveats for some specific layouts:
 
 
-Downloads
---------------------------------------------------------------------------------
+<details>
+<summary>Ergo‑L/Qwerty‑Lafayette/other Lafayette layouts</summary>
 
 
-### kanata
+Arsenik works out-of-the-box with Lafayette layouts because their
+<kbd>AltGr</kbd> layer already matches Arsenik’s <kbd>Symbols</kbd> layer.
+</details>
 
 
-[Non-programmable keyboards are supported through kanata.](kanata)
+<details>
+<summary>Qwerty/Colemak</summary>
 
 
-### QMK
+Qwerty/Colemak works out-of-the-box with the Lafayette <kbd>Symbols</kbd> layer
+because there isn’t other characters in <kbd>AltGr</kbd>.
+</details>
 
 
-The QMK implementation is a bit different:
+<details>
+<summary>Azerty</summary>
 
 
-- it takes advantage of the 4 thumb keys
-- the Navigation layer uses a mouse emulation on the left hand
+By using the Lafayette <kbd>Symbols</kbd> layer, you won’t have access to the
+<kbd>€</kbd> sign in <kbd>AltGr</kbd>. You might want to remap it elsewhere, or
+not using the Lafayette <kbd>Symbols</kbd> layer.
+</details>
 
 
-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.
+<details>
+<summary>Bépo</summary>
 
 
-![QMK code](qmk/selenium33/keyoards/ferris/keymaps/1dk)
+By using the Lafayette <kbd>Symbols</kbd> layer, you won’t have access to the
+characters in <kbd>AltGr</kbd>. You might want to remap some of them elsewhere,
+or not using the Lafayette <kbd>Symbols</kbd> layer.
+</details>
 
 
-```bash
-# from the `qmk_firmware` root:
-make ferris/0_2/bling:1dk:flash
-```
+<details>
+<summary>Optimot</summary>
 
 
-### Others
+Do not enable angle mod for Optimot as it is already in angle mod with its
+driver.
 
 
-Other desktop implementations (kmonad, keyd…) would be nice to see as well.
+By using the Lafayette <kbd>Symbols</kbd> layer, you won’t have access to the
+characters in <kbd>AltGr</kbd>. You might want to remap some of them elsewhere,
+or not using the Lafayette <kbd>Symbols</kbd> layer.
+</details>
 
 
-Programmable keyboards should be trivial to configure with QMK, ZMK,
-Kaleidoscope, etc.
 
 
+### Bonus: Spice It Up
 
 
-Related Projects
+From there, you can edit the configuration to match your liking, even contribute
+to Arsenik!
+
+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.
+
+In the <kbd>NumRow</kbd> layer, you can edit the <kbd>dk1</kbd> to 
+<kbd>dk5</kbd> shortcuts to put whatever seams useful to you, a lot of available
+keys are defined in [Kanata source code][Kanata keys].
+
+In the <kbd>Navigation</kbd> layer, you can put a command on top of the
+<kbd>P</kbd> key (in Qwerty), e.g. for an application launcher.
+
+Note that Kanata can also use the laptop’s trackpoint buttons (e.g. ThinkPad)
+as two additional thumb keys. :-)
+
+
+Installation
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
+Adjusting to compact keyboard layouts isn’t easy, but Arsenik is designed for
+a step-by-step approach:
+
+- load `kanata.kbd` with Kanata ([installation instructions](kanata))
+- enable each feature by un-commenting the related line (a commented line starts
+with `;;`), you must enable one and only one line per feature
+- live-reload the configuration with <kbd>Space</kbd>+<kbd>Backspace</kbd>
+(requires the layer-taps feature enabled)
+
+If you have a programmable keyboard you might want to take a look at the
+[QMK](qmk) version of Arsenik (work in progress).
+
+Other desktop implementations (kmonad, keyd, Karabiner…) would be nice to see as
+well.
+
+
+Why “Arsenik”?
+--------------------------------------------------------------------------------
+
+33 keys layout: the 33rd element of the periodic table.
+
+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
+Alt/Cmd keys.
+
 ### Inspiration
 ### Inspiration
 
 
-- [Miryoku][1] for the main idea of using modifiers on the homerow and layer
+- [Miryoku] for the main idea of using modifiers on the home row 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
-blatantly taken *as is*;
-- [Extend][4], [Neo][5], [Shaka34][6] for the <kbd>Navigation</kbd> layer.
+- [Lafayette] and [Ergo-L] for the <kbd>Symbol</kbd> layer, which has been
+shamelessly taken *as is*;
+- [Extend], [Neo], [Shaka34] for the <kbd>Navigation</kbd> layer.
 
 
 ### Alternative Symbol Layers
 ### Alternative Symbol Layers
 
 
-- [Neo][5]
-- [Seniply][7]
-- [Pascal Getreuer’s][8]
+- [Neo]
+- [Seniply]
+- [Pascal Getreuer’s]
 
 
 ### 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] 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;
+- suiting every user out-of-the-box — Arsenik is proposed as a reasonable
+default configuration, but users are encouraged to customize it to suit their
+personal needs and preferences;
 - 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], [Ergo-L]…).
 
 
 ### Similar Projects
 ### Similar Projects
 
 
-- [Miryoku][1]: 36 keys, 6 layers
-- [Seniply][7]: 34 keys, 6 layers, no layer-taps (“Callum-style”)
-
-<!-- https://jasoncarloscox.com/writing/combo-mods/ -->
-
-[1]: https://github.com/manna-harbour/miryoku
-[2]: https://qwerty-lafayette.org/42
-[3]: https://ergol.org
-[4]: https://dreymar.colemak.org/layers-extend.html
-[5]: https://neo-layout.org
-[6]: https://github.com/lobre/shaka34
-[7]: https://stevep99.github.io/seniply/
-[8]: https://getreuer.info/posts/keyboards/symbol-layer/#my-symbol-layer
+- [Miryoku]: 36 keys, 6 layers
+- [Seniply]: 34 keys, 6 layers, no layer-taps (“Callum-style”)
 
 
 
 
-TODO
+Join the community
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
-- KMonad / Karabiner support
-- sample QMK / ZMK implementations for common keyboards
+French-speaking users may join the [Ergo-L Discord server] which hosts a
+channel to talk about Arsenik, keyboard, layouts and many more.
+
+Feel free to open an issue and/or a pull request if you encounter a bug or want
+to enhance the Arsenik experience!
+
+
+[Kanata]: https://github.com/jtroo/kanata
+[Miryoku]: https://github.com/manna-harbour/miryoku
+[touch typing]: https://en.wikipedia.org/wiki/Touch_typing
+[Lafayette]: https://qwerty-lafayette.org/42
+[Ergo-L]: https://ergol.org
+[Kanata keys]: https://github.com/jtroo/kanata/blob/main/parser/src/keys/mod.rs#L159
+[Extend]: https://dreymar.colemak.org/layers-extend.html
+[Neo]: https://neo-layout.org
+[Shaka34]: https://github.com/lobre/shaka34
+[Seniply]: https://stevep99.github.io/seniply/
+[Pascal Getreuer’s]: https://getreuer.info/posts/keyboards/symbol-layer/#my-symbol-layer
+[Ergo-L Discord server]: https://discord.gg/5xR5K3nAFX

+ 21 - 20
img/all.svg

@@ -1,6 +1,9 @@
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 
 
   <style>
   <style>
+    :root {
+      color-scheme: light dark;
+    }
     rect {
     rect {
       fill: #f8f8f8;
       fill: #f8f8f8;
       stroke: #666;
       stroke: #666;
@@ -14,18 +17,15 @@
     }
     }
     .dualKey { fill: #ddd; transform: translateY(26px); }
     .dualKey { fill: #ddd; transform: translateY(26px); }
 
 
-    #row_AD { transform: translate(64px,  64px); }
+    #row_AD { transform: translate(48px,  64px); }
     #row_AC { transform: translate(64px, 124px); }
     #row_AC { transform: translate(64px, 124px); }
-    #row_AB { transform: translate(64px, 184px); }
-    #row_AA { transform: translate(64px, 244px); }
-    .left   { transform: translate(-15px, 0); }
-    .right  { transform: translate(+15px, 0); }
+    #row_AB { transform: translate(32px, 184px); }
+    #row_AA { transform: translate(62px, 244px); }
 
 
     .shortcut { font-size: 10px; transform: translate(-3px,  -1px); }
     .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; }
     .layerNav { font-weight: bold; }
-    .layerNav { font-weight: bold; }
     .right .layerNav { font-weight: normal; }
     .right .layerNav { font-weight: normal; }
 
 
     .layerMod, .colorMod { fill: #333; }
     .layerMod, .colorMod { fill: #333; }
@@ -50,7 +50,7 @@
         <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="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"/>
@@ -82,7 +82,7 @@
         <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="20.6" 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"/>
@@ -146,7 +146,7 @@
         <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="20.6" 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>
     </g>
     <g class="right">
     <g class="right">
@@ -192,7 +192,7 @@
 
 
   <g id="row_AB">
   <g id="row_AB">
     <g class="left">
     <g class="left">
-      <g transform="translate(90)">
+      <g transform="translate(150)">
         <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>
@@ -200,7 +200,7 @@
           <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(150)">
+      <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">X</text>
           <text x="12.8" y="20.6" class="level2">X</text>
@@ -208,7 +208,7 @@
           <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(210)">
+      <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">C</text>
           <text x="12.8" y="20.6" class="level2">C</text>
@@ -216,7 +216,7 @@
           <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(270)">
+      <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">V</text>
           <text x="12.8" y="20.6" class="level2">V</text>
@@ -224,44 +224,45 @@
           <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(390)">
         <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="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>
     </g>
     </g>
     <g class="right">
     <g class="right">
-      <g transform="translate(390)">
+      <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">N</text>
         <text x="12.8" y="20.6" class="level2">N</text>
         <text x="38.0" y="20.6" 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(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">M</text>
         <text x="12.8" y="20.6" class="level2">M</text>
         <text x="38.0" y="20.6" class="layerNav">1</text>
         <text x="38.0" y="20.6" class="layerNav">1</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(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">&lt;</text>
         <text x="12.8" y="20.6" class="level2">&lt;</text>
         <text x="38.0" y="20.6" class="layerNav">2</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(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">&gt;</text>
         <text x="12.8" y="20.6" class="level2">&gt;</text>
         <text x="38.0" y="20.6" class="layerNav">3</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(690)">
         <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="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="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>

+ 138 - 0
img/angle_mod.svg

@@ -0,0 +1,138 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 180">
+
+  <style>
+    :root {
+      color-scheme: light dark;
+    }
+    rect {
+      fill: #fff;
+      stroke: #666;
+      stroke-width: .5px;
+    }
+    text {
+      fill: #666;
+      font: normal 20px sans-serif;
+      text-align: center;
+      text-anchor: middle;
+    }
+
+    #row_AD text,
+    #row_AC text,
+
+    /* 'hints' theme */
+    .m1 rect { fill: hsl(  0, 100%, 95%); }
+    .l2 rect { fill: hsl( 42, 100%, 85%); }
+    .r2 rect { fill: hsl( 61, 100%, 85%); }
+    .l3 rect,
+    .r3 rect { fill: hsl(136, 100%, 85%); }
+    .l4 rect,
+    .r4 rect { fill: hsl(200, 100%, 85%); }
+    .l5 rect,
+    .r5 rect { fill: hsl(230, 100%, 85%); }
+
+    @media (prefers-color-scheme: dark) {
+      text                 { fill: #aaa; }
+      rect                 { fill: #444; }
+      /* 'hints' theme */
+      .m1 rect { fill: hsl(  0, 25%, 30%); }
+      .l2 rect { fill: hsl( 31, 30%, 30%); }
+      .r2 rect { fill: hsl( 61, 30%, 30%); }
+      .l3 rect,
+      .r3 rect { fill: hsl(136, 30%, 30%); }
+      .l4 rect,
+      .r4 rect { fill: hsl(200, 30%, 30%); }
+      .l5 rect,
+      .r5 rect { fill: hsl(230, 30%, 30%); }
+      .dimmed rect { fill: #4444; }
+    }
+  </style>
+
+  <defs>
+    <g id="row_AD">
+      <g transform="translate(0)" class="l5">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+      <g transform="translate(60)" class="l4">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+      <g transform="translate(120)" class="l3">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+      <g transform="translate(180)" class="l2">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+      <g transform="translate(240)" class="l2">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+    </g>
+
+    <g id="row_AC">
+      <g transform="translate(0)" class="l5">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+      <g transform="translate(60)" class="l4">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+      <g transform="translate(120)" class="l3">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+      <g transform="translate(180)" class="l2">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+      <g transform="translate(240)" class="l2">
+        <rect width="52" height="52" rx="5" ry="5"/>
+      </g>
+    </g>
+
+    <g id="row_AB">
+      <g transform="translate(0)" class="l5">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">Z</text>
+      </g>
+      <g transform="translate(60)" class="l4">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">X</text>
+      </g>
+      <g transform="translate(120)" class="l3">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">C</text>
+      </g>
+      <g transform="translate(180)" class="l2">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">V</text>
+      </g>
+      <g transform="translate(240)" class="l2">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">B</text>
+      </g>
+    </g>
+  </defs>
+
+  <g transform="translate(8)">
+    <use x="16" y="0" href="#row_AD" />
+    <use x="32" y="60" href="#row_AC" />
+    <use x="60" y="120" href="#row_AB" />
+    <use x="0" y="120" href="#iso" class="l5" />
+    <g transform="translate(0 120)" class="l5">
+      <rect width="52" height="52" rx="5" ry="5"/>
+      <text x="12.8" y="43.4" class="level1">&lt;</text>
+      <text x="12.8" y="20.6" class="level2">&gt;</text>
+    </g>
+  </g>
+
+  <g transform="translate(400 92)">
+    <text style="font-size: 92px; dominant-baseline: middle; fill: brown;">➤</text>
+  </g>
+
+  <g transform="translate(440)">
+    <use x="16" y="0" href="#row_AD" />
+    <use x="32" y="60" href="#row_AC" />
+    <use x="0" y="120" href="#row_AB" />
+    <g transform="translate(300 120)" opacity="0.7">
+      <rect width="52" height="52" rx="5" ry="5"/>
+      <text x="12.8" y="43.4" class="level1">&lt;</text>
+      <text x="12.8" y="20.6" class="level2">&gt;</text>
+    </g>
+  </g>
+
+</svg>

+ 59 - 46
img/selenium33/navigation.svg

@@ -1,17 +1,21 @@
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 
 
   <style>
   <style>
-    rect, path {
+    :root {
+      color-scheme: light dark;
+    }
+    rect {
       fill: #f8f8f8;
       fill: #f8f8f8;
       stroke: #666;
       stroke: #666;
       stroke-width: .5px;
       stroke-width: .5px;
     }
     }
     text {
     text {
-      fill: #999;
+      fill: #bbb;
       font: normal 20px sans-serif;
       font: normal 20px sans-serif;
       text-align: center;
       text-align: center;
       text-anchor: middle;
       text-anchor: middle;
     }
     }
+    .dualKey { fill: #ddd; transform: translateY(26px); }
 
 
     #row_AD { transform: translate(64px,  64px); }
     #row_AD { transform: translate(64px,  64px); }
     #row_AC { transform: translate(64px, 124px); }
     #row_AC { transform: translate(64px, 124px); }
@@ -20,13 +24,25 @@
     .left   { transform: translate(-15px, 0); }
     .left   { transform: translate(-15px, 0); }
     .right  { transform: translate(+15px, 0); }
     .right  { transform: translate(+15px, 0); }
 
 
-    .layer    { font-size: 14px; font-weight: bold; }
-    .layerNav { fill: #e83; font-weight: bold; }
-    .shortcut { font-size: smaller; }
+    .shortcut { font-size: 10px; transform: translate(-3px,  -1px); }
+    .layerSym { font-weight: normal; }
+    .layerMod { font-weight: bold; font-size: 14px; }
+    .layerNav { font-weight: bold; }
+    .right .layerNav { font-weight: normal; }
+
+    .layerMod, .colorMod { fill: #333; }
+    .layerSym, .colorSym { fill: blue; }
+    .layerNav, .colorNav { fill: #e83; }
+    #row_AA    .level2   { fill: #333; }
 
 
     @media (prefers-color-scheme: dark) {
     @media (prefers-color-scheme: dark) {
-      text    { fill: #888; }
-      rect    { fill: #444; }
+      text                 { fill: #666; }
+      rect                 { fill: #444; }
+      .dualKey             { fill: #666; }
+      .layerMod, .colorMod { fill: #eee; }
+      .layerSym, .colorSym { fill: #99f; }
+      .layerNav, .colorNav { fill: #e83; }
+      #row_AA .level2      { fill: #ccc; }
     }
     }
   </style>
   </style>
 
 
@@ -35,21 +51,22 @@
       <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 shortcut">F1</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="20.6" class="layerNav shortcut">F2</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="20.6" class="layerNav shortcut">F3</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 shortcut">F4</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"/>
@@ -60,22 +77,18 @@
       <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>
       </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>
       </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>
       </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>
       </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"/>
@@ -89,22 +102,22 @@
       <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">F5</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">S</text>
         <text x="12.8" y="20.6" class="level2">S</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^s</text>
+        <text x="38.0" y="20.6" class="layerNav shortcut">F6</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">D</text>
         <text x="12.8" y="20.6" class="level2">D</text>
-        <text x="38.0" y="43.4" class="layerNav">⇤</text>
+        <text x="38.0" y="20.6" class="layerNav shortcut">F7</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">F</text>
         <text x="12.8" y="20.6" class="level2">F</text>
-        <text x="38.0" y="43.4" class="layerNav">⇥</text>
+        <text x="38.0" y="20.6" class="layerNav shortcut">F8</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"/>
@@ -115,22 +128,21 @@
       <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>
       </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">J</text>
         <text x="12.8" y="20.6" class="level2">J</text>
-        <text x="38.0" y="43.4" class="layerNav">↓</text>
+        <text x="38.0" y="20.6" class="layerNav">⌃</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">K</text>
         <text x="12.8" y="20.6" class="level2">K</text>
-        <text x="38.0" y="43.4" class="layerNav">↑</text>
+        <text x="38.0" y="20.6" class="layerNav">⌥</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">L</text>
         <text x="12.8" y="20.6" class="level2">L</text>
-        <text x="38.0" y="43.4" class="layerNav">→</text>
+        <text x="38.0" y="20.6" class="layerNav">⌘</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"/>
@@ -144,55 +156,57 @@
     <g class="left">
     <g class="left">
       <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">Z</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^z</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">Z</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">F9</text>
+        </g>
       </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">X</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^x</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">X</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">F10</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">C</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^c</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">C</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">F11</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">V</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^v</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">V</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">F12</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">B</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">B</text>
+        </g>
       </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">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>
       </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>
       </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>
       </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>
       </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"/>
@@ -205,17 +219,16 @@
   <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="12.8" y="20.6" class="level2" style="font-size: 14px;">⌫</text>
-      <text x="64.8" y="42.8" class="layerNav" style="font-size: 14px;">⌦</text>
+      <text x="41" y="42.8" class="layerMod layerNav"
+          style="font-weight: normal;">esc to base</text>
     </g>
     </g>
-    <g class="homeKey" transform="translate(270)">
-      <rect width="232" height="52" rx="5" ry="5" class="layerNav"/>
-      <text x="58.0" y="42.8" class="layer">navigation</text>
+    <g transform="translate(270)">
+      <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"/>
       <rect width="82" height="52" rx="5" ry="5"/>
-      <text x="12.8" y="23.6" class="level2">⏎</text>
-      <text x="64.8" y="42.8" class="layerNav">⎋</text>
+      <text x="41" y="42.8" class="layerMod layerNav"
+          style="font-weight: normal;">esc to base</text>
     </g>
     </g>
   </g>
   </g>
 
 

img/base_hrm.svg → img/hrm.svg


+ 37 - 15
img/index.html

@@ -1,5 +1,6 @@
 <!doctype html>
 <!doctype html>
 <html>
 <html>
+
 <head>
 <head>
   <style>
   <style>
     body {
     body {
@@ -10,28 +11,49 @@
       font-family: sans-serif;
       font-family: sans-serif;
       text-align: center;
       text-align: center;
     }
     }
+
     @media (prefers-color-scheme: dark) {
     @media (prefers-color-scheme: dark) {
-      html { background-color: #222; color: #ddd; }
+      html {
+        background-color: #222;
+        color: #ddd;
+      }
     }
     }
   </style>
   </style>
 </head>
 </head>
+
 <body>
 <body>
-  <h1> Arsenik </h1>
+  <h1>Arsenik Kanata</h1>
   <img src="all.svg">
   <img src="all.svg">
-  <h2> Base </h2>
-  <img src="base.svg">
-  <br>
-  <img src="base_easy.svg">
-  <br>
-  <img src="base_hrm.svg">
-  <h2> Symbols </h2>
+
+  <h2>Angle mod</h2>
+  <img src="angle_mod.svg">
+
+  <h2>Layer-taps</h2>
+  <img src="layer_taps.svg">
+
+  <h2>HRM</h2>
+  <img src="hrm.svg">
+
+  <h2>Lafayette Symbols</h2>
   <img src="symbols.svg">
   <img src="symbols.svg">
 
 
-  <h1> Selenium33 </h1>
-  <img src="../mods/selenium33/img/all.svg">
-  <h2> Navigation </h2>
+  <h2>NumRow</h2>
+  <img src="numrow.svg">
+
+  <h2>Navigation</h2>
   <img src="navigation.svg">
   <img src="navigation.svg">
-  <h2> NumRow </h2>
-  <img src="../mods/selenium33/img/numrow.svg">
+
+  <h2>Vim Navigation</h2>
+  <img src="vim_navigation.svg">
+
+  <h2>Vim NumPad</h2>
+  <img src="numpad.svg">
+
+  <h2>Vim Fn</h2>
+  <img src="fn.svg">
+
+  <h1>QMK</h1>
+  <img src="qmk/all.svg">
 </body>
 </body>
-</html>
+
+</html>

img/base_easy.svg → img/layer_taps.svg


+ 72 - 46
img/navigation.svg

@@ -1,17 +1,21 @@
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 
 
   <style>
   <style>
-    rect, path {
+    :root {
+      color-scheme: light dark;
+    }
+    rect {
       fill: #f8f8f8;
       fill: #f8f8f8;
       stroke: #666;
       stroke: #666;
       stroke-width: .5px;
       stroke-width: .5px;
     }
     }
     text {
     text {
-      fill: #999;
+      fill: #bbb;
       font: normal 20px sans-serif;
       font: normal 20px sans-serif;
       text-align: center;
       text-align: center;
       text-anchor: middle;
       text-anchor: middle;
     }
     }
+    .dualKey { fill: #ddd; transform: translateY(26px); }
 
 
     #row_AD { transform: translate(64px,  64px); }
     #row_AD { transform: translate(64px,  64px); }
     #row_AC { transform: translate(64px, 124px); }
     #row_AC { transform: translate(64px, 124px); }
@@ -20,13 +24,25 @@
     .left   { transform: translate(-15px, 0); }
     .left   { transform: translate(-15px, 0); }
     .right  { transform: translate(+15px, 0); }
     .right  { transform: translate(+15px, 0); }
 
 
-    .layer    { font-size: 14px; font-weight: bold; }
-    .layerNav { fill: #e83; font-weight: bold; }
-    .shortcut { font-size: smaller; }
+    .shortcut { font-size: 10px; transform: translate(-3px,  -1px); }
+    .layerSym { font-weight: normal; }
+    .layerMod { font-weight: bold; font-size: 14px; }
+    .layerNav { font-weight: bold; }
+    .right .layerNav { font-weight: normal; }
+
+    .layerMod, .colorMod { fill: #333; }
+    .layerSym, .colorSym { fill: blue; }
+    .layerNav, .colorNav { fill: #e83; }
+    #row_AA    .level2   { fill: #333; }
 
 
     @media (prefers-color-scheme: dark) {
     @media (prefers-color-scheme: dark) {
-      text    { fill: #888; }
-      rect    { fill: #444; }
+      text                 { fill: #666; }
+      rect                 { fill: #444; }
+      .dualKey             { fill: #666; }
+      .layerMod, .colorMod { fill: #eee; }
+      .layerSym, .colorSym { fill: #99f; }
+      .layerNav, .colorNav { fill: #e83; }
+      #row_AA .level2      { fill: #ccc; }
     }
     }
   </style>
   </style>
 
 
@@ -35,47 +51,49 @@
       <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>
       </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="20.6" class="layerNav">⇱</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="20.6" class="layerNav">↑</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>
       </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>
       </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">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>
       </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>
       </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="20.6" class="layerNav">8</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>
       </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"/>
@@ -89,53 +107,55 @@
       <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>
       </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">S</text>
         <text x="12.8" y="20.6" class="level2">S</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^s</text>
+        <text x="38.0" y="20.6" class="layerNav">←</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">D</text>
         <text x="12.8" y="20.6" class="level2">D</text>
-        <text x="38.0" y="43.4" class="layerNav">⇤</text>
+        <text x="38.0" y="20.6" class="layerNav">↓</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">F</text>
         <text x="12.8" y="20.6" class="level2">F</text>
-        <text x="38.0" y="43.4" class="layerNav">↹</text>
+        <text x="38.0" y="20.6" class="layerNav">→</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="20.6" class="layerNav">⇟</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="20.6" class="layerNav">-</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">J</text>
         <text x="12.8" y="20.6" class="level2">J</text>
-        <text x="38.0" y="43.4" class="layerNav">↓</text>
+        <text x="38.0" y="20.6" class="layerNav">4</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">K</text>
         <text x="12.8" y="20.6" class="level2">K</text>
-        <text x="38.0" y="43.4" class="layerNav">↑</text>
+        <text x="38.0" y="20.6" class="layerNav">5</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">L</text>
         <text x="12.8" y="20.6" class="level2">L</text>
-        <text x="38.0" y="43.4" class="layerNav">→</text>
+        <text x="38.0" y="20.6" class="layerNav">6</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>
       </g>
       </g>
     </g>
     </g>
   </g>
   </g>
@@ -144,60 +164,68 @@
     <g class="left">
     <g class="left">
       <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">Z</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^z</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">Z</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">undo</text>
+        </g>
       </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">X</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^x</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">X</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">cut</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">C</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^c</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">C</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">copy</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">V</text>
-        <text x="38.0" y="43.4" class="layerNav shortcut">^v</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">V</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">paste</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">B</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">B</text>
+          <text x="38.0" y="20.6" class="layerNav">⇤</text>
+        </g>
       </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">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="20.6" class="layerNav">,</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="20.6" class="layerNav">1</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>
       </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>
       </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">.</text>
       </g>
       </g>
     </g>
     </g>
   </g>
   </g>
@@ -205,17 +233,15 @@
   <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="61.5" y="42.8" class="layerNav" style="font-size: 14px;">⌦</text>
+      <text x="61.5" y="20.6" class="layerNav" style="font-size: 14px;">⌦</text>
     </g>
     </g>
-    <g class="homeKey" transform="translate(270)">
-      <rect width="232" height="52" rx="5" ry="5" class="layerNav"/>
-      <text x="58.0" y="42.8" class="layer">navigation</text>
+    <g transform="translate(270)">
+      <rect width="232" height="52" rx="5" ry="5" class="colorNav"/>
+      <text x="20.5" y="42.8" class="layerMod">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"/>
-      <text x="20.5" y="23.6" class="level2">⏎</text>
-      <text x="61.5" y="42.8" class="layerNav">⎋</text>
+      <text x="61.5" y="20.6" class="layerNav" style="font-weight: normal;">⎋</text>
     </g>
     </g>
   </g>
   </g>
 
 

+ 86 - 106
img/base.svg

@@ -1,22 +1,21 @@
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 
 
   <style>
   <style>
-    rect, path {
+    :root {
+      color-scheme: light dark;
+    }
+    rect {
       fill: #f8f8f8;
       fill: #f8f8f8;
       stroke: #666;
       stroke: #666;
       stroke-width: .5px;
       stroke-width: .5px;
     }
     }
     text {
     text {
-      fill: #999;
+      fill: #bbb;
       font: normal 20px sans-serif;
       font: normal 20px sans-serif;
       text-align: center;
       text-align: center;
-    }
-    .layer {
-      font-size: 14px;
-      font-weight: bold;
       text-anchor: middle;
       text-anchor: middle;
-      fill: #333;
     }
     }
+    .dualKey { fill: #ddd; transform: translateY(26px); }
 
 
     #row_AD { transform: translate(64px,  64px); }
     #row_AD { transform: translate(64px,  64px); }
     #row_AC { transform: translate(64px, 124px); }
     #row_AC { transform: translate(64px, 124px); }
@@ -25,10 +24,25 @@
     .left   { transform: translate(-15px, 0); }
     .left   { transform: translate(-15px, 0); }
     .right  { transform: translate(+15px, 0); }
     .right  { transform: translate(+15px, 0); }
 
 
+    .shortcut { font-size: 10px; transform: translate(-3px,  -1px); }
+    .layerSym { font-weight: normal; }
+    .layerMod { font-weight: bold; font-size: 14px; }
+    .layerNav { font-weight: bold; }
+    .right .layerNav { font-weight: normal; }
+
+    .layerMod, .colorMod { fill: #333; }
+    .layerSym, .colorSym { fill: blue; }
+    .layerNav, .colorNav { fill: #e83; }
+    #row_AA    .level2   { fill: #333; }
+
     @media (prefers-color-scheme: dark) {
     @media (prefers-color-scheme: dark) {
-      text       { fill: #888; }
-      rect, path { fill: #444; }
-      .layer     { fill: #eee; }
+      text                 { fill: #666; }
+      rect                 { fill: #444; }
+      .dualKey             { fill: #666; }
+      .layerMod, .colorMod { fill: #eee; }
+      .layerSym, .colorSym { fill: #99f; }
+      .layerNav, .colorNav { fill: #e83; }
+      #row_AA .level2      { fill: #ccc; }
     }
     }
   </style>
   </style>
 
 
@@ -36,65 +50,53 @@
     <g class="left">
     <g class="left">
       <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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">Q</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">Q</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">W</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">W</text>
+        <text x="38.0" y="20.6" class="layerNav">⇱</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">E</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">E</text>
+        <text x="38.0" y="20.6" class="layerNav">↑</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">R</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">R</text>
+        <text x="38.0" y="20.6" class="layerNav">⇲</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">T</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">T</text>
+        <text x="38.0" y="20.6" class="layerNav">⇞</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">Y</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">Y</text>
+        <text x="38.0" y="20.6" class="layerNav">/</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">U</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">U</text>
+        <text x="38.0" y="20.6" class="layerNav">7</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">I</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">I</text>
+        <text x="38.0" y="20.6" class="layerNav">8</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">O</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">O</text>
+        <text x="38.0" y="20.6" class="layerNav">9</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">P</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">P</text>
       </g>
       </g>
     </g>
     </g>
   </g>
   </g>
@@ -103,72 +105,55 @@
     <g class="left">
     <g class="left">
       <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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">A</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">A</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">S</text>
-          <text x="26.0" y="43.4" class="layer">Super</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">S</text>
+        <text x="38.0" y="20.6" class="layerNav">←</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">D</text>
-          <text x="26.0" y="43.4" class="layer">Alt</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">D</text>
+        <text x="38.0" y="20.6" class="layerNav">↓</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">F</text>
-          <text x="26.0" y="43.4" class="layer">Ctrl</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">F</text>
+        <text x="38.0" y="20.6" class="layerNav">→</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">G</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">G</text>
+        <text x="38.0" y="20.6" class="layerNav">⇟</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">H</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">H</text>
+        <text x="38.0" y="20.6" class="layerNav">-</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">J</text>
-          <text x="26.0" y="43.4" class="layer">Ctrl</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">J</text>
+        <text x="38.0" y="20.6" class="layerNav">4</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">K</text>
-          <text x="26.0" y="43.4" class="layer">Alt</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">K</text>
+        <text x="38.0" y="20.6" class="layerNav">5</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">L</text>
-          <text x="26.0" y="43.4" class="layer">Super</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">L</text>
+        <text x="38.0" y="20.6" class="layerNav">6</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">;</text>
-          <text x="12.8" y="20.6" class="level2">:</text>
-        </g>
+        <text x="12.8" y="43.4" class="level1">;</text>
+        <text x="12.8" y="20.6" class="level2">:</text>
+        <text x="38.0" y="20.6" class="layerNav">0</text>
       </g>
       </g>
     </g>
     </g>
   </g>
   </g>
@@ -177,31 +162,31 @@
     <g class="left">
     <g class="left">
       <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"/>
-        <g class="key" text-anchor="middle">
+        <g>
           <text x="12.8" y="20.6" class="level2">Z</text>
           <text x="12.8" y="20.6" class="level2">Z</text>
         </g>
         </g>
       </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"/>
-        <g class="key" text-anchor="middle">
+        <g>
           <text x="12.8" y="20.6" class="level2">X</text>
           <text x="12.8" y="20.6" class="level2">X</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>
           <text x="12.8" y="20.6" class="level2">C</text>
           <text x="12.8" y="20.6" class="level2">C</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>
           <text x="12.8" y="20.6" class="level2">V</text>
           <text x="12.8" y="20.6" class="level2">V</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 class="key" text-anchor="middle">
+        <g>
           <text x="12.8" y="20.6" class="level2">B</text>
           <text x="12.8" y="20.6" class="level2">B</text>
         </g>
         </g>
       </g>
       </g>
@@ -209,36 +194,31 @@
     <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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">N</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">N</text>
+        <text x="38.0" y="20.6" class="layerNav">,</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">M</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">M</text>
+        <text x="38.0" y="20.6" class="layerNav">1</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">,</text>
-          <text x="12.8" y="20.6" class="level2">&lt;</text>
-        </g>
+        <text x="12.8" y="43.4" class="level1">,</text>
+        <text x="12.8" y="20.6" class="level2">&lt;</text>
+        <text x="38.0" y="20.6" class="layerNav">2</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">.</text>
-          <text x="12.8" y="20.6" class="level2">&gt;</text>
-        </g>
+        <text x="12.8" y="43.4" class="level1">.</text>
+        <text x="12.8" y="20.6" class="level2">&gt;</text>
+        <text x="38.0" y="20.6" class="layerNav">3</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">/</text>
-          <text x="12.8" y="20.6" class="level2">?</text>
-        </g>
+        <text x="12.8" y="43.4" class="level1">/</text>
+        <text x="12.8" y="20.6" class="level2">?</text>
+        <text x="38.0" y="20.6" class="layerNav">.</text>
       </g>
       </g>
     </g>
     </g>
   </g>
   </g>
@@ -246,17 +226,17 @@
   <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="12.8" y="20.6" class="level2" style="font-size: 14px;">⌫</text>
-      <text x="41.0" y="42.8" class="layer">Shift</text>
+      <text x="41" y="42.8" class="layerMod layerNav"
+          style="font-weight: normal;">esc to base</text>
     </g>
     </g>
-    <g class="homeKey" 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"/>
-      <text x="116.0" y="42.8" class="layer" style="fill: #e83;">Navigation</text>
+      <text x="20.5" y="42.8" class="layerMod colorNav">⍽</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"/>
-      <text x="12.8" y="23.6" class="level2">⏎</text>
-      <text x="41.0" y="42.8" class="layer" style="fill: #66d;">Symbols</text>
+      <text x="41" y="42.8" class="layerMod layerNav"
+          style="font-weight: normal;">esc to base</text>
     </g>
     </g>
   </g>
   </g>
 
 

+ 35 - 17
img/selenium33/numrow.svg

@@ -1,17 +1,21 @@
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 
 
   <style>
   <style>
-    rect, path {
+    :root {
+      color-scheme: light dark;
+    }
+    rect {
       fill: #f8f8f8;
       fill: #f8f8f8;
       stroke: #666;
       stroke: #666;
       stroke-width: .5px;
       stroke-width: .5px;
     }
     }
     text {
     text {
-      fill: #999;
+      fill: #bbb;
       font: normal 20px sans-serif;
       font: normal 20px sans-serif;
       text-align: center;
       text-align: center;
       text-anchor: middle;
       text-anchor: middle;
     }
     }
+    .dualKey { fill: #ddd; transform: translateY(26px); }
 
 
     #row_AD { transform: translate(64px,  64px); }
     #row_AD { transform: translate(64px,  64px); }
     #row_AC { transform: translate(64px, 124px); }
     #row_AC { transform: translate(64px, 124px); }
@@ -20,15 +24,20 @@
     .left   { transform: translate(-15px, 0); }
     .left   { transform: translate(-15px, 0); }
     .right  { transform: translate(+15px, 0); }
     .right  { transform: translate(+15px, 0); }
 
 
-    .layer  { font-size: 14px; font-weight: bold; }
+    .layer  { font-size: 14px; font-weight: bold; fill: #f8f8f8; }
     .layerNum { fill: green; }
     .layerNum { fill: green; }
-    .layerSym { fill: blue; }
+    .layerSym { font-weight: normal; }
+    .layerMod { font-weight: bold; font-size: 14px; }
+
+    .layerSym, .colorSym { fill: blue; }
 
 
     @media (prefers-color-scheme: dark) {
     @media (prefers-color-scheme: dark) {
-      text      { fill: #888; }
-      rect      { fill: #444; }
-      .layerNum { fill: #6d6; }
-      .layerSym { fill: #99f; }
+      text                 { fill: #666; }
+      rect                 { fill: #444; }
+      .dualKey             { fill: #666; }
+      .layerMod            { fill: #eee; }
+      .layerNum            { fill: #6d6; }
+      .layerSym, .colorSym { fill: #99f; }
     }
     }
   </style>
   </style>
 
 
@@ -151,23 +160,33 @@
     <g class="left">
     <g class="left">
       <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">Z</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">Z</text>
+        </g>
       </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">X</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">X</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">C</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">C</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">V</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">V</text>
+        </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"/>
-        <text x="12.8" y="20.6" class="level2">B</text>
+        <g>
+          <text x="12.8" y="20.6" class="level2">B</text>
+        </g>
       </g>
       </g>
     </g>
     </g>
     <g class="right">
     <g class="right">
@@ -204,16 +223,15 @@
   <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" class="layerNum"/>
       <rect width="82" height="52" rx="5" ry="5" class="layerNum"/>
-      <!-- <text x="20.5" y="20.6" class="level2" style="font-size: 14px;">⌫</text> -->
       <text x="20.5" y="42.8" class="layer">num</text>
       <text x="20.5" y="42.8" class="layer">num</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"/>
+      <text x="20.5" y="42.8" class="layer layerNum">⍽</text>
     </g>
     </g>
     <g transform="translate(510)">
     <g transform="translate(510)">
-      <rect width="82" height="52" rx="5" ry="5"/>
-      <!-- <text x="20.5" y="23.6" class="level2">⏎</text> -->
-      <text x="20.5" y="42.8" class="layer layerSym">sym</text>
+      <rect width="82" height="52" rx="5" ry="5" class="layerSym"/>
+      <text x="20.5" y="42.8" class="layer">sym</text>
     </g>
     </g>
   </g>
   </g>
 
 

img/selenium33/all.svg → img/qmk/all.svg


+ 0 - 30
img/selenium33/index.html

@@ -1,30 +0,0 @@
-<!doctype html>
-<html>
-<head>
-  <style>
-    body {
-      width: 51em;
-      margin: 0 auto;
-      border-left: 1px solid #8883;
-      border-right: 1px solid #8883;
-      font-family: sans-serif;
-      text-align: center;
-    }
-    @media (prefers-color-scheme: dark) {
-      html { background-color: #222; color: #ddd; }
-    }
-  </style>
-</head>
-<body>
-  <h1> Selenium33 </h1>
-  <img src="all.svg">
-  <h2> Base </h2>
-  <img src="../../../img/base.svg">
-  <h2> Symbols </h2>
-  <img src="../../../img/symbols.svg">
-  <h2> Navigation </h2>
-  <img src="navigation.svg">
-  <h2> NumRow </h2>
-  <img src="numrow.svg">
-</body>
-</html>

img/arsenik.png → img/source/arsenik.png


img/arsenik.xcf → img/source/arsenik.xcf


+ 75 - 119
img/symbols.svg

@@ -1,17 +1,21 @@
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
 
 
   <style>
   <style>
-    rect, path {
+    :root {
+      color-scheme: light dark;
+    }
+    rect {
       fill: #f8f8f8;
       fill: #f8f8f8;
       stroke: #666;
       stroke: #666;
       stroke-width: .5px;
       stroke-width: .5px;
     }
     }
     text {
     text {
-      fill: #999;
+      fill: #bbb;
       font: normal 20px sans-serif;
       font: normal 20px sans-serif;
       text-align: center;
       text-align: center;
       text-anchor: middle;
       text-anchor: middle;
     }
     }
+    .dualKey { fill: #ddd; transform: translateY(26px); }
 
 
     #row_AD { transform: translate(64px,  64px); }
     #row_AD { transform: translate(64px,  64px); }
     #row_AC { transform: translate(64px, 124px); }
     #row_AC { transform: translate(64px, 124px); }
@@ -20,15 +24,18 @@
     .left   { transform: translate(-15px, 0); }
     .left   { transform: translate(-15px, 0); }
     .right  { transform: translate(+15px, 0); }
     .right  { transform: translate(+15px, 0); }
 
 
-    .layer  { font-size: 14px; font-weight: bold; }
-    .layerNum { fill: green; }
-    .layerSym { fill: blue; }
+    .layer  { font-size: 14px; font-weight: bold; fill: #f8f8f8; }
+    .layerSym { font-weight: normal; }
+    .layerMod { font-weight: bold; font-size: 14px; }
+
+    .layerSym, .colorSym { fill: blue; }
 
 
     @media (prefers-color-scheme: dark) {
     @media (prefers-color-scheme: dark) {
-      text      { fill: #888; }
-      rect      { fill: #444; }
-      .layerNum { fill: #6d6; }
-      .layerSym { fill: #99f; }
+      text                 { fill: #666; }
+      rect                 { fill: #444; }
+      .dualKey             { fill: #666; }
+      .layerMod            { fill: #eee; }
+      .layerSym, .colorSym { fill: #99f; }
     }
     }
   </style>
   </style>
 
 
@@ -36,75 +43,55 @@
     <g class="left">
     <g class="left">
       <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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">Q</text>
-          <text x="38.0" y="43.4" class="layerSym">@</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">Q</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">W</text>
-          <text x="38.0" y="43.4" class="layerSym">&lt;</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">W</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">E</text>
-          <text x="38.0" y="43.4" class="layerSym">&gt;</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">E</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">R</text>
-          <text x="38.0" y="43.4" class="layerSym">$</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">R</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">T</text>
-          <text x="38.0" y="43.4" class="layerSym">%</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">T</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">Y</text>
-          <text x="38.0" y="43.4" class="layerSym">^</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">Y</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">U</text>
-          <text x="38.0" y="43.4" class="layerSym">&amp;</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">U</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">I</text>
-          <text x="38.0" y="43.4" class="layerSym">*</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">I</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">O</text>
-          <text x="38.0" y="43.4" class="layerSym">'</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">O</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">P</text>
-          <text x="38.0" y="43.4" class="layerSym">`</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">P</text>
+        <text x="38.0" y="43.4" class="layerSym">`</text>
       </g>
       </g>
     </g>
     </g>
   </g>
   </g>
@@ -113,76 +100,56 @@
     <g class="left">
     <g class="left">
       <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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">A</text>
-          <text x="38.0" y="43.4" class="layerSym">{</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">A</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">S</text>
-          <text x="38.0" y="43.4" class="layerSym">(</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">S</text>
+        <text x="38.0" y="43.4" class="layerSym">(</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">D</text>
-          <text x="38.0" y="43.4" class="layerSym">)</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">D</text>
+        <text x="38.0" y="43.4" class="layerSym">)</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">F</text>
-          <text x="38.0" y="43.4" class="layerSym">}</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">F</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">G</text>
-          <text x="38.0" y="43.4" class="layerSym"> = </text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">G</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">H</text>
-          <text x="38.0" y="43.4" class="layerSym">\</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">H</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">J</text>
-          <text x="38.0" y="43.4" class="layerSym">+</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">J</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">K</text>
-          <text x="38.0" y="43.4" class="layerSym">-</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">K</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">L</text>
-          <text x="38.0" y="43.4" class="layerSym">/</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">L</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">;</text>
-          <text x="12.8" y="20.6" class="level2">:</text>
-          <text x="38.0" y="43.4" class="layerSym">"</text>
-        </g>
+        <text x="12.8" y="43.4" class="level1">;</text>
+        <text x="12.8" y="20.6" class="level2">:</text>
+        <text x="38.0" y="43.4" class="layerSym">"</text>
       </g>
       </g>
     </g>
     </g>
   </g>
   </g>
@@ -191,35 +158,35 @@
     <g class="left">
     <g class="left">
       <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"/>
-        <g class="key" text-anchor="middle">
+        <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="layerSym">~</text>
           <text x="38.0" y="43.4" class="layerSym">~</text>
         </g>
         </g>
       </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"/>
-        <g class="key" text-anchor="middle">
+        <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="layerSym">[</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>
           <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">]</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>
           <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)">
         <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>
           <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="43.4" class="layerSym">#</text>
           <text x="38.0" y="43.4" class="layerSym">#</text>
         </g>
         </g>
@@ -228,41 +195,31 @@
     <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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">N</text>
-          <text x="38.0" y="43.4" class="layerSym">|</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">N</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">M</text>
-          <text x="38.0" y="43.4" class="layerSym">!</text>
-        </g>
+        <text x="12.8" y="20.6" class="level2">M</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">,</text>
-          <text x="12.8" y="20.6" class="level2">&lt;</text>
-          <text x="38.0" y="43.4" class="layerSym">;</text>
-        </g>
+        <text x="12.8" y="43.4" class="level1">,</text>
+        <text x="12.8" y="20.6" class="level2">&lt;</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">.</text>
-          <text x="12.8" y="20.6" class="level2">&gt;</text>
-          <text x="38.0" y="43.4" class="layerSym">:</text>
-        </g>
+        <text x="12.8" y="43.4" class="level1">.</text>
+        <text x="12.8" y="20.6" class="level2">&gt;</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"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">/</text>
-          <text x="12.8" y="20.6" class="level2">?</text>
-          <text x="38.0" y="43.4" class="layerSym">?</text>
-        </g>
+        <text x="12.8" y="43.4" class="level1">/</text>
+        <text x="12.8" y="20.6" class="level2">?</text>
+        <text x="38.0" y="43.4" class="layerSym">?</text>
       </g>
       </g>
     </g>
     </g>
   </g>
   </g>
@@ -270,7 +227,6 @@
   <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>
     </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"/>

+ 0 - 371
img/symbols39.svg

@@ -1,371 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
-
-  <style>
-    rect, path {
-      stroke: #666;
-      stroke-width: .5px;
-      fill: #fff;
-    }
-    .specialKey,
-    .specialKey rect {
-      fill: #e4e4e4;
-    }
-    .specialKey text {
-      fill: #333;
-    }
-    text {
-      fill: #333;
-      fill: #ccc;
-      font: normal 20px sans-serif;
-      text-align: center;
-    }
-
-    #row_AD { transform: translate(64px,  64px); }
-    #row_AC { transform: translate(64px, 124px); }
-    #row_AB { transform: translate(64px, 184px); }
-    #row_AA { transform: translate(64px, 244px); }
-
-    /* .left   { transform: translate(-15px, 0); } */
-    /* .right  { transform: translate(+15px, 0); } */
-
-    .specialKey .win,
-    .specialKey .gnu {
-      font-size: 14px;
-    }
-    .specialKey .win,
-    .specialKey .mac,
-    .specialKey .gnu {
-      display: none;
-    }
-    .mac .specialKey .mac,
-    .gnu .specialKey .gnu,
-    .win .specialKey .win { display: block; }
-
-    /* dimmed AltGr + bold dead keys */
-    .level3, .level4 { fill: blue; }
-    .level5, .level6 { fill: green; }
-    .deadKey {
-      /* fill: red; */
-      font-size: 16px;
-      transform: translateY(-3px);
-    }
-    .diacritic {
-      font-size: 24px;
-      font-weight: bolder;
-      transform: translateY(8px);
-    }
-
-    /* hide Level4 (Shift+AltGr) unless AltGr is pressed */
-    .level4        { display: none; }
-    .altgr .level4 { display: block; }
-
-    /* highlight AltGr + Dead Keys */
-    .dk .level1, .altgr .level1,
-    .dk .level2, .altgr .level2 { opacity: 0.25; }
-    .dk .level5, .altgr .level3,
-    .dk .level6, .altgr .level4 { opacity: 1; }
-    .dk .level3,
-    .dk .level4 { display: none; }
-  </style>
-
-  <g id="row_AD">
-    <g class="left">
-      <g transform="translate(30)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="16.4" y="42.8">↹</text>
-          <text x="38.0" y="43.4" class="level3">~</text>
-        </g>
-      </g>
-      <g transform="translate(90)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">Q</text>
-          <text x="38.0" y="43.4" class="level3">!</text>
-        </g>
-      </g>
-      <g transform="translate(150)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">W</text>
-          <text x="38.0" y="43.4" class="level3">@</text>
-        </g>
-      </g>
-      <g transform="translate(210)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">E</text>
-          <text x="38.0" y="43.4" class="level3">#</text>
-        </g>
-      </g>
-      <g transform="translate(270)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">R</text>
-          <text x="38.0" y="43.4" class="level3">$</text>
-        </g>
-      </g>
-      <g transform="translate(330)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">T</text>
-          <text x="38.0" y="43.4" class="level3">%</text>
-        </g>
-      </g>
-    </g>
-    <g class="right">
-      <g transform="translate(390)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">Y</text>
-          <text x="38.0" y="43.4" class="level3">^</text>
-        </g>
-      </g>
-      <g transform="translate(450)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">U</text>
-          <text x="38.0" y="43.4" class="level3">&amp;</text>
-        </g>
-      </g>
-      <g transform="translate(510)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">I</text>
-          <text x="38.0" y="43.4" class="level3">*</text>
-        </g>
-      </g>
-      <g transform="translate(570)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">O</text>
-          <text x="38.0" y="43.4" class="level3">(</text>
-        </g>
-      </g>
-      <g transform="translate(630)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">P</text>
-          <text x="38.0" y="43.4" class="level3">)</text>
-        </g>
-      </g>
-      <g transform="translate(690)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="16.4" y="42.8" style="font-size: 12px;">⌫</text>
-          <text x="38.0" y="43.4" class="level3">"</text>
-        </g>
-      </g>
-    </g>
-  </g>
-
-  <g id="row_AC">
-    <g class="left">
-      <g transform="translate(30)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="16.4" y="42.8">⎋</text>
-          <text x="38.0" y="43.4" class="level3">`</text>
-        </g>
-      </g>
-      <g transform="translate(90)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">A</text>
-          <text x="38.0" y="43.4" class="level3">1</text>
-        </g>
-      </g>
-      <g transform="translate(150)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">S</text>
-          <text x="38.0" y="43.4" class="level3">2</text>
-        </g>
-      </g>
-      <g transform="translate(210)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">D</text>
-          <text x="38.0" y="43.4" class="level3">3</text>
-        </g>
-      </g>
-      <g transform="translate(270)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">F</text>
-          <text x="38.0" y="43.4" class="level3">4</text>
-        </g>
-      </g>
-      <g transform="translate(330)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">G</text>
-          <text x="38.0" y="43.4" class="level3">5</text>
-        </g>
-      </g>
-    </g>
-    <g class="right">
-      <g transform="translate(390)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">H</text>
-          <text x="38.0" y="43.4" class="level3">6</text>
-        </g>
-      </g>
-      <g transform="translate(450)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">J</text>
-          <text x="38.0" y="43.4" class="level3">7</text>
-        </g>
-      </g>
-      <g transform="translate(510)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">K</text>
-          <text x="38.0" y="43.4" class="level3">8</text>
-        </g>
-      </g>
-      <g transform="translate(570)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">L</text>
-          <text x="38.0" y="43.4" class="level3">9</text>
-        </g>
-      </g>
-      <g transform="translate(630)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">;</text>
-          <text x="12.8" y="20.6" class="level2">:</text>
-          <text x="38.0" y="43.4" class="level3">0</text>
-        </g>
-      </g>
-      <g transform="translate(690)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="16.4" y="42.8">⏎</text>
-          <text x="38.0" y="43.4" class="level3">'</text>
-        </g>
-      </g>
-    </g>
-  </g>
-
-  <g id="row_AB">
-    <g class="left">
-      <g transform="translate(30)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="16.4" y="42.8">⇧</text>
-          <text x="38.0" y="43.4" class="level3">&lt;</text>
-        </g>
-      </g>
-      <g transform="translate(90)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">Z</text>
-          <text x="38.0" y="43.4" class="level3">{</text>
-        </g>
-      </g>
-      <g transform="translate(150)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">X</text>
-          <text x="38.0" y="43.4" class="level3">[</text>
-        </g>
-      </g>
-      <g transform="translate(210)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">C</text>
-          <text x="38.0" y="43.4" class="level3">]</text>
-        </g>
-      </g>
-      <g transform="translate(270)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">V</text>
-          <text x="38.0" y="43.4" class="level3">}</text>
-        </g>
-      </g>
-      <g transform="translate(330)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">B</text>
-          <text x="38.0" y="43.4" class="level3">&gt;</text>
-        </g>
-      </g>
-    </g>
-    <g class="right">
-      <g transform="translate(390)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">N</text>
-          <text x="38.0" y="43.4" class="level3">\</text>
-        </g>
-      </g>
-      <g transform="translate(450)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="20.6" class="level2">M</text>
-          <text x="38.0" y="43.4" class="level3">=</text>
-        </g>
-      </g>
-      <g transform="translate(510)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">,</text>
-          <text x="12.8" y="20.6" class="level2">&lt;</text>
-          <text x="38.0" y="43.4" class="level3">-</text>
-        </g>
-      </g>
-      <g transform="translate(570)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">.</text>
-          <text x="12.8" y="20.6" class="level2">&gt;</text>
-          <text x="38.0" y="43.4" class="level3">+</text>
-        </g>
-      </g>
-      <g transform="translate(630)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="12.8" y="43.4" class="level1">/</text>
-          <text x="12.8" y="20.6" class="level2">?</text>
-          <text x="38.0" y="43.4" class="level3">_</text>
-        </g>
-      </g>
-      <g transform="translate(690)">
-        <rect width="52" height="52" rx="5" ry="5"/>
-        <g class="key" text-anchor="middle">
-          <text x="16.4" y="42.8">⇧</text>
-          <text x="38.0" y="43.4" class="level3">|</text>
-        </g>
-      </g>
-    </g>
-  </g>
-
-  <g id="row_AA">
-    <g class="left">
-      <g class="specialKey" transform="translate(180)">
-        <rect width="82" height="52" rx="5" ry="5"/>
-        <text x="64.8" y="18.6" text-anchor="middle" style="font-size: 12px;">⌫</text>
-        <text x="11.0" y="42.8" class="win gnu">Shift</text>
-        <text x="16.4" y="42.8" class="mac" text-anchor="middle">⌥</text>
-      </g>
-    </g>
-    <g class="homeKey" transform="translate(270)">
-      <rect width="232" height="52" rx="5" ry="5"/>
-      <text x="11.0" y="42.8" class="win gnu">Nav</text>
-    </g>
-    <g class="right">
-      <g class="specialKey" transform="translate(510)">
-        <rect width="82" height="52" rx="5" ry="5" style="fill: #aad;"/>
-        <text x="64.8" y="20.6" text-anchor="middle">⏎</text>
-        <text x="11.0" y="42.8" class="win gnu">Sym</text>
-        <text x="16.4" y="42.8" class="mac" text-anchor="middle">⌥</text>
-      </g>
-    </g>
-  </g>
-
-</svg>

+ 250 - 0
img/vim_navigation.svg

@@ -0,0 +1,250 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="90 60 720 240">
+
+  <style>
+    :root {
+      color-scheme: light dark;
+    }
+    rect {
+      fill: #f8f8f8;
+      stroke: #666;
+      stroke-width: .5px;
+    }
+    text {
+      fill: #bbb;
+      font: normal 20px sans-serif;
+      text-align: center;
+      text-anchor: middle;
+    }
+    .dualKey { fill: #ddd; transform: translateY(26px); }
+
+    #row_AD { transform: translate(64px,  64px); }
+    #row_AC { transform: translate(64px, 124px); }
+    #row_AB { transform: translate(64px, 184px); }
+    #row_AA { transform: translate(64px, 244px); }
+    .left   { transform: translate(-15px, 0); }
+    .right  { transform: translate(+15px, 0); }
+
+    .shortcut { font-size: 10px; transform: translate(-3px,  -1px); }
+    .layerSym { font-weight: normal; }
+    .layerMod { font-weight: bold; font-size: 14px; }
+    .layerNav { font-weight: bold; }
+    .right .layerNav { font-weight: normal; }
+
+    .layerMod, .colorMod { fill: #333; }
+    .layerSym, .colorSym { fill: blue; }
+    .layerNav, .colorNav { fill: #e83; }
+    #row_AA    .level2   { fill: #333; }
+
+    @media (prefers-color-scheme: dark) {
+      text                 { fill: #666; }
+      rect                 { fill: #444; }
+      .dualKey             { fill: #666; }
+      .layerMod, .colorMod { fill: #eee; }
+      .layerSym, .colorSym { fill: #99f; }
+      .layerNav, .colorNav { fill: #e83; }
+      #row_AA .level2      { fill: #ccc; }
+    }
+  </style>
+
+  <g id="row_AD">
+    <g class="left">
+      <g transform="translate(90)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <rect width="48" height="26" rx="2" ry="2" class="dualKey"/>
+        <text x="12.8" y="20.6" class="level2">Q</text>
+        <text x="25.5" y="42.8" class="layerNav shortcut">NumPad</text>
+      </g>
+      <g transform="translate(150)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">W</text>
+        <text x="38.0" y="20.6" class="layerNav shortcut">close</text>
+      </g>
+      <g transform="translate(210)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">E</text>
+        <text x="38.0" y="20.6" class="layerNav">⎗</text>
+      </g>
+      <g transform="translate(270)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">R</text>
+        <text x="38.0" y="20.6" class="layerNav">⎘</text>
+      </g>
+      <g transform="translate(330)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">T</text>
+      </g>
+    </g>
+    <g class="right">
+      <g transform="translate(390)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">Y</text>
+        <text x="38.0" y="20.6" class="layerNav">⇱</text>
+      </g>
+      <g transform="translate(450)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">U</text>
+        <text x="38.0" y="20.6" class="layerNav">⇟</text>
+      </g>
+      <g transform="translate(510)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">I</text>
+        <text x="38.0" y="20.6" class="layerNav">⇞</text>
+      </g>
+      <g transform="translate(570)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">O</text>
+        <text x="38.0" y="20.6" class="layerNav">⇲</text>
+      </g>
+      <g transform="translate(630)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">P</text>
+      </g>
+    </g>
+  </g>
+
+  <g id="row_AC">
+    <g class="left">
+      <g transform="translate(90)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">A</text>
+        <text x="38.0" y="20.6" class="layerNav shortcut">all</text>
+      </g>
+      <g transform="translate(150)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">S</text>
+        <text x="38.0" y="20.6" class="layerNav shortcut">save</text>
+      </g>
+      <g transform="translate(210)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">D</text>
+        <text x="38.0" y="20.6" class="layerNav">⇤</text>
+      </g>
+      <g transform="translate(270)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">F</text>
+        <text x="38.0" y="20.6" class="layerNav">↹</text>
+      </g>
+      <g transform="translate(330)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">G</text>
+      </g>
+    </g>
+    <g class="right">
+      <g transform="translate(390)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">H</text>
+        <text x="38.0" y="20.6" class="layerNav">←</text>
+      </g>
+      <g transform="translate(450)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">J</text>
+        <text x="38.0" y="20.6" class="layerNav">↓</text>
+      </g>
+      <g transform="translate(510)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">K</text>
+        <text x="38.0" y="20.6" class="layerNav">↑</text>
+      </g>
+      <g transform="translate(570)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">L</text>
+        <text x="38.0" y="20.6" class="layerNav">→</text>
+      </g>
+      <g transform="translate(630)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <rect width="25" height="26" rx="2" ry="2" class="dualKey"/>
+        <text x="12.8" y="20.6" class="level2">:</text>
+        <text x="15" y="43.4" class="layerNav shortcut"
+          style="font-weight: bold;">Fn</text>
+      </g>
+    </g>
+  </g>
+
+  <g id="row_AB">
+    <g class="left">
+      <g transform="translate(90)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <g>
+          <text x="12.8" y="20.6" class="level2">Z</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">undo</text>
+        </g>
+      </g>
+      <g transform="translate(150)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <g>
+          <text x="12.8" y="20.6" class="level2">X</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">cut</text>
+        </g>
+      </g>
+      <g transform="translate(210)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <g>
+          <text x="12.8" y="20.6" class="level2">C</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">copy</text>
+        </g>
+      </g>
+      <g transform="translate(270)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <g>
+          <text x="12.8" y="20.6" class="level2">V</text>
+          <text x="38.0" y="20.6" class="layerNav shortcut">paste</text>
+        </g>
+      </g>
+      <g transform="translate(330)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <g>
+          <text x="12.8" y="20.6" class="level2">B</text>
+        </g>
+      </g>
+    </g>
+    <g class="right">
+      <g transform="translate(390)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">N</text>
+        <text x="38.0" y="20.6" class="layerNav">🖰</text>
+        <text x="38.0" y="30.6" class="layerNav">←</text>
+      </g>
+      <g transform="translate(450)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="20.6" class="level2">M</text>
+        <text x="30.0" y="20.6" class="layerNav">🖰</text>
+        <text x="42.0" y="20.6" class="layerNav">↓</text>
+      </g>
+      <g transform="translate(510)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="43.4" class="level1">,</text>
+        <text x="12.8" y="20.6" class="level2">&lt;</text>
+        <text x="30.0" y="20.6" class="layerNav">🖰</text>
+        <text x="42.0" y="20.6" class="layerNav">↑</text>
+      </g>
+      <g transform="translate(570)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="43.4" class="level1">.</text>
+        <text x="12.8" y="20.6" class="level2">&gt;</text>
+        <text x="38.0" y="20.6" class="layerNav">🖰</text>
+        <text x="38.0" y="30.6" class="layerNav">→</text>
+      </g>
+      <g transform="translate(630)">
+        <rect width="52" height="52" rx="5" ry="5"/>
+        <text x="12.8" y="43.4" class="level1">/</text>
+        <text x="12.8" y="20.6" class="level2">?</text>
+      </g>
+    </g>
+  </g>
+
+  <g id="row_AA">
+    <g transform="translate(180)">
+      <rect width="82" height="52" rx="5" ry="5"/>
+      <text x="61.5" y="20.6" class="layerNav" style="font-size: 14px;">⌦</text>
+    </g>
+    <g transform="translate(270)">
+      <rect width="232" height="52" rx="5" ry="5" class="colorNav"/>
+      <text x="20.5" y="42.8" class="layerMod">nav</text>
+    </g>
+    <g transform="translate(510)">
+      <rect width="82" height="52" rx="5" ry="5"/>
+      <text x="61.5" y="20.6" class="layerNav" style="font-weight: normal;">⎋</text>
+    </g>
+  </g>
+
+</svg>

+ 30 - 38
kanata/README.md

@@ -1,48 +1,38 @@
-kanata
+Arsenik Kanata
 ================================================================================
 ================================================================================
 
 
-A modularized Arsenik that let you choose your features, e.g.
-angle mods, Vim-like navigation layer, Mac/Azerty/Qwertz support, etc.
-
-- 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:
-
-- key arrangement: Mac or PC, with or without angle mod?
-- base layer: standard, layer-taps, homerow mods?
-- symbols layer: AltGr, QWERTY, QWERTZ, AZERTY?
-- navigation layer: ESDF or HJKL?
-
-Note that kanata can also use the laptop’s trackpoint buttons (e.g. ThinkPad)
-as two additional thumb keys. :-)
-
-
 Installation
 Installation
 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 
 
-You can install `kanata` by either downloading a [pre-built
-executable](https://github.com/jtroo/kanata/releases), or by running the
-following commands (if you have `rustc` installed):
+- To get Arsenik, check out this repository with Git or
+[download it][Download Arsenik].
+- Launch `kanata.kbd` with Kanata.
+  - You can install Kanata by downloading a
+  [pre-built executable][Download Kanata].
+  - Follow the installation details of your operating system.
 
 
-```bash
-rustup update stable
-cargo install kanata
-```
+<details>
+<summary>Windows</summary>
 
 
-Windows users might prefer the `kanata_winIOv2.exe` version as it fixes some
-weird bugs.
+Windows users might prefer to download the `kanata_winIOv2.exe` version as it
+fixes some weird bugs like <kbd>C</kbd> and <kbd>V</kbd> inversion.
 
 
-Linux users may want to run these extra steps:
+*Note: this tip is tested for the version 1.6.1 of Kanata, in later version the
+`winIOv2` version might be the default one.*
+
+Put the `kanata_winIOv2.exe` in the Kanata Arsenik folder, run it and you’re
+good to go!
+</details>
 
 
 <details>
 <details>
-<summary> Running kanata without <code>sudo</code> </summary>
+<summary>Linux</summary>
+
+### Run Kanata without <code>sudo</code>
 
 
 kanata needs to intercept `uinput` signals, which it cannot do without the
 kanata needs to intercept `uinput` signals, which it cannot do without the
 proper authorisations.
 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.
 
 
@@ -67,13 +57,12 @@ Finally, you need to add a udev rule in `/etc/udev/rules.d/50-kanata.rules`:
 ```udev
 ```udev
 KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
 KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
 ```
 ```
-</details>
 
 
-<details>
-<summary> Making a user-side systemd service for kanata </summary>
 
 
-Note: This only works if `kanata` is able to run without <pre>sudo</pre> (and
-is using `systemd`).
+### Making a user-side systemd service for Kanata
+
+Note: This only works if `kanata` is able to run without `sudo` (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:
@@ -99,7 +88,10 @@ Copy-paste it into `~/.config/systemd/user/kanata.service`, fill in the
 placeholders, then run one of the following commands:
 placeholders, then run one of the following commands:
 
 
 - `systemctl --user start kanata.service` to manually start `kanata`
 - `systemctl --user start kanata.service` to manually start `kanata`
-- `systemctl --user enable kanata.service` so `kanata` may autostart whenever the current user logs in
+- `systemctl --user enable kanata.service` so `kanata` may autostart whenever
+the current user logs in
 - `systemctl --user status kanata.service` to check if `kanata` is running
 - `systemctl --user status kanata.service` to check if `kanata` is running
-
 </details>
 </details>
+
+[Download Arsenik]: https://github.com/OneDeadKey/arsenik/releases
+[Download Kanata]: https://github.com/jtroo/kanata/releases

+ 2 - 2
kanata/deflayer_navigation.kbd

@@ -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
+  tab  home up   end  pgup      @/   @7   @8   @9   @run
   @all lft  down rght pgdn      @-   @4   @5   @6   @0
   @all lft  down rght pgdn      @-   @4   @5   @6   @0
   @ndo @cut @cpy @pst S-tab _   @,   @1   @2   @3   @.
   @ndo @cut @cpy @pst S-tab _   @,   @1   @2   @3   @.
-            del            @nbs           esc
+            del             _             esc
 )
 )
 
 
 ;; vim: set ft=lisp
 ;; vim: set ft=lisp

+ 1 - 1
kanata/deflayer_navigation_vim.kbd

@@ -17,7 +17,7 @@
 ;; NumPad
 ;; NumPad
 (deflayer numpad
 (deflayer numpad
   _    _    _    _    _     _   _    _    _    _    _
   _    _    _    _    _     _   _    _    _    _    _
-  XX   home up   end  pgup      XX   @7   @8   @9   XX
+  XX   home up   end  pgup      @/   @7   @8   @9   XX
   XX   lft  down rght pgdn      @-   @4   @5   @6   @0
   XX   lft  down rght pgdn      @-   @4   @5   @6   @0
   XX   XX   XX   XX   XX    _   @,   @1   @2   @3   @.
   XX   XX   XX   XX   XX    _   @,   @1   @2   @3   @.
             @std           @nbs           @std
             @std           @nbs           @std

kanata/deflayer_symbols_1dk.kbd → kanata/deflayer_symbols_lafayette.kbd


kanata/deflayer_symbols_1dk_num.kbd → kanata/deflayer_symbols_lafayette_num.kbd


+ 2 - 2
kanata/kanata.kbd

@@ -38,9 +38,9 @@
 ;; `Symbols` layer
 ;; `Symbols` layer
 
 
 (include deflayer_symbols_noop.kbd)  ;; AltGr stays as-is
 (include deflayer_symbols_noop.kbd)  ;; AltGr stays as-is
-;; (include deflayer_symbols_1dk.kbd)  ;; AltGr programmation layer like Ergo‑L
+;; (include deflayer_symbols_lafayette.kbd)  ;; AltGr programmation layer like Ergo‑L
 ;; (include deflayer_symbols_noop_num.kbd)  ;; AltGr stays as-is + NumRow layers
 ;; (include deflayer_symbols_noop_num.kbd)  ;; AltGr stays as-is + NumRow layers
-;; (include deflayer_symbols_1dk_num.kbd)  ;; AltGr prog layer + NumRow layers
+;; (include deflayer_symbols_lafayette_num.kbd)  ;; AltGr prog layer + NumRow layers
 
 
 
 
 ;;-----------------------------------------------------------------------------
 ;;-----------------------------------------------------------------------------

+ 20 - 0
qmk/README.md

@@ -0,0 +1,20 @@
+Arsenik QMK
+================================================================================
+
+The QMK implementation of Arsenik is a bit different:
+
+- it takes advantage of the 4 thumb keys
+- the Navigation layer uses a mouse emulation on the left hand
+
+![Arsenik on a 34-key keyboard](../img/qmk/all.svg)
+
+TODO: update this image
+
+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.
+
+```bash
+# from the `qmk_firmware` root:
+make ferris/0_2/bling:1dk:flash
+```

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


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


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