diff options
Diffstat (limited to 'keyboards/ergodox/keymaps')
74 files changed, 5434 insertions, 388 deletions
diff --git a/keyboards/ergodox/keymaps/algernon/NEWS.md b/keyboards/ergodox/keymaps/algernon/NEWS.md index 6b95c1ef43..ee9d606708 100644 --- a/keyboards/ergodox/keymaps/algernon/NEWS.md +++ b/keyboards/ergodox/keymaps/algernon/NEWS.md @@ -1,3 +1,47 @@ +<!-- -*- mode: markdown; fill-column: 8192 -*- --> + +## v1.10 + +*2016-12-28* + +### Miscellaneous + +* `µ` can now be entered with UCIS. +* `™` can now be entered with UCIS. + +### Tools + +* `tools/hid-commands` can now find Banshee, and prefers it over Kodi. +* `tools/hid-commands` can now find Chrome too, not juts Chromium. + +## v1.9 + +*2016-10-16* + +### Overall changes + +* `F12` was replaced by an `Fx` key, that activate the **Media** layer as a one-shot layer, and also `Alt` as a one-shot modifier. + +### Base layer changes + +* The `Media Stop` key is now a tap-dance key, and resets the device for programming on the fourth tap. + +### Miscellaneous + +* `π` can now be entered with UCIS. +* `🐁` can now be entered with UCIS. + +### Tools + +* The `tools/layer-notify` tool was removed, it was an example, which I don't use. + +#### `tools/hid-commands` + +* Now looks at the `DISABLE_APPSEL_START` environment value, and does not display an AppSel notification if it is non-empty. +* Will attempt to re-program the keyboard when receiving a `reflash` command. +* No longer tries to select Emacs 24 on `APPSEL_EMACS`, rather, it goes for any Emacs. +* The `APPSEL_MUSIC` command now includes Kodi in the list too, as the last choice. + ## v1.8 *2016-10-03* @@ -13,7 +57,7 @@ ### Miscellaneous -* Fixed the [Steno](#steno-layer) toggle key. +* Fixed the **Steno** toggle key. ## v1.7 @@ -21,9 +65,9 @@ ### Overall changes -* The number row has been completely rearranged on both the [Base](#base-layer) and the [ADORE](#adore-layer) layers. +* 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](#base-layer) and [ADORE](#adore-layer) layers. +* 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. @@ -59,13 +103,13 @@ ### 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](#adore-layer) location, too, just below `[{(`/`]})`. +* 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](#adore-layer) layer, to separate some inconvenient combinations. +* Adjustments were made to the **ADORE** layer, to separate some inconvenient combinations. ### Miscellaneous changes @@ -84,9 +128,9 @@ * The **1HAND** layer has been removed. * A `Delete` key is now available on the right thumb cluster. -* The [ADORE](#adore-layer) layer received a major update, see the layout image above. -* 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. -* The `~` key and the `Media Next/Prev` key have been swapped on the [base layer](#base-layer). +* The **ADORE** layer received a major update, see the layout image above. +* It is now possible to enable automatic logging for the **ADORE** layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when compiling the keymap. It is off by default. +* The `~` key and the `Media Next/Prev` key have been swapped on the **Base** layer. * On the **ARROW** layer, `Backspace` has been replaced by `Enter`. * There is some experimental support for entering Unicode symbols. @@ -104,33 +148,33 @@ *2016-07-06* -* Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a [heatmap](#heatmap) out of the logs. -* 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. -* The **experimental** layer has been redone, and is now called [ADORE](#adore-layer), and as such, can be enabled by `LEAD a` now. +* Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a *heatmap* out of the logs. +* The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the **Base** layer for an image that shows where arrows are. +* The **experimental** layer has been redone, and is now called **ADORE**, and as such, can be enabled by `LEAD a` now. * Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot. ## v1.2 *2016-06-22* -* The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with [certain operating systems](#using-on-windows). +* The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with certain operating systems. * The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted. -* The `=` and `\` keys were swapped, `=` moved to the home row, on both the [base](#base-layer) and the **experimental** layers. +* The `=` and `\` keys were swapped, `=` moved to the home row, on both the **Base** and the **experimental** layers. * The arrow and navigation keys were redone, they are now more accessible, but the navigation keys require an extra tap to access. * The **Emacs** layer is gone, replaced by a simplified **navigation and media** layer. * `LEAD v` types the firmware version, and the keymap version. * On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped. -* The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it easier on my fingers. +* The **Steno** layer gained a few more `#` and `*` keys, to make it easier on my fingers. ## v1.1 *2016-06-14* * The keyboard starts in NKRO mode, bootmagic and other things are disabled. -* A [Steno](#steno-layer) layer was added, to be used with Plover. +* A **Steno** layer was added, to be used with Plover. * An **experimental** layer was added, something halfway between Dvorak and Capewell-Dvorak. A work in progress. * `LEAD y` types `\o/`. -* Some keys on the [Base](#base-layer) layer have been moved around: +* Some keys on the **Base** layer have been moved around: - `?` moved to the left pinky, left of `Q`. - `=` shifted one row down, but `F11` stayed where it was. - `-` on the left half was replaced by `Tab`. diff --git a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png Binary files differindex 5f39010bb6..f6c64ca645 100644 --- a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png +++ b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png diff --git a/keyboards/ergodox/keymaps/algernon/images/base-layer.png b/keyboards/ergodox/keymaps/algernon/images/base-layer.png Binary files differindex 2a981a4706..5bd0611f65 100644 --- a/keyboards/ergodox/keymaps/algernon/images/base-layer.png +++ b/keyboards/ergodox/keymaps/algernon/images/base-layer.png diff --git a/keyboards/ergodox/keymaps/algernon/keymap.c b/keyboards/ergodox/keymaps/algernon/keymap.c index 48d63fb0bd..b615f3f5fd 100644 --- a/keyboards/ergodox/keymaps/algernon/keymap.c +++ b/keyboards/ergodox/keymaps/algernon/keymap.c @@ -64,6 +64,9 @@ enum { A_8, A_9, A_0, + + // Fx + Fx, }; /* Fn keys */ @@ -86,14 +89,13 @@ enum { CT_RBP, CT_TMUX, CT_TPS, + CT_SR, }; /* States & timers */ uint16_t gui_timer = 0; -uint16_t kf_timers[12]; - #if KEYLOGGER_ENABLE # ifdef AUTOLOG_ENABLE bool log_enable = true; @@ -103,6 +105,7 @@ bool log_enable = false; #endif bool time_travel = false; +bool skip_leds = false; static uint8_t is_adore = 0; @@ -113,13 +116,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Base Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | Next/Prev | 9 | 7 @ | 5 * | 3 ^ | 1 $ | F11 | | F12 | 0 % | 2 ! | 4 # | 6 & | 8 | Plover | + * | Next/Prev | 9 | 7 @ | 5 * | 3 ^ | 1 $ | F11 | | Fx | 0 % | 2 ! | 4 # | 6 & | 8 | Plover | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | ~ | ' | , | . | P | Y | ( | | ) | F | G | C | R | L | \ | * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow | * |-----------+------+------+------+------+------| tmux | | tmux |------+------+------+------+------+-----------| - * | Play/Pause| / | Q | J | K | X | | | Pane | B | M | W | V | Z | Stop | + * | Play/Pause| / | Q | J | K | X | | | Pane | B | M | W | V | Z | Stop/Reset| * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' * | | | | | : | | - | | | | | * `-----------------------------------' `-----------------------------------' @@ -144,10 +147,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_BSPC,F(F_SFT),KC_ESC // right hand - ,KC_F12 ,M(A_0) ,M(A_2) ,M(A_4) ,M(A_6) ,M(A_8) ,M(A_PLVR) + ,M(Fx) ,M(A_0) ,M(A_2) ,M(A_4) ,M(A_6) ,M(A_8) ,M(A_PLVR) ,TD(CT_RBP),KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL - ,TD(CT_TPS),KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,TD(CT_TPS),KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,TD(CT_SR) ,KC_MINS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,OSL(NMDIA),KC_DEL @@ -158,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Adore layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | Play/Pause| 9 | 7 @ | 5 * | 3 ^ | 1 $ | F11 | | F12 | 0 % | 2 ! | 4 # | 6 & | 8 | Plover | + * | Play/Pause| 9 | 7 @ | 5 * | 3 ^ | 1 $ | F11 | | Fx | 0 % | 2 ! | 4 # | 6 & | 8 | Plover | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | \ | X | W | C | H | F | ( | | ) | M | G | L | P | / | `~ | * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| @@ -189,7 +192,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_BSPC,F(F_SFT),KC_ESC // right hand - ,KC_F12 ,M(A_0) ,M(A_2) ,M(A_4) ,M(A_6) ,M(A_8) ,M(A_PLVR) + ,M(Fx) ,M(A_0) ,M(A_2) ,M(A_4) ,M(A_6) ,M(A_8) ,M(A_PLVR) ,TD(CT_RBP),KC_M ,KC_G ,KC_L ,KC_P ,KC_SLSH ,KC_GRV ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL ,TD(CT_TPS),KC_B ,KC_K ,KC_V ,KC_Y ,KC_J ,KC_NO @@ -342,7 +345,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 5: Navigation & Media layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F9 | F7 | F5 | F3 | F1 | | |ScrLCK| F10 | F2 | F4 | F6 | F8 | | + * | | F9 | F7 | F5 | F3 | F1 |ScrLCK| | | F10 | F2 | F4 | F6 | F8 | | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | | | | | | | | | | | | | | | | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| @@ -362,7 +365,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [NMDIA] = KEYMAP( // left hand - KC_NO ,KC_F9 ,KC_F7 ,KC_F5 ,KC_F3 ,KC_F1 ,KC_NO + KC_NO ,KC_F9 ,KC_F7 ,KC_F5 ,KC_F3 ,KC_F1 ,LGUI(KC_L) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO @@ -372,7 +375,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_NO ,KC_NO ,KC_TRNS // right hand - ,LGUI(KC_L),KC_F10 ,KC_F2 ,KC_F4 ,KC_F6 ,KC_F8 ,KC_NO + ,KC_TRNS ,KC_F10 ,KC_F2 ,KC_F4 ,KC_F6 ,KC_F8 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO @@ -611,6 +614,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) toggle_steno(record->event.pressed); break; + /* Fx */ + case Fx: + if (record->event.pressed) { + set_oneshot_mods (MOD_LALT); + layer_on (NMDIA); + set_oneshot_layer (NMDIA, ONESHOT_START); + } else { + clear_oneshot_layer_state (ONESHOT_PRESSED); + } + break; + /* GUI & AppSel */ case A_GUI: if (record->event.pressed) { @@ -770,7 +784,7 @@ static void ang_tap_dance_tmux_pane_select (qk_tap_dance_state_t *state, void *u if (state->count >= 2) { kc = KC_Z; } - + register_code(KC_LALT); register_code(KC_SPC); unregister_code(KC_SPC); @@ -780,6 +794,56 @@ static void ang_tap_dance_tmux_pane_select (qk_tap_dance_state_t *state, void *u unregister_code(kc); } +static void +_td_sr_each (qk_tap_dance_state_t *state, void *user_data) { + skip_leds = true; + + switch (state->count) { + case 1: + ergodox_right_led_3_on (); + break; + case 2: + ergodox_right_led_2_on (); + break; + case 3: + ergodox_right_led_1_on (); + break; + case 4: + ergodox_right_led_3_off (); + wait_ms (50); + ergodox_right_led_2_off (); + wait_ms (50); + ergodox_right_led_1_off (); + break; + } +} + +static void +_td_sr_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_MSTP); + } + if (state->count >= 4) { + uprintf("CMD:reflash\n"); + wait_ms (1000); + reset_keyboard (); + reset_tap_dance (state); + } +} + +static void +_td_sr_reset (qk_tap_dance_state_t *state, void *user_data) { + ergodox_right_led_1_off (); + wait_ms (50); + ergodox_right_led_2_off (); + wait_ms (50); + ergodox_right_led_3_off (); + + if (state->count == 1) { + unregister_code (KC_MSTP); + } +} + qk_tap_dance_action_t tap_dance_actions[] = { [CT_CLN] = ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN) ,[CT_TA] = { @@ -790,77 +854,75 @@ qk_tap_dance_action_t tap_dance_actions[] = { ,[CT_RBP] = ACTION_TAP_DANCE_DOUBLE (KC_RBRC, KC_RPRN) ,[CT_TMUX]= ACTION_TAP_DANCE_FN (ang_tap_dance_tmux_finished) ,[CT_TPS] = ACTION_TAP_DANCE_FN (ang_tap_dance_tmux_pane_select) + ,[CT_SR] = ACTION_TAP_DANCE_FN_ADVANCED (_td_sr_each, _td_sr_finished, _td_sr_reset) }; // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - static uint32_t prev_layer_state; uint8_t layer = biton32(layer_state); bool is_arrow = false; - static char *layer_lookup[] = {"Dvorak", "ADORE", "Arrows", "AppSel", "Hungarian", "Nav/Media", "Plover"}; - - if (layer_state != prev_layer_state) { - prev_layer_state = layer_state; - if (layer_lookup[layer]) - uprintf("LAYER: %s\n", layer_lookup[layer]); - } - if (gui_timer && timer_elapsed (gui_time |