From 2278956412ca7f970dc4d38a6c32d7b5301f9a90 Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Wed, 22 Jun 2016 08:37:00 +0200 Subject: ergodox_ez: Update the algernon keymap to v1.2 Noticeable changes since the last pull request: * The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with certain operating systems. * The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted. * The `=` and `\` keys were swapped, `=` moved to the home row, on both the **base** and the **experimental** layers. * The arrow and navigation keys were redone, they are now more accessible, but the navigation keys require an extra tap to access. * The **Emacs** layer is gone, replaced by a simplified **navigation and media** layer. * `LEAD v` types the firmware version, and the keymap version. * On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped. * The **Steno** layer gained a few more `#` and `*` keys, to make it easier on my fingers. Signed-off-by: Gergely Nagy --- keyboards/ergodox_ez/keymaps/algernon/readme.md | 176 +++++++++++++++++------- 1 file changed, 124 insertions(+), 52 deletions(-) (limited to 'keyboards/ergodox_ez/keymaps/algernon/readme.md') diff --git a/keyboards/ergodox_ez/keymaps/algernon/readme.md b/keyboards/ergodox_ez/keymaps/algernon/readme.md index c66b33f3d..6b7e8fa2e 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/readme.md +++ b/keyboards/ergodox_ez/keymaps/algernon/readme.md @@ -10,13 +10,29 @@ history of the layout, see my Some of the things in the layout only work when one uses Spacemacs and GNOME under Linux. Your mileage may vary. +## Table of Contents + +* [Layouts](#layouts) + - [Base layer](#base-layer) + - [Experimental layer](#experimental-layer) + - [Hungarian layer](#hungarian-layer) + - [Navigation and media layer](#navigation-and-media-layer) + - [One-handed layer](#one-handed-layer) + - [Steno layer](#steno-layer) + - [LED states](#led-states) +* [Building](#building) + - [Using on Windows](#using-on-windows) +* [Changelog](#changelog) +* [License](#license) + +# Layouts + ## Base layer [![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b) -At its core, this is a Dvorak layout, with some minor changes (for example, `-` -being on the left half, and on the innermost key of the bottom row on the -right). The more interesting parts are how certain keys behave: +At its core, this is a Dvorak layout, with some minor changes. The more +interesting parts are how certain keys behave: * The keys on the number row double as function keys, when held for a bit longer than an usual tap. This allows me to use the function keys without having to @@ -33,9 +49,13 @@ right). The more interesting parts are how certain keys behave: normal layout. * The `ESC` key also doubles as a one-shot cancel key: if tapped while any of the one-shot modifiers are in-flight (as in, single-tapped, and not expired - yet), it cancels all one-shot modifiers. Otherwise it sends the usual keycode. -* The **Emacs** and **Hun** layer keys are one-shot, the **1Hand** and **STENO** - keys are toggles. + yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if + active. Otherwise it sends the usual keycode. +* The **Media**, **Arrow**, and **Hun** layer keys are one-shot, the **1Hand** + and **STENO** keys are toggles. +* Toggling the **Arrow** layer toggles between the cursor arrows and the paging + keys on the bottom row. +* Tapping the `:` key once yields `:`, tapping it twice yields `;`. * The **Lead** key allows me to type in a sequence of keys, and trigger some actions: - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that @@ -45,8 +65,19 @@ right). The more interesting parts are how certain keys behave: - `LEAD y` types `\o/`. - `LEAD w m` maximises the currently focused window. - `LEAD e` makes the [experimental layer](#experimental-layer) the default. - - `LEAD v` prints the firmware version, the keyboard and the keymap, if - compiled with a QMK version that has these available. + - `LEAD v` prints the firmware version, the keyboard and the keymap. + +## Experimental layer + +[![Experimental layer](images/experimental-layer.png)](http://www.keyboard-layout-editor.com/#/gists/6ff50bf71248e05aab5b3fec4fae3d08) + +While using the standard Dvorak layout, I encountered a number of +inconveniences, and on this layer, I am playing with ideas to make the layout +feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, +had shortcomings I was not happy with. So now this is something inbetween, with +own observations thrown in. How it works out in the long run remains to be seen. + + [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm ## Hungarian layer @@ -57,32 +88,12 @@ variant. For some, which can have other diatribes, the long one is on top, short's on bottom. Tapping any of the accented characters takes us back to the base layer. -## Emacs layer - -[![Emacs layer](images/emacs-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) - -This layer is primarily for navigating text - and for some mousing and other -things, because there was space. Most of the keys should be pretty -self-explanatory, except for a few: - -* There are three keys on the bottom row of the left side, that change how some - of the other keys - explained just below - work. The keys are for *Emacs - mode* (the default), *Terminal mode*, and *Traditional mode*, respectively. -* The *Visual mode* key (the top big key on the left side) sends the `v` key in - *Emacs mode*, to enter Visual mode in Spacemacs. In all other modes, it is a - no-op. -* The *Copy/Cut* key (the bottom big key on the left side) sends the copy - command on tap, the cut one when held for longer than a normal tap. The **copy - command** is `y` in *Emacs mode*, `Ctrl-Shift-c` in *Terminal mode*, and - `Ctrl-c` in *Traditional mode*. The **cut command** is `x` in *Emacs mode*, - `Ctrl-Shift-x` in *Terminal Mode* and `Ctrl-x` in *Traditional mode*. -* The *Paste/Delete* key (the leftmost key on the left thumb cluster) sends the - paste command on tap, the delete one when held longer than a normal tap. The - **paste command** is `p` in *Emacs mode*, `Ctrl-Shift-v` in *Terminal mode*, - and `Ctrl-v` in *Traditional mode*. The **delete command** is `d` in *Emacs - mode*, and `DEL` in the other two. -* The `A`, `I` and `R` keys will - after sending themselves - clear the layer - back to the base layer. This allows a quick escape from the layer. +## Navigation and media layer + +[![Navigation and media layer](images/nav-n-media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) + +This layer is primarily for navigating with the cursor or the mouse, and some +media things. ## One-handed layer @@ -113,33 +124,50 @@ This is to be used with [Plover](http://www.openstenoproject.org/plover/), nothing really fancy here. The **STENO** key toggles the layer on and off, and sends the toggle command to Plover too. -## Experimental layer - -[![Experimental layer](images/experimental-layer.png)](http://www.keyboard-layout-editor.com/#/gists/6ff50bf71248e05aab5b3fec4fae3d08) - -While using the standard Dvorak layout, I encountered a number of -inconveniences, and on this layer, I am playing with ideas to make the layout -feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, -had shortcomings I was not happy with. So now this is something inbetween, with -own observations thrown in. How it works out in the long run remains to be seen. - - [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm +## LED states + +The primary purpose of the LEDs is to show the modifier status, a secondary, to +show which layer is active. Each modifier, `Shift`, `Alt` and `Control` each +have their designated LEDs: the *red*, *green* and *blue*, respectively. When a +modifier is in a one-shot state, the respective LED will turn on with a dimmer +light. If the modifier is toggled on, the brightness of the LED turns full. + +For the layers, the following rules apply: + +* When the [Experimental layer](#experimental-layer) is toggled on, LEDs will + light up from left to right in a sequence, then turn off. When the layer is + toggled off, the LEDs light up and turn off in the other direction. No LEDs + are on while the layer is active. +* When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue* + LEDs are on. +* When the [Navigation and media layer](#navigation-and-media-layer) is active, + the *red* and *green* ones are on. +* When the [One-handed layer](#one-handed-layer) is active, the *green* LED is + on and bright, and either the *red* or the *blue* one is going to slowly + blink, depending on the currently active side. +* For the [Steno layer](#steno-layer), all LEDs will be turned on. + +Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers +use a stronger one, and modifiers override any layer preferences. For example, +when on the one-handed layer, with the left side active (*red* light blinking), +if `Shift` is on, the *red* light will be constantly on. # Building To make my workflow easier, this layout is maintained in [its own repository][algernon:ez-layout]. To build it, you will need the -[QMK][qmk] firmware checked out, and this repo either checked out, or symlinked -to `keyboards/ergodox_ez/algernon`. One way to achieve that is this: +[QMK][qmk] firmware checked out, and this repo either checked out to something +like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this: [algernon:ez-layout]: https://github.com/algernon/ergodox-layout [qmk]: https://github.com/jackhumbert/qmk_firmware ``` $ git clone https://github.com/jackhumbert/qmk_firmware.git -$ cd qmk_firmware/keyboards/ergodox_ez -$ git clone https://github.com/algernon/ergodox-layout.git keymaps/algernon -$ make KEYMAP=algernon +$ cd qmk_firmware +$ git clone https://github.com/algernon/ergodox-layout.git \ + keyboards/ergodox_ez/keymaps/algernon-master +$ make KEYBOARD=ergodox_ez KEYMAP=algernon-master ``` From time to time, updates may be submitted back to the QMK repository. If you @@ -147,10 +175,54 @@ are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware): ``` -$ cd keyboards/ergodox_ez -$ make KEYMAP=algernon +$ make KEYBOARD=ergodox_ez KEYMAP=algernon ``` +## Using on Windows + +The keymap default to forcing NKRO, which seems to upset Windows, and except the +modifiers, none of them work. If you experience this problem, recompile the +firmware with `FORCE_NKRO=no` added to the `make` command line. + +# Changelog + +## v1.2 - 2016-06-22 + +* The forced NKRO mode can be easily toggled off at compile-time, to make the + firmware compatible with [certain operating systems](#using-on-windows). +* The `:;` key has changed behaviour: to access the `;` symbol, the key needs to + be double-tapped, instead of shifted. +* The `=` and `\` keys were swapped, `=` moved to the home row, on both the + [base](#base-layer) and the [experimental](#experimental-layer) layers. +* The arrow and navigation keys were redone, they are now more accessible, but + the navigation keys require an extra tap to access. +* The **Emacs** layer is gone, replaced by a simplified + [navigation and media](#navigation-and-media-layer) layer. +* `LEAD v` types the firmware version, and the keymap version. +* On the [experimental](#experimental-layer) layer, the `L` and `Q`, and the `K` + and `G` keys were swapped. +* The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it + easier on my fingers. + +## v1.1 - 2016-06-14 + +* The keyboard starts in NKRO mode, bootmagic and other things are disabled. +* A [Steno](#steno-layer) layer was added, to be used with Plover. +* An [experimental](#experimental-layer) layer was added, something halfway + between Dvorak and Capewell-Dvorak. A work in progress. +* `LEAD y` types `\o/`. +* Some keys on the [Base](#base-layer) layer have been moved around: + - `?` moved to the left pinky, left of `Q`. + - `=` shifted one row down, but `F11` stayed where it was. + - `-` on the left half was replaced by `Tab`. + - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key. + - `:` now inputs `;` when shifted. +* `ESC` cancels the [Hungarian](#hungarian-layer) layer too, not just modifiers. + +## v1.0 - 2016-05-26 + +Initial version. + # License The layout, being a derivative of the original TMK firmware which is under the -- cgit v1.2.3-24-g4f1b