| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  | #! /usr/bin/env python3 | 
					
						
							|  |  |  | import json | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | import re | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  | import argparse | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  | import time | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from math import floor | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  | from os.path import dirname | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  | from subprocess import Popen, PIPE, STDOUT | 
					
						
							|  |  |  | from blessings import Terminal | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  | 
 | 
					
						
							|  |  |  | class Heatmap(object): | 
					
						
							|  |  |  |     coords = [ | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             # Row 0 | 
					
						
							|  |  |  |             [ 4,  0], [ 4,  2], [ 2,  0], [ 1,  0], [ 2,  2], [ 3,  0], [ 3,  2], | 
					
						
							|  |  |  |             [ 3,  4], [ 3,  6], [ 2,  4], [ 1,  2], [ 2,  6], [ 4,  4], [ 4,  6], | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             # Row 1 | 
					
						
							|  |  |  |             [ 8,  0], [ 8,  2], [ 6,  0], [ 5,  0], [ 6,  2], [ 7,  0], [ 7,  2], | 
					
						
							|  |  |  |             [ 7,  4], [ 7,  6], [ 6,  4], [ 5,  2], [ 6,  6], [ 8,  4], [ 8,  6], | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             # Row 2 | 
					
						
							|  |  |  |             [12,  0], [12,  2], [10,  0], [ 9,  0], [10,  2], [11, 0], [     ], | 
					
						
							|  |  |  |             [      ], [11,  2], [10,  4], [ 9,  2], [10,  6], [12, 4], [12, 6], | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             # Row 3 | 
					
						
							|  |  |  |             [17,  0], [17,  2], [15,  0], [14,  0], [15,  2], [16,  0], [13,  0], | 
					
						
							|  |  |  |             [13,  2], [16,  2], [15,  4], [14,  2], [15,  6], [17,  4], [17,  6], | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             # Row 4 | 
					
						
							|  |  |  |             [20,  0], [20,  2], [19,  0], [18,  0], [19,  2], [], [], [], [], | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |             [19,  4], [18,  2], [19,  6], [20,  4], [20,  6], [], [], [], [] | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         ], | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             # Row 5 | 
					
						
							|  |  |  |             [     ], [23,  0], [22,  2], [22,  0], [22,  4], [21,  0], [21,  2], | 
					
						
							|  |  |  |             [24, 0], [24,  2], [25,  0], [25,  4], [25,  2], [26,  0], [      ], | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def set_attr_at(self, block, n, attr, fn, val): | 
					
						
							|  |  |  |         blk = self.heatmap[block][n] | 
					
						
							|  |  |  |         if attr in blk: | 
					
						
							|  |  |  |             blk[attr] = fn(blk[attr], val) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             blk[attr] = fn(None, val) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def coord(self, col, row): | 
					
						
							|  |  |  |         return self.coords[row][col] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @staticmethod | 
					
						
							|  |  |  |     def set_attr(orig, new): | 
					
						
							|  |  |  |         return new | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |     def set_bg(self, coords, color): | 
					
						
							|  |  |  |         (block, n) = coords | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         self.set_attr_at(block, n, "c", self.set_attr, color) | 
					
						
							|  |  |  |         #self.set_attr_at(block, n, "g", self.set_attr, False) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |     def set_tap_info(self, coords, count, cap): | 
					
						
							|  |  |  |         (block, n) = coords | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         def _set_tap_info(o, _count, _cap): | 
					
						
							|  |  |  |             ns = 4 - o.count ("\n") | 
					
						
							|  |  |  |             return o + "\n" * ns + "%.02f%%" % (float(_count) / float(_cap) * 100) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if not cap: | 
					
						
							|  |  |  |             cap = 1 | 
					
						
							|  |  |  |         self.heatmap[block][n + 1] = _set_tap_info (self.heatmap[block][n + 1], count, cap) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @staticmethod | 
					
						
							|  |  |  |     def heatmap_color (v): | 
					
						
							|  |  |  |         colors = [ [0.3, 0.3, 1], [0.3, 1, 0.3], [1, 1, 0.3], [1, 0.3, 0.3]] | 
					
						
							|  |  |  |         fb = 0 | 
					
						
							|  |  |  |         if v <= 0: | 
					
						
							|  |  |  |             idx1, idx2 = 0, 0 | 
					
						
							|  |  |  |         elif v >= 1: | 
					
						
							|  |  |  |             idx1, idx2 = len(colors) - 1, len(colors) - 1 | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             val = v * (len(colors) - 1) | 
					
						
							|  |  |  |             idx1 = int(floor(val)) | 
					
						
							|  |  |  |             idx2 = idx1 + 1 | 
					
						
							|  |  |  |             fb = val - float(idx1) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         r = (colors[idx2][0] - colors[idx1][0]) * fb + colors[idx1][0] | 
					
						
							|  |  |  |         g = (colors[idx2][1] - colors[idx1][1]) * fb + colors[idx1][1] | 
					
						
							|  |  |  |         b = (colors[idx2][2] - colors[idx1][2]) * fb + colors[idx1][2] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |         r, g, b = [x * 255 for x in (r, g, b)] | 
					
						
							|  |  |  |         return "#%02x%02x%02x" % (int(r), int(g), int(b)) | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  | 
 | 
					
						
							|  |  |  |     def __init__(self, layout): | 
					
						
							|  |  |  |         self.log = {} | 
					
						
							|  |  |  |         self.total = 0 | 
					
						
							|  |  |  |         self.max_cnt = 0 | 
					
						
							|  |  |  |         self.layout = layout | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |     def update_log(self, coords): | 
					
						
							|  |  |  |         (c, r) = coords | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         if not (c, r) in self.log: | 
					
						
							|  |  |  |             self.log[(c, r)] = 0 | 
					
						
							|  |  |  |         self.log[(c, r)] = self.log[(c, r)] + 1 | 
					
						
							|  |  |  |         self.total = self.total + 1 | 
					
						
							|  |  |  |         if self.max_cnt < self.log[(c, r)]: | 
					
						
							|  |  |  |             self.max_cnt = self.log[(c, r)] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_heatmap(self): | 
					
						
							|  |  |  |         with open("%s/heatmap-layout.%s.json" % (dirname(sys.argv[0]), self.layout), "r") as f: | 
					
						
							|  |  |  |             self.heatmap = json.load (f) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ## Reset colors | 
					
						
							|  |  |  |         for row in self.coords: | 
					
						
							|  |  |  |             for coord in row: | 
					
						
							|  |  |  |                 if coord != []: | 
					
						
							|  |  |  |                     self.set_bg (coord, "#d9dae0") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         for (c, r) in self.log: | 
					
						
							|  |  |  |             coords = self.coord(c, r) | 
					
						
							|  |  |  |             b, n = coords | 
					
						
							|  |  |  |             cap = self.max_cnt | 
					
						
							|  |  |  |             if cap == 0: | 
					
						
							|  |  |  |                 cap = 1 | 
					
						
							|  |  |  |             v = float(self.log[(c, r)]) / cap | 
					
						
							|  |  |  |             self.set_bg (coords, self.heatmap_color (v)) | 
					
						
							|  |  |  |             self.set_tap_info (coords, self.log[(c, r)], self.total) | 
					
						
							|  |  |  |         return self.heatmap | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_stats(self): | 
					
						
							|  |  |  |         usage = [ | 
					
						
							|  |  |  |             # left hand | 
					
						
							|  |  |  |             [0, 0, 0, 0, 0], | 
					
						
							|  |  |  |             # right hand | 
					
						
							|  |  |  |             [0, 0, 0, 0, 0] | 
					
						
							|  |  |  |         ] | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |         finger_map = [0, 0, 1, 2, 3, 3, 3, 1, 1, 1, 2, 3, 4, 4] | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         for (c, r) in self.log: | 
					
						
							|  |  |  |             if r == 5: # thumb cluster | 
					
						
							|  |  |  |                 if c <= 6: # left side | 
					
						
							|  |  |  |                     usage[0][4] = usage[0][4] + self.log[(c, r)] | 
					
						
							|  |  |  |                 else: | 
					
						
							|  |  |  |                     usage[1][0] = usage[1][0] + self.log[(c, r)] | 
					
						
							|  |  |  |             elif r == 4 and (c == 4 or c == 9): # bottom row thumb keys | 
					
						
							|  |  |  |                 if c <= 6: # left side | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |                     usage[0][4] = usage[0][4] + self.log[(c, r)] | 
					
						
							|  |  |  |                 else: | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |                     usage[1][0] = usage[1][0] + self.log[(c, r)] | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |             else: | 
					
						
							|  |  |  |                 fc = c | 
					
						
							|  |  |  |                 hand = 0 | 
					
						
							|  |  |  |                 if fc >= 7: | 
					
						
							|  |  |  |                     hand = 1 | 
					
						
							|  |  |  |                 fm = finger_map[fc] | 
					
						
							|  |  |  |                 usage[hand][fm] = usage[hand][fm] + self.log[(c, r)] | 
					
						
							|  |  |  |         hand_usage = [0, 0] | 
					
						
							|  |  |  |         for f in usage[0]: | 
					
						
							|  |  |  |             hand_usage[0] = hand_usage[0] + f | 
					
						
							|  |  |  |         for f in usage[1]: | 
					
						
							|  |  |  |             hand_usage[1] = hand_usage[1] + f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         total = self.total | 
					
						
							|  |  |  |         if total == 0: | 
					
						
							|  |  |  |             total = 1 | 
					
						
							|  |  |  |         stats = { | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |             "total-keys": total, | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |             "hands": { | 
					
						
							|  |  |  |                 "left": { | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |                     "usage": round(float(hand_usage[0]) / total * 100, 2), | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |                     "fingers": { | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |                         "pinky": 0, | 
					
						
							|  |  |  |                         "ring": 0, | 
					
						
							|  |  |  |                         "middle": 0, | 
					
						
							|  |  |  |                         "index": 0, | 
					
						
							|  |  |  |                         "thumb": 0, | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |                     } | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 "right": { | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |                     "usage": round(float(hand_usage[1]) / total * 100, 2), | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |                     "fingers": { | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |                         "thumb": 0, | 
					
						
							|  |  |  |                         "index": 0, | 
					
						
							|  |  |  |                         "middle": 0, | 
					
						
							|  |  |  |                         "ring": 0, | 
					
						
							|  |  |  |                         "pinky": 0, | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |                     } | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         hmap = ['left', 'right'] | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |         fmap = ['pinky', 'ring', 'middle', 'index', 'thumb', | 
					
						
							|  |  |  |                 'thumb', 'index', 'middle', 'ring', 'pinky'] | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         for hand_idx in range(len(usage)): | 
					
						
							|  |  |  |             hand = usage[hand_idx] | 
					
						
							|  |  |  |             for finger_idx in range(len(hand)): | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |                 stats['hands'][hmap[hand_idx]]['fingers'][fmap[finger_idx + hand_idx * 5]] = round(float(hand[finger_idx]) / total * 100, 2) | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         return stats | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def dump_all(out_dir, heatmaps): | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |     stats = {} | 
					
						
							|  |  |  |     t = Terminal() | 
					
						
							|  |  |  |     t.clear() | 
					
						
							|  |  |  |     sys.stdout.write("\x1b[2J\x1b[H") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     print ('{t.underline}{outdir}{t.normal}\n'.format(t=t, outdir=out_dir)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     keys = list(heatmaps.keys()) | 
					
						
							|  |  |  |     keys.sort() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for layer in keys: | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         if len(heatmaps[layer].log) == 0: | 
					
						
							|  |  |  |             continue | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |         with open ("%s/%s.json" % (out_dir, layer), "w") as f: | 
					
						
							|  |  |  |             json.dump(heatmaps[layer].get_heatmap(), f) | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |         stats[layer] = heatmaps[layer].get_stats() | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |         left = stats[layer]['hands']['left'] | 
					
						
							|  |  |  |         right = stats[layer]['hands']['right'] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         print ('{t.bold}{layer}{t.normal} ({total:,} taps):'.format(t=t, layer=layer, | 
					
						
							|  |  |  |                                                                     total=int(stats[layer]['total-keys'] / 2))) | 
					
						
							|  |  |  |         print (('{t.underline}        | ' + \ | 
					
						
							|  |  |  |                 'left ({l[usage]:6.2f}%)  | ' + \ | 
					
						
							|  |  |  |                 'right ({r[usage]:6.2f}%) |{t.normal}').format(t=t, l=left, r=right)) | 
					
						
							|  |  |  |         print ((' {t.bright_magenta}pinky{t.white}  |     {left[pinky]:6.2f}%     |     {right[pinky]:6.2f}%     |\n' + \ | 
					
						
							|  |  |  |                 ' {t.bright_cyan}ring{t.white}   |     {left[ring]:6.2f}%     |     {right[ring]:6.2f}%     |\n' + \ | 
					
						
							|  |  |  |                 ' {t.bright_blue}middle{t.white} |     {left[middle]:6.2f}%     |     {right[middle]:6.2f}%     |\n' + \ | 
					
						
							|  |  |  |                 ' {t.bright_green}index{t.white}  |     {left[index]:6.2f}%     |     {right[index]:6.2f}%     |\n' + \ | 
					
						
							|  |  |  |                 ' {t.bright_red}thumb{t.white}  |     {left[thumb]:6.2f}%     |     {right[thumb]:6.2f}%     |\n' + \ | 
					
						
							|  |  |  |                 '').format(left=left['fingers'], right=right['fingers'], t=t)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def process_line(line, heatmaps, opts, stamped_log = None): | 
					
						
							|  |  |  |     m = re.search ('KL: col=(\d+), row=(\d+), pressed=(\d+), layer=(.*)', line) | 
					
						
							|  |  |  |     if not m: | 
					
						
							|  |  |  |         return False | 
					
						
							|  |  |  |     if stamped_log is not None: | 
					
						
							|  |  |  |         if line.startswith("KL:"): | 
					
						
							|  |  |  |             print ("%10.10f %s" % (time.time(), line), | 
					
						
							|  |  |  |                    file = stamped_log, end = '') | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             print (line, | 
					
						
							|  |  |  |                    file = stamped_log, end = '') | 
					
						
							|  |  |  |         stamped_log.flush() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     (c, r, l) = (int(m.group (2)), int(m.group (1)), m.group (4)) | 
					
						
							|  |  |  |     if (c, r) not in opts.allowed_keys: | 
					
						
							|  |  |  |         return False | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     heatmaps[l].update_log ((c, r)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def setup_allowed_keys(opts): | 
					
						
							|  |  |  |     if len(opts.only_key): | 
					
						
							|  |  |  |         incmap={} | 
					
						
							|  |  |  |         for v in opts.only_key: | 
					
						
							|  |  |  |             m = re.search ('(\d+),(\d+)', v) | 
					
						
							|  |  |  |             if not m: | 
					
						
							|  |  |  |                 continue | 
					
						
							|  |  |  |             (c, r) = (int(m.group(1)), int(m.group(2))) | 
					
						
							|  |  |  |             incmap[(c, r)] = True | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         incmap={} | 
					
						
							|  |  |  |         for r in range(0, 6): | 
					
						
							|  |  |  |             for c in range(0, 14): | 
					
						
							|  |  |  |                 incmap[(c, r)] = True | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |         for v in opts.ignore_key: | 
					
						
							|  |  |  |             m = re.search ('(\d+),(\d+)', v) | 
					
						
							|  |  |  |             if not m: | 
					
						
							|  |  |  |                 continue | 
					
						
							|  |  |  |             (c, r) = (int(m.group(1)), int(m.group(2))) | 
					
						
							|  |  |  |             del(incmap[(c, r)]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return incmap | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def main(opts): | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |     heatmaps = {"Dvorak": Heatmap("Dvorak"), | 
					
						
							|  |  |  |                 "ADORE": Heatmap("ADORE") | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     cnt = 0 | 
					
						
							|  |  |  |     out_dir = opts.outdir | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |     if not os.path.exists(out_dir): | 
					
						
							|  |  |  |         os.makedirs(out_dir) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     opts.allowed_keys = setup_allowed_keys(opts) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if not opts.one_shot: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             with open("%s/stamped-log" % out_dir, "r") as f: | 
					
						
							|  |  |  |                 while True: | 
					
						
							|  |  |  |                     line = f.readline() | 
					
						
							|  |  |  |                     if not line: | 
					
						
							|  |  |  |                         break | 
					
						
							|  |  |  |                     if not process_line(line, heatmaps, opts): | 
					
						
							|  |  |  |                         continue | 
					
						
							|  |  |  |         except: | 
					
						
							|  |  |  |             pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         stamped_log = open ("%s/stamped-log" % (out_dir), "a+") | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         stamped_log = None | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |     while True: | 
					
						
							|  |  |  |         line = sys.stdin.readline() | 
					
						
							|  |  |  |         if not line: | 
					
						
							|  |  |  |             break | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |         if not process_line(line, heatmaps, opts, stamped_log): | 
					
						
							|  |  |  |             continue | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  | 
 | 
					
						
							|  |  |  |         cnt = cnt + 1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |         if opts.dump_interval != -1 and cnt >= opts.dump_interval and not opts.one_shot: | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |             cnt = 0 | 
					
						
							|  |  |  |             dump_all(out_dir, heatmaps) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |     dump_all (out_dir, heatmaps) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     parser = argparse.ArgumentParser (description = "keylog to heatmap processor") | 
					
						
							|  |  |  |     parser.add_argument ('outdir', action = 'store', | 
					
						
							|  |  |  |                          help = 'Output directory') | 
					
						
							|  |  |  |     parser.add_argument ('--dump-interval', dest = 'dump_interval', action = 'store', type = int, | 
					
						
							|  |  |  |                          default = 100, help = 'Dump stats and heatmap at every Nth event, -1 for dumping at EOF only') | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |     parser.add_argument ('--ignore-key', dest = 'ignore_key', action = 'append', type = str, | 
					
						
							|  |  |  |                          default = [], help = 'Ignore the key at position (x, y)') | 
					
						
							|  |  |  |     parser.add_argument ('--only-key', dest = 'only_key', action = 'append', type = str, | 
					
						
							|  |  |  |                          default = [], help = 'Only include key at position (x, y)') | 
					
						
							|  |  |  |     parser.add_argument ('--one-shot', dest = 'one_shot', action = 'store_true', | 
					
						
							|  |  |  |                          help = 'Do not load previous data, and do not update it, either.') | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |     args = parser.parse_args() | 
					
						
							| 
									
										
											  
											
												Update the ergodox/algernon keymap to v1.7
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>
											
										 
											9 years ago
										 |  |  |     if len(args.ignore_key) and len(args.only_key): | 
					
						
							|  |  |  |         print ("--ignore-key and --only-key are mutually exclusive, please only use one of them!", | 
					
						
							|  |  |  |                file = sys.stderr) | 
					
						
							|  |  |  |         sys.exit(1) | 
					
						
							| 
									
										
											  
											
												ergodox: Update algernon's keymap to v1.6
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>
											
										 
											9 years ago
										 |  |  |     main(args) |