diff options
| author | Erez Zukerman <bulk@ezuk.org> | 2016-10-03 17:49:23 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-03 17:49:23 -0400 |
| commit | d465e3f0c384654b4e65f4dc031a0c7422cdf853 (patch) | |
| tree | 0730c742b59c158d28464c6bbcddba0bb062c140 | |
| parent | 86065dca4d11338f778e40c2cd545e0b85c489c0 (diff) | |
| parent | aa9c6e9f59c5e45c6ea71cd3aa8fb037e88c11b6 (diff) | |
| download | qmk_firmware-d465e3f0c384654b4e65f4dc031a0c7422cdf853.tar.gz qmk_firmware-d465e3f0c384654b4e65f4dc031a0c7422cdf853.zip | |
Merge pull request #804 from algernon/ergodox-ez/algernon
ergodox: Update algernon's keymap to v1.8
| -rw-r--r-- | keyboards/ergodox/keymaps/algernon/NEWS.md | 145 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/algernon/images/adore-layer.png | bin | 97225 -> 97089 bytes | |||
| -rw-r--r-- | keyboards/ergodox/keymaps/algernon/images/steno-layer.png | bin | 69557 -> 64086 bytes | |||
| -rw-r--r-- | keyboards/ergodox/keymaps/algernon/keymap.c | 41 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/algernon/readme.md | 133 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json | 27 | ||||
| -rwxr-xr-x | keyboards/ergodox/keymaps/algernon/tools/hid-commands | 12 | ||||
| -rwxr-xr-x | keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py | 5 | ||||
| -rwxr-xr-x | keyboards/ergodox/keymaps/algernon/tools/text-to-log.py | 24 |
9 files changed, 212 insertions, 175 deletions
diff --git a/keyboards/ergodox/keymaps/algernon/NEWS.md b/keyboards/ergodox/keymaps/algernon/NEWS.md new file mode 100644 index 000000000..6b95c1ef4 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/NEWS.md | |||
| @@ -0,0 +1,145 @@ | |||
| 1 | ## v1.8 | ||
| 2 | |||
| 3 | *2016-10-03* | ||
| 4 | |||
| 5 | ### ADORE | ||
| 6 | |||
| 7 | * Major rearrangements were made, to reduce pinky use, and to balance out the hand usage. | ||
| 8 | |||
| 9 | ### Tools | ||
| 10 | |||
| 11 | * The `hid-commands` tool will now display a notification when the **AppSel** layer is triggered. | ||
| 12 | * The `log-to-heatmap.py` tool now treats the innermost keys on the bottom row as thumb keys, as far as statistics are concerned. | ||
| 13 | |||
| 14 | ### Miscellaneous | ||
| 15 | |||
| 16 | * Fixed the [Steno](#steno-layer) toggle key. | ||
| 17 | |||
| 18 | ## v1.7 | ||
| 19 | |||
| 20 | *2016-09-18* | ||
| 21 | |||
| 22 | ### Overall changes | ||
| 23 | |||
| 24 | * The number row has been completely rearranged on both the [Base](#base-layer) and the [ADORE](#adore-layer) layers. | ||
| 25 | * The number/function key behavior was changed: function keys are now on the **Media**. | ||
| 26 | * The `:`/`;` and `-`/`_` keys were put back to their thumb position on the bottom row, on both the [Base](#base-layer) and [ADORE](#adore-layer) layers. | ||
| 27 | * 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. | ||
| 28 | * 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. | ||
| 29 | |||
| 30 | ### ADORE | ||
| 31 | |||
| 32 | * `Y` and `X` have been swapped again. | ||
| 33 | |||
| 34 | ### Media/Navigation layer | ||
| 35 | |||
| 36 | * The function keys are now on this layer. | ||
| 37 | * Mouse keys have been removed. | ||
| 38 | * Media start/stop/prev/next have been removed. | ||
| 39 | * `Print screen` has been removed. | ||
| 40 | * There is only one screen lock key now. | ||
| 41 | |||
| 42 | ### Heatmap | ||
| 43 | |||
| 44 | * Fixed a few issues in the finger-stats calculation. | ||
| 45 | * 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. | ||
| 46 | * The heatmap tool will now colorize the stats by default. | ||
| 47 | * The periodic stats are now printed in a more compact format. | ||
| 48 | |||
| 49 | ### Tools | ||
| 50 | |||
| 51 | * 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. | ||
| 52 | * 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. | ||
| 53 | * 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. | ||
| 54 | |||
| 55 | ## v1.6 | ||
| 56 | |||
| 57 | *2016-08-24* | ||
| 58 | |||
| 59 | ### Base layer changes | ||
| 60 | |||
| 61 | * The parentheses & bracket keys have been merged: tapping them results in `[` or `{` (if it was shifted), double tapping leads to `(`. | ||
| 62 | * The `:;` and `-_` keys are now available on the base layer, on their [ADORE](#adore-layer) location, too, just below `[{(`/`]})`. | ||
| 63 | * The `Apps` key has been replaced by `F12`. | ||
| 64 | * The `-`/`_` is no longer a tap-dance key. | ||
| 65 | |||
| 66 | ### ADORE layer changes | ||
| 67 | |||
| 68 | * Adjustments were made to the [ADORE](#adore-layer) layer, to separate some inconvenient combinations. | ||
| 69 | |||
| 70 | ### Miscellaneous changes | ||
| 71 | |||
| 72 | * `LEAD u` now starts the symbolic unicode input system, instead of the OS-one. | ||
| 73 | * The mouse acceleration keys on the **Navigation/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. | ||
| 74 | * When the **ARROW** layer is on, the *red* and *blue* LEDs light up now. | ||
| 75 | |||
| 76 | ### Heatmap | ||
| 77 | |||
| 78 | * 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. | ||
| 79 | * The heatmap generator received a lot of updates. | ||
| 80 | |||
| 81 | ## v1.5 | ||
| 82 | |||
| 83 | *2016-08-12* | ||
| 84 | |||
| 85 | * The **1HAND** layer has been removed. | ||
| 86 | * A `Delete` key is now available on the right thumb cluster. | ||
| 87 | * The [ADORE](#adore-layer) layer received a major update, see the layout image above. | ||
| 88 | * It is now possible to enable automatic logging for the [ADORE](#adore-layer) layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when compiling the keymap. It is off by default. | ||
| 89 | * The `~` key and the `Media Next/Prev` key have been swapped on the [base layer](#base-layer). | ||
| 90 | * On the **ARROW** layer, `Backspace` has been replaced by `Enter`. | ||
| 91 | * There is some experimental support for entering Unicode symbols. | ||
| 92 | |||
| 93 | ## v1.4 | ||
| 94 | |||
| 95 | *2016-07-29* | ||
| 96 | |||
| 97 | * When toggling the key logging on or off, the LEDs will do a little dance. | ||
| 98 | * The keylogger is now optional, but enabled by default. Use `KEYLOGGER_ENABLE=no` on the `make` command line to disable it. | ||
| 99 | * The `TAB`/`ARRW` key was turned into a tap-dance key, allowing one to toggle the **ARROW** layer on by double-tapping, and as such, avoid the need to hold the key. | ||
| 100 | * The `-`/`_` key was turned into a tap-dance key too. | ||
| 101 | * There is now a way to travel time with the keyboard, toggle the feature on by hitting `LEAD t`. | ||
| 102 | |||
| 103 | ## v1.3 | ||
| 104 | |||
| 105 | *2016-07-06* | ||
| 106 | |||
| 107 | * Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a [heatmap](#heatmap) out of the logs. | ||
| 108 | * The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the [base layer](#base-layer) for an image that shows where arrows are. | ||
| 109 | * The **experimental** layer has been redone, and is now called [ADORE](#adore-layer), and as such, can be enabled by `LEAD a` now. | ||
| 110 | * Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot. | ||
| 111 | |||
| 112 | ## v1.2 | ||
| 113 | |||
| 114 | *2016-06-22* | ||
| 115 | |||
| 116 | * The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with [certain operating systems](#using-on-windows). | ||
| 117 | * The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted. | ||
| 118 | * The `=` and `\` keys were swapped, `=` moved to the home row, on both the [base](#base-layer) and the **experimental** layers. | ||
| 119 | * The arrow and navigation keys were redone, they are now more accessible, but the navigation keys require an extra tap to access. | ||
| 120 | * The **Emacs** layer is gone, replaced by a simplified **navigation and media** layer. | ||
| 121 | * `LEAD v` types the firmware version, and the keymap version. | ||
| 122 | * On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped. | ||
| 123 | * The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it easier on my fingers. | ||
| 124 | |||
| 125 | ## v1.1 | ||
| 126 | |||
| 127 | *2016-06-14* | ||
| 128 | |||
| 129 | * The keyboard starts in NKRO mode, bootmagic and other things are disabled. | ||
| 130 | * A [Steno](#steno-layer) layer was added, to be used with Plover. | ||
| 131 | * An **experimental** layer was added, something halfway between Dvorak and Capewell-Dvorak. A work in progress. | ||
| 132 | * `LEAD y` types `\o/`. | ||
| 133 | * Some keys on the [Base](#base-layer) layer have been moved around: | ||
| 134 | - `?` moved to the left pinky, left of `Q`. | ||
| 135 | - `=` shifted one row down, but `F11` stayed where it was. | ||
| 136 | - `-` on the left half was replaced by `Tab`. | ||
| 137 | - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key. | ||
| 138 | - `:` now inputs `;` when shifted. | ||
| 139 | * `ESC` cancels the **Hungarian** layer too, not just modifiers. | ||
| 140 | |||
| 141 | ## v1.0 | ||
| 142 | |||
| 143 | *2016-05-26* | ||
| 144 | |||
| 145 | Initial version. | ||
diff --git a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png index b611fbc42..5f39010bb 100644 --- a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png +++ b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png | |||
| Binary files differ | |||
diff --git a/keyboards/ergodox/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox/keymaps/algernon/images/steno-layer.png index fe3c03c93..9a2ba55ef 100644 --- a/keyboards/ergodox/keymaps/algernon/images/steno-layer.png +++ b/keyboards/ergodox/keymaps/algernon/images/steno-layer.png | |||
| Binary files differ | |||
diff --git a/keyboards/ergodox/keymaps/algernon/keymap.c b/keyboards/ergodox/keymaps/algernon/keymap.c index 248a0ed30..48d63fb0b 100644 --- a/keyboards/ergodox/keymaps/algernon/keymap.c +++ b/keyboards/ergodox/keymaps/algernon/keymap.c | |||
| @@ -160,11 +160,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 160 | * ,-----------------------------------------------------. ,-----------------------------------------------------. | 160 | * ,-----------------------------------------------------. ,-----------------------------------------------------. |
| 161 | * | Play/Pause| 9 | 7 @ | 5 * | 3 ^ | 1 $ | F11 | | F12 | 0 % | 2 ! | 4 # | 6 & | 8 | Plover | | 161 | * | Play/Pause| 9 | 7 @ | 5 * | 3 ^ | 1 $ | F11 | | F12 | 0 % | 2 ! | 4 # | 6 & | 8 | Plover | |
| 162 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| | 162 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| |
| 163 | * | `~ | X | W | G | L | M | ( | | ) | F | H | C | P | Y | \ | | 163 | * | \ | X | W | C | H | F | ( | | ) | M | G | L | P | / | `~ | |
| 164 | * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| | 164 | * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| |
| 165 | * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = | | 165 | * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = | |
| 166 | * |-----------+------+------+------+------+------| tmux | | tmux |------+------+------+------+------+-----------| | 166 | * |-----------+------+------+------+------+------| tmux | | tmux |------+------+------+------+------+-----------| |
| 167 | * | | Z | Q | ' | , | . | | | pane | B | K | V | J | / | | | 167 | * | | Z | Q | ' | , | . | | | pane | B | K | V | Y | J | | |
| 168 | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' | 168 | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' |
| 169 | * | | | | | : | | - | | | | | | 169 | * | | | | | : | | - | | | | | |
| 170 | * `-----------------------------------' `-----------------------------------' | 170 | * `-----------------------------------' `-----------------------------------' |
| @@ -179,7 +179,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 179 | [ADORE] = KEYMAP( | 179 | [ADORE] = KEYMAP( |
| 180 | // left hand | 180 | // left hand |
| 181 | KC_MPLY ,M(A_9) ,M(A_7) ,M(A_5) ,M(A_3) ,M(A_1) ,KC_F11 | 181 | KC_MPLY ,M(A_9) ,M(A_7) ,M(A_5) ,M(A_3) ,M(A_1) ,KC_F11 |
| 182 | ,KC_GRV ,KC_X ,KC_W ,KC_G ,KC_L ,KC_M ,TD(CT_LBP) | 182 | ,KC_BSLS ,KC_X ,KC_W ,KC_C ,KC_H ,KC_F ,TD(CT_LBP) |
| 183 | ,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U | 183 | ,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U |
| 184 | ,KC_NO ,KC_Z ,KC_Q ,KC_QUOT ,KC_COMM ,KC_DOT ,TD(CT_TMUX) | 184 | ,KC_NO ,KC_Z ,KC_Q ,KC_QUOT ,KC_COMM ,KC_DOT ,TD(CT_TMUX) |
| 185 | ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) | 185 | ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) |
| @@ -190,9 +190,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 190 | 190 | ||
| 191 | // right hand | 191 | // right hand |
| 192 | ,KC_F12 ,M(A_0) ,M(A_2) ,M(A_4) ,M(A_6) ,M(A_8) ,M(A_PLVR) | 192 | ,KC_F12 ,M(A_0) ,M(A_2) ,M(A_4) ,M(A_6) ,M(A_8) ,M(A_PLVR) |
| 193 | ,TD(CT_RBP),KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS | 193 | ,TD(CT_RBP),KC_M ,KC_G ,KC_L ,KC_P ,KC_SLSH ,KC_GRV |
| 194 | ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL | 194 | ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL |
| 195 | ,TD(CT_TPS),KC_B ,KC_K ,KC_V ,KC_J ,KC_SLSH ,KC_NO | 195 | ,TD(CT_TPS),KC_B ,KC_K ,KC_V ,KC_Y ,KC_J ,KC_NO |
| 196 | ,KC_MINS ,KC_NO ,KC_NO ,KC_NO ,KC_NO | 196 | ,KC_MINS ,KC_NO ,KC_NO ,KC_NO ,KC_NO |
| 197 | 197 | ||
| 198 | ,OSL(NMDIA),KC_DEL | 198 | ,OSL(NMDIA),KC_DEL |
| @@ -386,7 +386,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 386 | /* Keymap 6: Steno for Plover | 386 | /* Keymap 6: Steno for Plover |
| 387 | * | 387 | * |
| 388 | * ,--------------------------------------------------. ,--------------------------------------------------. | 388 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 389 | * | | | | | | | BASE | | | | | | | | | | 389 | * | | | | | | | | | | | | | | | BASE | |
| 390 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | 390 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
| 391 | * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | | 391 | * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | |
| 392 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 392 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| @@ -407,7 +407,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 407 | 407 | ||
| 408 | [PLVR] = KEYMAP( | 408 | [PLVR] = KEYMAP( |
| 409 | // left hand | 409 | // left hand |
| 410 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), | 410 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
| 411 | KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, | 411 | KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, |
| 412 | KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, | 412 | KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, |
| 413 | KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, | 413 | KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, |
| @@ -417,7 +417,7 @@ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | |||
| 417 | PV_A, PV_O, KC_NO, | 417 | PV_A, PV_O, KC_NO, |
| 418 | 418 | ||
| 419 | // right hand | 419 | // right hand |
| 420 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | 420 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), |
| 421 | PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, | 421 | PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, |
| 422 | PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, | 422 | PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, |
| 423 | PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, | 423 | PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, |
| @@ -617,6 +617,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 617 | register_code (KC_LGUI); | 617 | register_code (KC_LGUI); |
| 618 | if (record->tap.count && !record->tap.interrupted) { | 618 | if (record->tap.count && !record->tap.interrupted) { |
| 619 | if (record->tap.count >= 2) { | 619 | if (record->tap.count >= 2) { |
| 620 | uprintf("CMD:appsel_start\n"); | ||
| 620 | layer_on (APPSEL); | 621 | layer_on (APPSEL); |
| 621 | set_oneshot_layer (APPSEL, ONESHOT_START); | 622 | set_oneshot_layer (APPSEL, ONESHOT_START); |
| 622 | } | 623 | } |
| @@ -695,15 +696,15 @@ void matrix_init_user(void) { | |||
| 695 | 696 | ||
| 696 | LEADER_EXTERNS(); | 697 | LEADER_EXTERNS(); |
| 697 | 698 | ||
| 698 | static void ang_tap (uint8_t code, ...) { | 699 | static void ang_tap (uint16_t code, ...) { |
| 699 | uint8_t kc = code; | 700 | uint16_t kc = code; |
| 700 | va_list ap; | 701 | va_list ap; |
| 701 | 702 | ||
| 702 | va_start(ap, code); | 703 | va_start(ap, code); |
| 703 | 704 | ||
| 704 | do { | 705 | do { |
| 705 | register_code(kc); | 706 | register_code16(kc); |
| 706 | unregister_code(kc); | 707 | unregister_code16(kc); |
| 707 | wait_ms(50); | 708 | wait_ms(50); |
| 708 | kc = va_arg(ap, int); | 709 | kc = va_arg(ap, int); |
| 709 | } while (kc != 0); | 710 | } while (kc != 0); |
| @@ -866,6 +867,17 @@ void matrix_scan_user(void) { | |||
| 866 | leading = false; | 867 | leading = false; |
| 867 | leader_end (); | 868 | leader_end (); |
| 868 | 869 | ||
| 870 | SEQ_ONE_KEY (KC_C) { | ||
| 871 | ang_tap (LSFT(KC_C), KC_S, KC_I, KC_L, KC_L, KC_RALT, KC_QUOT, KC_A, KC_M, KC_A, KC_S, | ||
| 872 | KC_S, KC_Z, KC_O, KC_N, KC_Y, KC_K, KC_RALT, KC_QUOT, KC_A, KC_M, 0); | ||
| 873 | } | ||
| 874 | |||
| 875 | SEQ_ONE_KEY (KC_G) { | ||
| 876 | ang_tap (LSFT(KC_G), KC_E, KC_J, KC_G, KC_RALT, KC_EQL, KC_O, | ||
| 877 | KC_RALT, KC_EQL, KC_O, | ||
| 878 | KC_RALT, KC_EQL, KC_O, 0); | ||
| 879 | } | ||
| 880 | |||
| 869 | #if KEYLOGGER_ENABLE | 881 | #if KEYLOGGER_ENABLE |
| 870 | SEQ_ONE_KEY (KC_D) { | 882 | SEQ_ONE_KEY (KC_D) { |
| 871 | ergodox_led_all_on(); | 883 | ergodox_led_all_on(); |
| @@ -875,11 +887,6 @@ void matrix_scan_user(void) { | |||
| 875 | } | 887 | } |
| 876 | #endif | 888 | #endif |
| 877 | 889 | ||
| 878 | SEQ_ONE_KEY (KC_Q) { | ||
| 879 | register_code16 (LCTL(KC_1)); | ||
| 880 | unregister_code16 (LCTL(KC_1)); | ||
| 881 | } | ||
| 882 | |||
| 883 | SEQ_ONE_KEY (KC_T) { | 890 | SEQ_ONE_KEY (KC_T) { |
| 884 | time_travel = !time_travel; | 891 | time_travel = !time_travel; |
| 885 | } | 892 | } |
diff --git a/keyboards/ergodox/keymaps/algernon/readme.md b/keyboards/ergodox/keymaps/algernon/readme.md index f15b67652..822ca3650 100644 --- a/keyboards/ergodox/keymaps/algernon/readme.md +++ b/keyboards/ergodox/keymaps/algernon/readme.md | |||
| @@ -27,7 +27,7 @@ Some of the things in the layout only work when one uses [Spacemacs][spacemacs] | |||
| 27 | - [Unicode Symbol Input](#unicode-symbol-input) | 27 | - [Unicode Symbol Input](#unicode-symbol-input) |
| 28 | * [Building](#building) | 28 | * [Building](#building) |
| 29 | - [Using on Windows](#using-on-windows) | 29 | - [Using on Windows](#using-on-windows) |
| 30 | * [Changelog](#changelog) | 30 | * [Changelog](https://github.com/algernon/ergodox-layout/blob/master/NEWS.md#readme) |
| 31 | * [License](#license) | 31 | * [License](#license) |
| 32 | 32 | ||
| 33 | # Layouts | 33 | # Layouts |
| @@ -145,137 +145,6 @@ $ make keyboard=ergodox keymap=algernon | |||
| 145 | 145 | ||
| 146 | The keymap default to forcing NKRO, which seems to upset Windows, and except the modifiers, none of them work. If you experience this problem, recompile the firmware with `FORCE_NKRO=no` added to the `make` command line. | 146 | The keymap default to forcing NKRO, which seems to upset Windows, and except the modifiers, none of them work. If you experience this problem, recompile the firmware with `FORCE_NKRO=no` added to the `make` command line. |
| 147 | 147 | ||
| 148 | # Changelog | ||
| 149 | |||
| 150 | ## v1.7 | ||
| 151 | |||
| 152 | *2016-09-18* | ||
| 153 | |||
| 154 | ### Overall changes | ||
| 155 | |||
| 156 | * The number row has been completely rearranged on both the [Base](#base-layer) and the [ADORE](#adore-layer) layers. | ||
| 157 | * The number/function key behavior was changed: function keys are now on the **Media**. | ||
| 158 | * The `:`/`;` and `-`/`_` keys were put back to their thumb position on the bottom row, on both the [Base](#base-layer) and [ADORE](#adore-layer) layers. | ||
| 159 | * 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. | ||
| 160 | * 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. | ||
| 161 | |||
| 162 | ### ADORE | ||
| 163 | |||
| 164 | * `Y` and `X` have been swapped again. | ||
| 165 | |||
| 166 | ### Media/Navigation layer | ||
| 167 | |||
| 168 | * The function keys are now on this layer. | ||
| 169 | * Mouse keys have been removed. | ||
| 170 | * Media start/stop/prev/next have been removed. | ||
| 171 | * `Print screen` has been removed. | ||
| 172 | * There is only one screen lock key now. | ||
| 173 | |||
| 174 | ### Heatmap | ||
| 175 | |||
| 176 | * Fixed a few issues in the finger-stats calculation. | ||
| 177 | * 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. | ||
| 178 | * The heatmap tool will now colorize the stats by default. | ||
| 179 | * The periodic stats are now printed in a more compact format. | ||
| 180 | |||
| 181 | ### Tools | ||
| 182 | |||
| 183 | * 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. | ||
| 184 | * 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. | ||
| 185 | * 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. | ||
| 186 | |||
| 187 | ## v1.6 | ||
| 188 | |||
| 189 | *2016-08-24* | ||
| 190 | |||
| 191 | ### Base layer changes | ||
| 192 | |||
| 193 | * The parentheses & bracket keys have been merged: tapping them results in `[` or `{` (if it was shifted), double tapping leads to `(`. | ||
| 194 | * The `:;` and `-_` keys are now available on the base layer, on their [ADORE](#adore-layer) location, too, just below `[{(`/`]})`. | ||
| 195 | * The `Apps` key has been replaced by `F12`. | ||
| 196 | * The `-`/`_` is no longer a tap-dance key. | ||
| 197 | |||
| 198 | ### ADORE layer changes | ||
| 199 | |||
| 200 | * Adjustments were made to the [ADORE](#adore-layer) layer, to separate some inconvenient combinations. | ||
| 201 | |||
| 202 | ### Miscellaneous changes | ||
| 203 | |||
| 204 | * `LEAD u` now starts the symbolic unicode input system, instead of the OS-one. | ||
| 205 | * The mouse acceleration keys on the **Navigation/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. | ||
| 206 | * When the **ARROW** layer is on, the *red* and *blue* LEDs light up now. | ||
| 207 | |||
| 208 | ### Heatmap | ||
| 209 | |||
| 210 | * 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. | ||
| 211 | * The heatmap generator received a lot of updates. | ||
| 212 | |||
| 213 | ## v1.5 | ||
| 214 | |||
| 215 | *2016-08-12* | ||
| 216 | |||
| 217 | * The **1HAND** layer has been removed. | ||
| 218 | * A `Delete` key is now available on the right thumb cluster. | ||
| 219 | * The [ADORE](#adore-layer) layer received a major update, see the layout image above. | ||
| 220 | * It is now possible to enable automatic logging for the [ADORE](#adore-layer) layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when compiling the keymap. It is off by default. | ||
| 221 | * The `~` key and the `Media Next/Prev` key have been swapped on the [base layer](#base-layer). | ||
| 222 | * On the **ARROW** layer, `Backspace` has been replaced by `Enter`. | ||
| 223 | * There is some experimental support for entering Unicode symbols. | ||
| 224 | |||
| 225 | ## v1.4 | ||
| 226 | |||
| 227 | *2016-07-29* | ||
| 228 | |||
| 229 | * When toggling the key logging on or off, the LEDs will do a little dance. | ||
| 230 | * The keylogger is now optional, but enabled by default. Use `KEYLOGGER_ENABLE=no` on the `make` command line to disable it. | ||
| 231 | * The `TAB`/`ARRW` key was turned into a tap-dance key, allowing one to toggle the **ARROW** layer on by double-tapping, and as such, avoid the need to hold the key. | ||
| 232 | * The `-`/`_` key was turned into a tap-dance key too. | ||
| 233 | * There is now a way to travel time with the keyboard, toggle the feature on by hitting `LEAD t`. | ||
| 234 | |||
| 235 | ## v1.3 | ||
| 236 | |||
| 237 | *2016-07-06* | ||
| 238 | |||
| 239 | * Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a [heatmap](#heatmap) out of the logs. | ||
| 240 | * The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the [base layer](#base-layer) for an image that shows where arrows are. | ||
| 241 | * The **experimental** layer has been redone, and is now called [ADORE](#adore-layer), and as such, can be enabled by `LEAD a` now. | ||
| 242 | * Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot. | ||
| 243 | |||
| 244 | ## v1.2 | ||
| 245 | |||
| 246 | *2016-06-22* | ||
| 247 | |||
| 248 | * The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with [certain operating systems](#using-on-windows). | ||
| 249 | * The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted. | ||
| 250 | * The `=` and `\` keys were swapped, `=` moved to the home row, on both the [base](#base-layer) and the **experimental** layers. | ||
| 251 | * The arrow and navigation keys were redone, they are now more accessible, but the navigation keys require an extra tap to access. | ||
| 252 | * The **Emacs** layer is gone, replaced by a simplified **navigation and media** layer. | ||
| 253 | * `LEAD v` types the firmware version, and the keymap version. | ||
| 254 | * On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped. | ||
| 255 | * The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it easier on my fingers. | ||
| 256 | |||
| 257 | ## v1.1 | ||
| 258 | |||
| 259 | *2016-06-14* | ||
| 260 | |||
| 261 | * The keyboard starts in NKRO mode, bootmagic and other things are disabled. | ||
| 262 | * A [Steno](#steno-layer) layer was added, to be used with Plover. | ||
| 263 | * An **experimental** layer was added, something halfway between Dvorak and Capewell-Dvorak. A work in progress. | ||
| 264 | * `LEAD y` types `\o/`. | ||
| 265 | * Some keys on the [Base](#base-layer) layer have been moved around: | ||
| 266 | - `?` moved to the left pinky, left of `Q`. | ||
| 267 | - `=` shifted one row down, but `F11` stayed where it was. | ||
| 268 | - `-` on the left half was replaced by `Tab`. | ||
| 269 | - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key. | ||
| 270 | - `:` now inputs `;` when shifted. | ||
| 271 | * `ESC` cancels the **Hungarian** layer too, not just modifiers. | ||
| 272 | |||
| 273 | ## v1.0 | ||
| 274 | |||
| 275 | *2016-05-26* | ||
| 276 | |||
| 277 | Initial version. | ||
| 278 | |||
| 279 | # License | 148 | # License |
| 280 | 149 | ||
| 281 | The layout, being a derivative of the original TMK firmware which is under the GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older version. | 150 | The layout, being a derivative of the original TMK firmware which is under the GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older version. |
diff --git a/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json index 502d1e6ea..a34edcf87 100644 --- a/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json +++ b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json | |||
| @@ -111,11 +111,11 @@ | |||
| 111 | "x": 3.5, | 111 | "x": 3.5, |
| 112 | "a": 6 | 112 | "a": 6 |
| 113 | }, | 113 | }, |
| 114 | "G", | 114 | "C", |
| 115 | { | 115 | { |
| 116 | "x": 10.5 | 116 | "x": 10.5 |
| 117 | }, | 117 | }, |
| 118 | "C" | 118 | "L" |
| 119 | ], | 119 | ], |
| 120 | [ | 120 | [ |
| 121 | { | 121 | { |
| @@ -128,11 +128,11 @@ | |||
| 128 | "x": 1, | 128 | "x": 1, |
| 129 | "a": 6 | 129 | "a": 6 |
| 130 | }, | 130 | }, |
| 131 | "L", | 131 | "H", |
| 132 | { | 132 | { |
| 133 | "x": 8.5 | 133 | "x": 8.5 |
| 134 | }, | 134 | }, |
| 135 | "H", | 135 | "G", |
| 136 | { | 136 | { |
| 137 | "x": 1 | 137 | "x": 1 |
| 138 | }, | 138 | }, |
| @@ -143,7 +143,7 @@ | |||
| 143 | "y": -0.875, | 143 | "y": -0.875, |
| 144 | "x": 5.5 | 144 | "x": 5.5 |
| 145 | }, | 145 | }, |
| 146 | "M", | 146 | "F", |
| 147 | { | 147 | { |
| 148 | "a": 4, | 148 | "a": 4, |
| 149 | "fa": [0, 0, 0], | 149 | "fa": [0, 0, 0], |
| @@ -158,7 +158,7 @@ | |||
| 158 | { | 158 | { |
| 159 | "a": 6 | 159 | "a": 6 |
| 160 | }, | 160 | }, |
| 161 | "F" | 161 | "M" |
| 162 | ], | 162 | ], |
| 163 | [ | 163 | [ |
| 164 | { | 164 | { |
| @@ -167,7 +167,7 @@ | |||
| 167 | "a": 4, | 167 | "a": 4, |
| 168 | "w": 1.5 | 168 | "w": 1.5 |
| 169 | }, | 169 | }, |
| 170 | "\n\n~\n`", | 170 | "\n\n|\n\\", |
| 171 | { | 171 | { |
| 172 | "a": 6, | 172 | "a": 6, |
| 173 | "f": 3 | 173 | "f": 3 |
| @@ -175,14 +175,14 @@ | |||
| 175 | "X", | 175 | "X", |
| 176 | { | 176 | { |
| 177 | "x": 14.5, | 177 | "x": 14.5, |
| 178 | "a": 6 | 178 | "a": 4 |
| 179 | }, | 179 | }, |
| 180 | "Y", | 180 | "/\n?", |
| 181 | { | 181 | { |
| 182 | "a": 4, | 182 | "a": 4, |
| 183 | "w": 1.5 | 183 | "w": 1.5 |
| 184 | }, | 184 | }, |
| 185 | "|\n\\" | 185 | "~\n`" |
| 186 | ], | 186 | ], |
| 187 | [ | 187 | [ |
| 188 | { | 188 | { |
| @@ -312,7 +312,7 @@ | |||
| 312 | { | 312 | { |
| 313 | "x": 1 | 313 | "x": 1 |
| 314 | }, | 314 | }, |
| 315 | "J" | 315 | "Y" |
| 316 | ], | 316 | ], |
| 317 | [ | 317 | [ |
| 318 | { | 318 | { |
| @@ -342,10 +342,9 @@ | |||
| 342 | }, | 342 | }, |
| 343 | "Z", | 343 | "Z", |
| 344 | { | 344 | { |
| 345 | "x": 14.5, | 345 | "x": 14.5 |
| 346 | "a": 4 | ||
| 347 | }, | 346 | }, |
| 348 | "?\n/", | 347 | "J", |
| 349 | { | 348 | { |
| 350 | "f": 9, | 349 | "f": 9, |
| 351 | "g": true, | 350 | "g": true, |
diff --git a/keyboards/ergodox/keymaps/algernon/tools/hid-commands b/keyboards/ergodox/keymaps/algernon/tools/hid-commands index f3b83cf6d..2a6710be4 100755 --- a/keyboards/ergodox/keymaps/algernon/tools/hid-commands +++ b/keyboards/ergodox/keymaps/algernon/tools/hid-commands | |||
| @@ -1,6 +1,8 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | set -e | 2 | set -e |
| 3 | 3 | ||
| 4 | LAST_APPSEL_START=0 | ||
| 5 | |||
| 4 | cmd_wm () { | 6 | cmd_wm () { |
| 5 | WIN="$(xdotool getactivewindow)" | 7 | WIN="$(xdotool getactivewindow)" |
| 6 | wmctrl -i -r ${WIN} -b remove,maximized_vert,maximized_horz | 8 | wmctrl -i -r ${WIN} -b remove,maximized_vert,maximized_horz |
| @@ -34,6 +36,16 @@ cmd_appsel_chrome () { | |||
| 34 | _cmd_appsel chromium | 36 | _cmd_appsel chromium |
| 35 | } | 37 | } |
| 36 | 38 | ||
| 39 | cmd_appsel_start () { | ||
| 40 | APPSEL_START=$(date +%s) | ||
| 41 | if [ $APPSEL_START -lt $(expr $LAST_APPSEL_START + 10) ]; then | ||
| 42 | return | ||
| 43 | fi | ||
| 44 | LAST_APPSEL_START=$APPSEL_START | ||
| 45 | notify-send -t 1000 "Please select an application!" -c device -u low \ | ||
| 46 | -i /usr/share/icons/Adwaita/24x24/devices/video-display.png | ||
| 47 | } | ||
| 48 | |||
| 37 | cmd_help () { | 49 | cmd_help () { |
| 38 | cat <<EOF | 50 | cat <<EOF |
| 39 | Use the source, Luke! | 51 | Use the source, Luke! |
diff --git a/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py b/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py index 09c737646..e927e0e39 100755 --- a/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py +++ b/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py | |||
| @@ -145,6 +145,11 @@ class Heatmap(object): | |||
| 145 | usage[0][4] = usage[0][4] + self.log[(c, r)] | 145 | usage[0][4] = usage[0][4] + self.log[(c, r)] |
| 146 | else: | 146 | else: |
| 147 | usage[1][0] = usage[1][0] + self.log[(c, r)] | 147 | usage[1][0] = usage[1][0] + self.log[(c, r)] |
| 148 | elif r == 4 and (c == 4 or c == 9): # bottom row thumb keys | ||
| 149 | if c <= 6: # left side | ||
| 150 | usage[0][4] = usage[0][4] + self.log[(c, r)] | ||
| 151 | else: | ||
| 152 | usage[1][0] = usage[1][0] + self.log[(c, r)] | ||
| 148 | else: | 153 | else: |
| 149 | fc = c | 154 | fc = c |
| 150 | hand = 0 | 155 | hand = 0 |
diff --git a/keyboards/ergodox/keymaps/algernon/tools/text-to-log.py b/keyboards/ergodox/keymaps/algernon/tools/text-to-log.py index e068c3cbf..f080c32cd 100755 --- a/keyboards/ergodox/keymaps/algernon/tools/text-to-log.py +++ b/keyboards/ergodox/keymaps/algernon/tools/text-to-log.py | |||
| @@ -15,20 +15,20 @@ charmap = { | |||
| 15 | '6': [[11, 0]], '&': [[2, 5], [11, 0]], | 15 | '6': [[11, 0]], '&': [[2, 5], [11, 0]], |
| 16 | '8': [[12, 0]], | 16 | '8': [[12, 0]], |
| 17 | 17 | ||
| 18 | '`': [[0, 1]], '~': [[2, 5], [0, 1]], | 18 | '\\': [[0, 1]], '|': [[2, 5], [0, 1]], |
| 19 | 'y': [[1, 1]], 'Y': [[2, 5], [1, 1]], | 19 | 'x': [[1, 1]], 'X': [[2, 5], [1, 1]], |
| 20 | 'w': [[2, 1]], 'W': [[2, 5], [2, 1]], | 20 | 'w': [[2, 1]], 'W': [[2, 5], [2, 1]], |
| 21 | 'g': [[3, 1]], 'G': [[2, 5], [3, 1]], | 21 | 'c': [[3, 1]], 'C': [[2, 5], [3, 1]], |
| 22 | 'l': [[4, 1]], 'L': [[2, 5], [4, 1]], | 22 | 'h': [[4, 1]], 'H': [[2, 5], [4, 1]], |
| 23 | 'm': [[5, 1]], 'M': [[2, 5], [5, 1]], | 23 | 'f': [[5, 1]], 'F': [[2, 5], [5, 1]], |
| 24 | '[': [[6, 1]], '{': [[2, 5], [6, 1]], '(': [[6, 1], [6, 1]], | 24 | '[': [[6, 1]], '{': [[2, 5], [6, 1]], '(': [[6, 1], [6, 1]], |
| 25 | ']': [[7, 1]], '}': [[2, 5], [7, 1]], ')': [[7, 1], [7, 1]], | 25 | ']': [[7, 1]], '}': [[2, 5], [7, 1]], ')': [[7, 1], [7, 1]], |
| 26 | 'f': [[8, 1]], 'F': [[2, 5], [8, 1]], | 26 | 'm': [[8, 1]], 'M': [[2, 5], [8, 1]], |
| 27 | 'h': [[9, 1]], 'H': [[2, 5], [9, 1]], | 27 | 'g': [[9, 1]], 'G': [[2, 5], [9, 1]], |
| 28 | 'c': [[10, 1]], 'C': [[2, 5], [10, 1]], | 28 | 'l': [[10, 1]], 'L': [[2, 5], [10, 1]], |
| 29 | 'p': [[11, 1]], 'P': [[2, 5], [11, 1]], | 29 | 'p': [[11, 1]], 'P': [[2, 5], [11, 1]], |
| 30 | 'x': [[12, 1]], 'X': [[2, 5], [12, 1]], | 30 | '/': [[12, 1]], '?': [[2, 5], [12, 1]], |
| 31 | '\\': [[13, 1]], '|': [[2, 5], [13, 1]], | 31 | '`': [[13, 1]], '~': [[2, 5], [13, 1]], |
| 32 | 32 | ||
| 33 | '\t': [[0, 2]], | 33 | '\t': [[0, 2]], |
| 34 | 'a': [[1, 2]], 'A': [[2, 5], [1, 2]], | 34 | 'a': [[1, 2]], 'A': [[2, 5], [1, 2]], |
| @@ -51,8 +51,8 @@ charmap = { | |||
| 51 | 'b': [[8, 3]], 'B': [[2, 5], [8, 3]], | 51 | 'b': [[8, 3]], 'B': [[2, 5], [8, 3]], |
| 52 | 'k': [[9, 3]], 'K': [[2, 5], [9, 3]], | 52 | 'k': [[9, 3]], 'K': [[2, 5], [9, 3]], |
| 53 | 'v': [[10, 3]], 'V': [[2, 5], [10, 3]], | 53 | 'v': [[10, 3]], 'V': [[2, 5], [10, 3]], |
| 54 | 'j': [[11, 3]], 'J': [[2, 5], [11, 3]], | 54 | 'y': [[11, 3]], 'Y': [[2, 5], [11, 3]], |
| 55 | '/': [[12, 3]], '?': [[2, 5], [12, 3]], | 55 | 'j': [[12, 3]], 'J': [[2, 5], [12, 3]], |
| 56 | 56 | ||
| 57 | ':': [[4, 4]], ';': [[4, 4], [4, 4]], | 57 | ':': [[4, 4]], ';': [[4, 4], [4, 4]], |
| 58 | '-': [[9, 4]], '_': [[2, 5], [9, 4]], | 58 | '-': [[9, 4]], '_': [[2, 5], [9, 4]], |
