From 93c1bfa646bd4d53c065df1a1a7e457d49df7e31 Mon Sep 17 00:00:00 2001 From: lucwastiaux Date: Fri, 27 Jan 2017 23:55:33 +0800 Subject: [PATCH 01/11] dual capslock functionality, activating shell nav or brackets --- .../keymaps/dvorak_programmer/keymap.c | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c index 7ed0c7f125..6757355c8c 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c +++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c @@ -35,7 +35,9 @@ #define SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND 15 #define SEMICOLON_NEWLINE 16 #define END_NEWLINE 17 +#define DUAL_CAPSLOCK 18 +static uint16_t capslock_timer; const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_TOGGLE(KEY_NAV), // FN1 - keynav layer @@ -59,8 +61,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = KEYMAP( // layer 0 : default // left hand KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - LT(SHELL_NAV,KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL), - OSL(BRACKETS), KC_A, KC_O, KC_E, KC_U, KC_I, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL), + M(DUAL_CAPSLOCK), KC_A, KC_O, KC_E, KC_U, KC_I, OSM(MOD_LSFT), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV), OSL(SHORTCUTS),KC_FN4, KC_FN5,OSL(SYMBOL),MO(NUMBER), // thumb cluster @@ -395,7 +397,22 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { return MACRO( T(END), T(ENTER), END); } - break; + break; + case DUAL_CAPSLOCK: + if (record->event.pressed) { + if(timer_elapsed(capslock_timer) < 100) { + // activate SHELL_NAV + layer_on(SHELL_NAV); + } else { + layer_on(BRACKETS); + } + } else { + layer_off(SHELL_NAV); + layer_off(BRACKETS); + capslock_timer = timer_read(); + } + break; + } return MACRO_NONE; From a1c53d0f9356fa711ed0ffaaf61b564c8521a761 Mon Sep 17 00:00:00 2001 From: lucwastiaux Date: Sat, 28 Jan 2017 09:42:55 +0800 Subject: [PATCH 02/11] documented dual mode capslock --- .../keymaps/dvorak_programmer/README.md | 4 ++- .../keymaps/dvorak_programmer/keymap.c | 26 ------------------- 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/README.md b/keyboards/ergodox/keymaps/dvorak_programmer/README.md index 54da74f7f2..09f30c04fc 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/README.md +++ b/keyboards/ergodox/keymaps/dvorak_programmer/README.md @@ -7,7 +7,6 @@ Layers ------ * BASE: this is where you type. -* SHELL_LAYER: this is a permanent layer which I use when I don't need the F keys and gives me bash shortcuts on the top row. * SHELL_NAV: hold down the Tab key to access shell/terminal navigation shorcuts such as forward/backward word, history, Ctrl+C, screen tab movement. * KEY_NAV: arrow key movement with backward/forward word support, and copy/paste. * KEY_SEL: same as above, but every movement shift-selects. @@ -20,6 +19,9 @@ Layers Updates ------- +2017/01/28: +* Made the capslock key a dual momentary layer activation for BRACKETS and SHELL_NAV. One keypress held down for BRACKETS, one keypress, released and then held down for SHELL_NAV + 2017/01/22: * Made brackets toggle an OSL on the left capslock * Added SHELL_LAYER diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c index 6757355c8c..dd87bcb2c9 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c +++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c @@ -6,7 +6,6 @@ #include "action_code.h" #define BASE 0 // default layer -#define SHELL_LAYER 1 #define SHELL_NAV 2 #define KEY_NAV 3 // key navigation layer #define KEY_SEL 4 // key selection layer @@ -84,31 +83,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// permanent shell layer - meant to be used while in a terminal. only the top keys are overriden -[SHELL_LAYER] = KEYMAP( - // left hand - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,LALT(KC_DOT),RCTL(KC_R),RCTL(KC_C), - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // bottom row - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // thumb cluster - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - RCTL(KC_W), LALT(KC_B),LALT(KC_F), KC_LEFT, KC_RIGHT, LALT(KC_D), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - // bottom row - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - // thumb cluster - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), // shell navigation layer [SHELL_NAV] = KEYMAP( From f6feee8167bcffdeed7e816effd1c095b056965e Mon Sep 17 00:00:00 2001 From: lucwastiaux Date: Sat, 28 Jan 2017 09:45:13 +0800 Subject: [PATCH 03/11] eliminate references to shell_layer --- keyboards/ergodox/keymaps/dvorak_programmer/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c index dd87bcb2c9..4a2ffcce44 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c +++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c @@ -250,7 +250,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MEH(KC_S), MEH(KC_T), MEH(KC_U), MEH(KC_V), MEH(KC_X), MEH(KC_6), MEH(KC_7), MEH(KC_8), - MEH(KC_9), TO(BASE), TO(SHELL_LAYER) + MEH(KC_9), MEH(KC_Y), MEH(KC_Z) ), From 467e2841784b31d9d7b010a6c2c357e43dd4d47d Mon Sep 17 00:00:00 2001 From: lucwastiaux Date: Wed, 1 Feb 2017 13:46:00 +0800 Subject: [PATCH 04/11] increase timeout for dual mode caps key --- keyboards/ergodox/keymaps/dvorak_programmer/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c index 4a2ffcce44..4594a7698e 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c +++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c @@ -374,7 +374,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case DUAL_CAPSLOCK: if (record->event.pressed) { - if(timer_elapsed(capslock_timer) < 100) { + if(timer_elapsed(capslock_timer) < 300) { // activate SHELL_NAV layer_on(SHELL_NAV); } else { From 420a032e8d0a7e0391b1899dcc2c7bd8f6c4ac45 Mon Sep 17 00:00:00 2001 From: luc wastiaux Date: Fri, 10 Feb 2017 21:44:27 +0800 Subject: [PATCH 05/11] made left shift an MO for SHELL_NAV --- .../keymaps/dvorak_programmer/Makefile | 2 +- .../keymaps/dvorak_programmer/README.md | 3 ++ .../keymaps/dvorak_programmer/keymap.c | 49 ++----------------- 3 files changed, 9 insertions(+), 45 deletions(-) diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/Makefile b/keyboards/ergodox/keymaps/dvorak_programmer/Makefile index 3c65e25e19..91b1ae597e 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/Makefile +++ b/keyboards/ergodox/keymaps/dvorak_programmer/Makefile @@ -4,5 +4,5 @@ SLEEP_LED_ENABLE=no FORCE_NKRO ?= yes DEBUG_ENABLE = no CONSOLE_ENABLE = no -TAP_DANCE_ENABLE = yes +TAP_DANCE_ENABLE = no MOUSEKEY_ENABLE = yes diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/README.md b/keyboards/ergodox/keymaps/dvorak_programmer/README.md index 09f30c04fc..42723ea170 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/README.md +++ b/keyboards/ergodox/keymaps/dvorak_programmer/README.md @@ -19,6 +19,9 @@ Layers Updates ------- +2017/02/10: +* Made left shift an MO for SHELL_NAV, and symbol+right shift CAPSLOCK + 2017/01/28: * Made the capslock key a dual momentary layer activation for BRACKETS and SHELL_NAV. One keypress held down for BRACKETS, one keypress, released and then held down for SHELL_NAV diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c index 4594a7698e..2fef048b5e 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c +++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c @@ -34,24 +34,6 @@ #define SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND 15 #define SEMICOLON_NEWLINE 16 #define END_NEWLINE 17 -#define DUAL_CAPSLOCK 18 - -static uint16_t capslock_timer; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(KEY_NAV), // FN1 - keynav layer - [2] = ACTION_LAYER_TAP_TOGGLE(NUMBER), // FN2 - number layer - [3] = ACTION_MODS_ONESHOT(MOD_LSFT), // FN3 - shift modifier / oneshot - [4] = ACTION_MODS_ONESHOT(MOD_LCTL), // FN4 - ctrl modifier / oneshot - [5] = ACTION_MODS_ONESHOT(MOD_LALT), // FN5 - alt modifier / oneshot -}; - -//Tap Dance Declarations -enum { - TD_SHIFT_CAPSLOCK = 0, - TD_BRK_LEFT = 1, - TD_BRK_RIGHT = 2 -}; @@ -61,9 +43,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL), - M(DUAL_CAPSLOCK), KC_A, KC_O, KC_E, KC_U, KC_I, - OSM(MOD_LSFT), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV), - OSL(SHORTCUTS),KC_FN4, KC_FN5,OSL(SYMBOL),MO(NUMBER), + MO(BRACKETS), KC_A, KC_O, KC_E, KC_U, KC_I, + MO(SHELL_NAV), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV), + OSL(SHORTCUTS),OSM(MOD_LCTL), OSM(MOD_LALT),OSL(SYMBOL),MO(NUMBER), // thumb cluster MO(MOUSE), RCTL(KC_S), RCTL(KC_DEL), @@ -72,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS, KC_PGUP, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, - KC_PGDN, KC_B, KC_M, KC_W, KC_V, KC_Z, TD(TD_SHIFT_CAPSLOCK), + KC_PGDN, KC_B, KC_M, KC_W, KC_V, KC_Z, OSM(MOD_LSFT), // lower keys - browser tab control RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), LALT(KC_LEFT), RCTL(KC_W), // thumb cluster @@ -246,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MEH(KC_F7), MEH(KC_F8), MEH(KC_F9), MEH(KC_F10), MEH(KC_F11), MEH(KC_F12), M(SWITCH_NDS), KC_TRNS, MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F), MEH(KC_G), MEH(KC_H), MEH(KC_I), MEH(KC_J), MEH(KC_K), MEH(KC_L), - KC_TRNS, MEH(KC_M), MEH(KC_N), MEH(KC_O), MEH(KC_P), MEH(KC_Q), MEH(KC_R), + KC_TRNS, MEH(KC_M), MEH(KC_N), MEH(KC_O), MEH(KC_P), MEH(KC_Q), KC_CAPSLOCK, MEH(KC_S), MEH(KC_T), MEH(KC_U), MEH(KC_V), MEH(KC_X), MEH(KC_6), MEH(KC_7), MEH(KC_8), @@ -372,20 +354,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO( T(END), T(ENTER), END); } break; - case DUAL_CAPSLOCK: - if (record->event.pressed) { - if(timer_elapsed(capslock_timer) < 300) { - // activate SHELL_NAV - layer_on(SHELL_NAV); - } else { - layer_on(BRACKETS); - } - } else { - layer_off(SHELL_NAV); - layer_off(BRACKETS); - capslock_timer = timer_read(); - } - break; } @@ -406,13 +374,6 @@ void led_set_user(uint8_t usb_led) { } } -qk_tap_dance_action_t tap_dance_actions[] = { - [TD_SHIFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPSLOCK), - [TD_BRK_LEFT] = ACTION_TAP_DANCE_DOUBLE (KC_LPRN, KC_LCBR), - [TD_BRK_RIGHT] = ACTION_TAP_DANCE_DOUBLE (KC_RPRN, KC_RCBR) - -}; - // Runs constantly in the background, in a loop. void matrix_scan_user(void) { From a773124537a09679e905e7497ab73fe2808fced1 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 12 Feb 2017 12:23:03 -0500 Subject: [PATCH 06/11] send travis stuff to gitter --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index 18ecde7e3c..6c26e41128 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,3 +30,10 @@ addons: - diffutils after_success: bash util/travis_compiled_push.sh +notifications: + webhooks: + urls: + - https://webhooks.gitter.im/e/cca31de3d44b9adb617b + on_success: change # options: [always|never|change] default: always + on_failure: always # options: [always|never|change] default: always + on_start: never # options: [always|never|change] default: always \ No newline at end of file From b6730285b4a8316765dad59fe3e9a383589694ab Mon Sep 17 00:00:00 2001 From: Stephen Tudor Date: Thu, 9 Feb 2017 15:37:23 -0500 Subject: [PATCH 07/11] Add smt keymap for tv44 (MiniVan) --- keyboards/tv44/keymaps/smt/Makefile | 21 ++ keyboards/tv44/keymaps/smt/config.h | 36 +++ .../keymaps/smt/keyboard-layout-minivan.png | Bin 0 -> 66567 bytes keyboards/tv44/keymaps/smt/keymap.c | 232 ++++++++++++++++++ keyboards/tv44/keymaps/smt/readme.md | 126 ++++++++++ 5 files changed, 415 insertions(+) create mode 100644 keyboards/tv44/keymaps/smt/Makefile create mode 100644 keyboards/tv44/keymaps/smt/config.h create mode 100644 keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png create mode 100644 keyboards/tv44/keymaps/smt/keymap.c create mode 100644 keyboards/tv44/keymaps/smt/readme.md diff --git a/keyboards/tv44/keymaps/smt/Makefile b/keyboards/tv44/keymaps/smt/Makefile new file mode 100644 index 0000000000..f4671a9d11 --- /dev/null +++ b/keyboards/tv44/keymaps/smt/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/tv44/keymaps/smt/config.h b/keyboards/tv44/keymaps/smt/config.h new file mode 100644 index 0000000000..f8f0a5078c --- /dev/null +++ b/keyboards/tv44/keymaps/smt/config.h @@ -0,0 +1,36 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/** + *TV44 keymap definition macro + */ +#define KEYMAP_TV44( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \ + K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \ + K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K40, K41, K42, K43, K44 \ +) { \ + { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \ + { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \ + { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \ + { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, KC_NO, K44 } \ +} + +/** + *TV45 keymap definition macro (arrows layout) + */ +#define KEYMAP_TV45( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \ + K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \ + K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K40, K41, K42, K43, K44, K45 \ +) { \ + { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \ + { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \ + { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \ + { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, K44, K45 } \ +} + +#endif diff --git a/keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png b/keyboards/tv44/keymaps/smt/keyboard-layout-minivan.png new file mode 100644 index 0000000000000000000000000000000000000000..2dca67fb6cdc71ae11d74f53639c91defb0420d0 GIT binary patch literal 66567 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 y{g*NEHe?%?6`X0lQevent.pressed) { + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + } + return true; +} diff --git a/keyboards/tv44/keymaps/smt/readme.md b/keyboards/tv44/keymaps/smt/readme.md new file mode 100644 index 0000000000..647eb8976b --- /dev/null +++ b/keyboards/tv44/keymaps/smt/readme.md @@ -0,0 +1,126 @@ +# smt's TV44 keymap + +This keymap is based on a combination of my Planck keymap and [jeebak's TV44 layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/tv44/keymaps/jeebak). I removed the macros and TouchCursor/MouseCursor layers, because I'm just not ready for that level of mind-mapping. + +I had been using something close to the default Minivan layout, but after spending a bit of time with the Planck and Preonic, I decided it would be better for me to try to standardize to some degree, where possible. + +Also, it's worth noting that my Minivan is one with the "arrows" layout, which has a 45th key, so I had to define a new KEYMAP_TV45 macro in config.h. In spite of this, the 45-key Minivan is still technically considered a "TV44" as far as I know. + +![smt's TV44 keymap](keyboard-layout-minivan.png) + +## Notable features (most of which can be found in my or jeebak's respective keymap file): + +1. **Shift/Enter** + + I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory. + + Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome! + +2. **Hyper/Tab** + + This key modifies with "Hyper" (see [Brett Terpstra's post](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) on this) when held, and outputs the code for Tab when tapped. On the Mac, I use KeyboardMaestro to remap my hyper-keys to do a lot of crazy things. + +3. **Ctrl/Escape** + + I set up another mod-tap, this time for the Escape key that would act as a Control modifier when held. + +4. **Alt/Backtick** + + I don't currently have LEDs on most of my keyboards, and I certainly don't want LED controls on the base layer of a 40%. + + So, why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for my use case, and it's consistent with where I place it in my Planck and Preonic keymaps. + + I also like Alt in that position, so it works well as yet another mod-tap key. + + +## Layers + +### Qwerty + +``` +,---------+------+------+------+------+------+------+------+------+------+------+---------. +|Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp | +|---------`------`------`------`------`------`------`------`------`------`------`---------| +| Ctrl/Esc | A | S | D | F | G | H | J | K | L | ; | ' | +|----------`------`------`------`------`------`------`------`------`------`------`--------| +| Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent| +|-----------`------`------`------`------`-----'-------`------`------`------`------`-------| +| Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | + `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' +``` + +### Colemak + +``` +,---------+------+------+------+------+------+------+------+------+------+------+---------. +|Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp | +|---------`------`------`------`------`------`------`------`------`------`------`---------| +| Ctrl/Esc | A | R | S | T | D | H | N | E | I | O | ' | +|----------`------`------`------`------`------`------`------`------`------`------`--------| +| Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent| +|-----------`------`------`------`------`-----'-------`------`------`------`------`-------| +| Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | + `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' +``` + +### Dvorak + +``` +,---------+------+------+------+------+------+------+------+------+------+------+---------. +|Hyper/Tab| ' | , | . | P | Y | F | G | C | R | L | Bksp | +|---------`------`------`------`------`------`------`------`------`------`------`---------| +| Ctrl/Esc | A | O | E | U | I | D | H | T | N | S | - | +|----------`------`------`------`------`------`------`------`------`------`------`--------| +| Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent| +|-----------`------`------`------`------`-----'-------`------`------`------`------`-------| +| Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | + `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' +``` + +### Lower + +This is where I put the number row, two numpad clusters, common arithmetic operators, and cursorkeys: Arrow cluster, Home/End, Page Up/Page Down. `0` and `$` are also placed on the left side for convenient access to beginning-of-line and end-of-line Vim commands. BRITE has been moved here from the base layer. + +``` +,---------+------+------+------+------+------+------+------+------+------+------+---------. +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | +|---------`------`------`------`------`------`------`------`------`------`------`---------| +| $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | . | PageUp | +|----------`------`------`------`------`------`------`------`------`------`------`--------| +| = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | Up |PageDn | +|-----------`------`------`------`------`-----'-------`------`------`------`------`-------| +| Brite | | | Home | End | | Left | Down | Right | + `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' +``` + +### Raise + +As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets helps me keep them straight. I've dropped basic media controls onto this layer as well. + +``` +,---------+------+------+------+------+------+------+------+------+------+------+---------. +| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | +|---------`------`------`------`------`------`------`------`------`------`------`---------| +| F1 | F2 | F3 | F4 | F5 | F6 | _ | ? | + | { | } | | | +|----------`------`------`------`------`------`------`------`------`------`------`--------| +| F7 | F8 | F9 | F10 | F11 | F12 | - | / | = | [ | ] | \ | +|-----------`------`------`------`------`-----'-------`------`------`------`------`-------| +| Brite | | | Play | Next | | Mute | Vol- | Vol+ | + `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' +``` + +### Adjust (Lower + Raise) + +Utility layer. There isn't much here; it's mainly for swapping the default keymap between Qwerty and Dvorak, or putting the keyboard into flash mode via the Reset key. + +``` +,---------+------+------+------+------+------+------+------+------+------+------+---------. +| | Reset| | | | | | | | | | Del | +|---------`------`------`------`------`------`------`------`------`------`------`---------| +| | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | +|----------`------`------`------`------`------`------`------`------`------`------`--------| +| | | | | | | | | | | | | +|-----------`------`------`------`------`-----'-------`------`------`------`------`-------| +| | | | | | | | | | + `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' +``` From 5f8535b356e66975e20f1a573ab104db75f8b33c Mon Sep 17 00:00:00 2001 From: luc wastiaux Date: Mon, 13 Feb 2017 07:16:01 +0800 Subject: [PATCH 08/11] change thumb cluster key to be shift --- keyboards/ergodox/keymaps/dvorak_programmer/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c index 2fef048b5e..ae4fd444d1 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c +++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c @@ -47,8 +47,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(SHELL_NAV), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV), OSL(SHORTCUTS),OSM(MOD_LCTL), OSM(MOD_LALT),OSL(SYMBOL),MO(NUMBER), // thumb cluster - MO(MOUSE), RCTL(KC_S), - RCTL(KC_DEL), + OSM(MOD_LSFT), RCTL(KC_S), + RCTL(KC_DEL), KC_BSPC,RCTL(KC_BSPC),KC_DEL, // right hand KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS, From 3bf6c43de779e0790b85eef4a78c9ecc17cd06dc Mon Sep 17 00:00:00 2001 From: luc wastiaux Date: Mon, 13 Feb 2017 07:46:07 +0800 Subject: [PATCH 09/11] updated readme --- keyboards/ergodox/keymaps/dvorak_programmer/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/README.md b/keyboards/ergodox/keymaps/dvorak_programmer/README.md index 42723ea170..36722469fe 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/README.md +++ b/keyboards/ergodox/keymaps/dvorak_programmer/README.md @@ -20,7 +20,7 @@ Updates ------- 2017/02/10: -* Made left shift an MO for SHELL_NAV, and symbol+right shift CAPSLOCK +* Made left shift an MO for SHELL_NAV, and symbol+right shift CAPSLOCK. Made all modifiers OSM. 2017/01/28: * Made the capslock key a dual momentary layer activation for BRACKETS and SHELL_NAV. One keypress held down for BRACKETS, one keypress, released and then held down for SHELL_NAV From 1e97f77278b757d740a800ae228c6202de0679b4 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 12 Feb 2017 20:01:04 -0500 Subject: [PATCH 10/11] update travis badge --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 71f7566672..21bb79a49d 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ # Quantum Mechanical Keyboard Firmware -[![Build Status](https://travis-ci.org/jackhumbert/qmk_firmware.svg?branch=master)](https://travis-ci.org/jackhumbert/qmk_firmware) [![Gitter](https://badges.gitter.im/qmk/qmk_firmware.svg)](https://gitter.im/qmk/qmk_firmware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/jackhumbert/qmk_firmware) [![Gitter](https://badges.gitter.im/qmk/qmk_firmware.svg)](https://gitter.im/qmk/qmk_firmware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). From 4010360912125c120904e2d5294963db2d4ded65 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 12 Feb 2017 23:58:44 -0500 Subject: [PATCH 11/11] adds planck/rev3 makefile so subproject is found --- keyboards/planck/rev3/Makefile | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 keyboards/planck/rev3/Makefile diff --git a/keyboards/planck/rev3/Makefile b/keyboards/planck/rev3/Makefile new file mode 100644 index 0000000000..191c6bb664 --- /dev/null +++ b/keyboards/planck/rev3/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif \ No newline at end of file