Plover's steno support likes quasi-qwerty, and gaming likes qwerty,
and I like dvorak, so... what if I could have it all?
Signed-off-by: seebs <seebs@seebs.net>
Overall changes
===============
* `F12` was replaced by an `Fx` key, that activate the **Media** layer
as a one-shot layer, and also `Alt` as a one-shot modifier.
Base layer changes
==================
* The `Media Stop` key is now a tap-dance key, and resets the device for
programming on the fourth tap.
Miscellaneous
=============
* `π` can now be entered with UCIS.
* `🐁` can now be entered with UCIS.
Tools
=====
* The `tools/layer-notify` tool was removed, it was an example, which I
don't use.
`tools/hid-commands`
--------------------
* Now looks at the `DISABLE_APPSEL_START` environment value, and does
not display an AppSel notification if it is non-empty.
* Will attempt to re-program the keyboard when receiving a `reflash`
command.
* No longer tries to select Emacs 24 on `APPSEL_EMACS`, rather, it goes
for any Emacs.
* The `APPSEL_MUSIC` command now includes Kodi in the list too, as the
last choice.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Rewrote QWERTY to make it a first-class citizen instead of just a glorified game layer.
Added a lot of keys to Extend layer to bring it in line with my Atreus.
Plenty of other changes too.
ADORE
-----
* Major rearrangements were made, to reduce pinky use, and to balance
out the hand usage.
Tools
-----
* The `hid-commands` tool will now display a notification when
the **AppSel** layer is triggered.
* The `log-to-heatmap.py` tool now treats the innermost keys on the
bottom row as thumb keys, as far as statistics are concerned.
Miscellaneous
-------------
* Fixed the **Steno** toggle key.
* My wife is now present on the keyboard too.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Overall changes
===============
* The number row has been completely rearranged on both the **Base** and
the **ADORE** layers.
* The number/function key behavior was changed: function keys are now on
the **Media**.
* The `:`/`;` and `-`/`_` keys were put back to their thumb position on
the bottom row, on both the **Base** and **ADORE** layers.
* The bottom large keys on the inner side of each half now function as
[tmux](http://tmux.github.io/) keys: the left to send the prefix, the
right to send the `display-panes` key. The left also doubles as a GNU
screen prefix key, and sends `C-a` when double tapped.
* A number of functions, such as the **AppSel** layer, now require the
`hid-commands` tool to be running, with the output of `hid_listen`
being piped to it.
ADORE
=====
* `Y` and `X` have been swapped again.
Media/Navigation layer
======================
* The function keys are now on this layer.
* Mouse keys have been removed.
* Media start/stop/prev/next have been removed.
* `Print screen` has been removed.
* There is only one screen lock key now.
Heatmap
=======
* Fixed a few issues in the finger-stats calculation.
* The tool now also timestamps and saves all input lines to a logfile,
which it loads on start, allowing one to continue the collection after
upgrading the tool.
* The heatmap tool will now colorize the stats by default.
* The periodic stats are now printed in a more compact format.
Tools
=====
* Added a new tool, `tools/layer-notify` that listens to layer change
events on the HID console, and pops up a notification on layer
changes.
* Another new tool, `tools/text-to-log.py` has been added that converts
arbitrary text to a keylogger output, which can be fed to the heatmap
generator.
* A number of features have been moved to the `tools/hid-commands`
utility. These generally are OS dependent, and are easier to implement
on the software side.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
- remove media-space and media-shift-space; put a play/pause key at media-m instead
- add print screen, scroll lock, and pause/break to the media layer
And in the readme:
- don't say we don't have any Windows-specific keys
- add mnemonics for thumb-alt and thumb-ctrl positioning
Major changes include:
Base layer changes
------------------
* The parentheses & bracket keys have been merged: tapping them results
in `[` or `{` (if it was shifted), double tapping leads to `(`.
* The `:;` and `-_` keys are now available on the base layer, on
their **ADORE** location, too, just below `[{(`/`]})`.
* The `Apps` key has been replaced by `F12`.
* The `-`/`_` is no longer a tap-dance key.
ADORE layer changes
-------------------
* Adjustments were made to the **ADORE** layer, to separate some
inconvenient combinations.
Miscellaneous changes
---------------------
* `LEAD u` now starts the symbolic unicode input system, instead of the
OS-one.
* The mouse acceleration keys on the **Navigation and Media* layer have
been turned into toggles: tap them once to turn them on, until tapped
again. Tapping an accelerator button will turn all the others off.
* When the **ARROW** layer is on, the *red* and *blue* LEDs light up
now.
Heatmap
-------
* The built-in keylogger has been greatly enhanced, it now outputs the
pressed state, and the layer (Dvorak or ADORE). As such, the
`ADORE_AUTOLOG` option has been removed, instead there is
`AUTOLOG_ENABLE` now, which when enabled, makes the keylogger start
when the keyboard boots. It defaults to off.
* The heatmap generator received a lot of updates.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
This reworks how the tap-dance feature works: instead of one global
state, we have a state for each tap-dance key, so we can cancel them
when another tap-dance key is in flight. This fixes#527.
Since we have a state for each key, we can avoid situation where a keyup
would mess with our global state. This fixes#563.
And while here, we also make sure to fire events only once, and this
fixes#574.
There is one breaking change, though: tap-dance debugging support was
removed, because dumping the whole state would increase the firmware
size too much. Any keymap that made use of this, will have to be
updated (but there's no such keymap in the repo).
Also, there's a nice trick used in this rework: we need to iterate
through tap_dance_actions in a few places, to check for timeouts, and so
on. For this, we'd need to know the size of the array. We can't discover
that at compile-time, because tap-dance gets compiled separately. We'd
like to avoid having to terminate the list with a sentinel value,
because that would require updates to all keymaps that use the feature.
So, we keep track of the highest tap-dance code seen so far, and iterate
until that index.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>