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]], |