diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json index e9475fe9f1..e2badad4de 100644 --- a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json +++ b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json @@ -154,7 +154,8 @@ }, "S\n\n\n\n", { - "x": 1 + "x": 1, + "c": "#c4bcbc" }, "F\n\n\n\n", { @@ -162,7 +163,8 @@ }, "J", { - "x": 1 + "x": 1, + "c": "#cccccc" }, "L" ], @@ -223,7 +225,7 @@ "y": -0.75, "x": 3.5 }, - "C", + "C\n\n\n\n", { "x": 10.5, "a": 4 @@ -236,11 +238,11 @@ "x": 2.5, "a": 7 }, - "X", + "X\n\n\n\n", { "x": 1 }, - "V", + "V\n\n\n\n", { "x": 8.5 }, @@ -286,7 +288,7 @@ "x": 3.5, "a": 7 }, - "Alt\n\n\n\n", + "Alt\n\n\n\n", { "x": 10.5 }, @@ -297,15 +299,15 @@ "y": -0.875, "x": 2.5 }, - "", + "\n\n\n\n", { "x": 1 }, - "Alt\n\n\n\n", + "Alt\n\n\n\n", { "x": 8.5 }, - "", + "\n\n\n\n", { "x": 1 }, diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png index d3ed928f6e..740684461e 100644 Binary files a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png and b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/ergodox_ez/keymaps/ab/keymap.c b/keyboards/ergodox_ez/keymaps/ab/keymap.c index c3114d9ffd..df6f334600 100644 --- a/keyboards/ergodox_ez/keymaps/ab/keymap.c +++ b/keyboards/ergodox_ez/keymaps/ab/keymap.c @@ -8,6 +8,15 @@ #define CAPS_CTL CTL_T(KC_CAPS) // Caps on tap, Ctrl on hold. #define COPY LCTL(KC_V) // C-c Copy #define PASTE LCTL(KC_V) // C-v Paste +#define ZM_NRM LCTL(KC_0) // C-0 Zoom Normal +#define ZM_OUT LCTL(KC_MINS) // C-- Zoom Out +#define ZM_IN LCTL(KC_PLUS) // C-+ Zoom In +#define EM_UNDO LCTL(KC_UNDS) // C-_ Emacs Undo + +#define _MOB 1 // Mobile# +#define _CUS1 2 // Custom macro 1 +#define _CUS2 3 // Custom macro 2 + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer @@ -34,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default - // left hand + // Left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_WBAK, CAPS_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, @@ -43,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { COPY, KC_LCBR, KC_LPRN, KC_SPC, KC_DEL, KC_LBRC, - // right hand + // Right hand KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_WFWD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, @@ -61,9 +70,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | + * | | | LClk | MClk | RClk | | | | | | | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Teensy| | | Lclk | Rclk | | |VolDn |VolUp | Mute | | + * |Teensy| | ZmNrm| ZmOut| ZmIn | | Undo |VolDn |VolUp | Mute | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -75,20 +84,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // FN1 Layer [FN1] = KEYMAP( + // Left hand KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, ZM_NRM, ZM_OUT, ZM_IN, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, - // right hand + // Right hand KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, 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_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, + KC_TRNS, M(_MOB), KC_TRNS, M(_CUS1),M(_CUS2),KC_TRNS, KC_TRNS, + EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -102,14 +112,16 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } + case _MOB: // Your mobile# here. + return MACRODOWN(T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(4), + END); + case _CUS1: // Your custom macro 1 + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); + case _CUS2: // Your custom macro 2 + return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); + }; return MACRO_NONE; }; diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.json b/keyboards/planck/keymaps/ab/keyboard-layout.json index 6e33ec6bfd..4e631a3487 100644 --- a/keyboards/planck/keymaps/ab/keyboard-layout.json +++ b/keyboards/planck/keymaps/ab/keyboard-layout.json @@ -4,60 +4,122 @@ "author": "Anand Babu Periasamy" }, [ - "1\nF1\n!\n\n\n\n\n\n\nTab", - "2\nF2\n@\n\n\n\n\n\n\nQ", - "3\nF3\n#\n\n\n\n\n\n\nW", - "4\nF4\n$\n\n\n\n\n\n\nE", - "5\nF5\n%\n\n\n\n\n\n\nR", - "6\nF6\n^\n\n\n\n\n\n\nT", - "7\nF7\n&\n\n\n\n\n\n\nY", - "8\nF8\n*\n\n\n\n\n\n\nU", - "9\nF9\n(\n\n\n\n\n\n\nI", - "0\nF10\n)\n\n\n\n\n\n\nO", - "-\nF11\n_\n\n\n\n\n\n\nP", - "=\nF12\n+\n\n\n\n\n\n\n" + { + "fa": [ + 2, + 2, + 0, + 2 + ] + }, + "F1\n1\n\n!\n\n\n\n\n\nTab", + "F2\n2\n\n@\n\n\n\n\n\nQ", + "F3\n3\n\n#\n\n\n\n\n\nW", + "F4\n4\n\n$\n\n\n\n\n\nE", + "F5\n5\n\n%\n\n\n\n\n\nR", + "F6\n6\n\n^\n\n\n\n\n\nT", + "F7\n7\n\n&\n\n\n\n\n\nY", + "F8\n8\n\n*\n\n\n\n\n\nU", + "F9\n9\n\n(\n\n\n\n\n\nI", + "F10\n0\n\n)\n\n\n\n\n\nO", + "F11\n-\n\n_\n\n\n\n\n\nP", + "F12\n=\n\n+\n\n\n\n\n\n" ], [ { - "a": 7 + "a": 7, + "f": 3 }, "Ctrl", + { + "f": 3 + }, "A", + { + "f": 3 + }, "S", + { + "f": 3 + }, "D", { - "a": 4 + "c": "#c4bcbc", + "a": 4, + "f": 3 }, - "(\n\n\n\n\n\n\n\n\nF", - ")\n\n\n\n\n\n\n\n\nG", - "{\n\n\n\n\n\n\n\n\nH", - "}\n\n\n\n\n\n\n\n\nJ", + "\n(\n\n\n\n\n\n\n\nF", { - "a": 7 + "c": "#cccccc", + "f": 3 + }, + "\n)\n\n\n\n\n\n\n\nG", + { + "f": 3 + }, + "\n{\n\n\n\n\n\n\n\nH", + { + "c": "#c4bcbc", + "f": 3 + }, + "\n}\n\n\n\n\n\n\n\nJ", + { + "c": "#cccccc", + "a": 7, + "f": 3 }, "K", + { + "f": 3 + }, "L", { - "a": 6 + "a": 6, + "f": 3 }, ";\n\n:", { - "a": 7 + "a": 7, + "f": 3 }, "Enter" ], [ + { + "f": 3 + }, "Shift", + { + "f": 3 + }, "Z", + { + "f": 3 + }, "X", + { + "f": 3 + }, "C", { - "a": 4 + "a": 4, + "fa": [ + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2 + ] }, - "[\n`\n\n\n\n\n\n\n\nV", - "]\n~\n\n\n\n\n\n\n\nB", - "'\n\\\n\n\n\n\n\n\n\nN", - "\"\n|\n\n\n\n\n\n\n\nM", + "\\\n[\n\n\n\n\n\n\n\nV", + "|\n]\n\n\n\n\n\n\n\nB", + "`\n'\n\n\n\n\n\n\n\nN", + "~\n\"\n\n\n\n\n\n\n\nM", { "a": 6 }, @@ -71,31 +133,53 @@ ], [ { - "a": 4 + "a": 4, + "fa": [ + 2, + 2 + ] }, - "\n\n\n\n\n\n\n\n\nCtrl", + "\n\n\n\n\n\n\n\n\nCtrl", + "\n\n\n\n\n\n\n\n\nEsc", + "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\nAlt", { - "a": 7 + "a": 7, + "f": 3 + }, + "", + { + "a": 4, + "fa": [ + 1, + 1 + ], + "w": 2 + }, + "PgUp\nPgDn\n\n\n\n\n\n\n\nSpace", + { + "a": 7, + "f": 3 }, - "Esc", - "", - "Alt", "", { "a": 4, - "w": 2 + "fa": [ + 2 + ] }, - "\nPgUP\n\nPgDn\n\n\n\n\n\nSpace", + "\n\n\n\n\n\n\n\n\n", { - "a": 7 + "f": 3 }, - "", - "", + "\n\n\n\n\n\n\n\n\n", { - "a": 4 + "f": 3 }, - "\n\n\n\n\n\n\n\n\n", - "\n\n\n\n\n\n\n\n\n", - "\n\n\n\n\n\n\n\n\n" + "\n\n\n\n\n\n\n\n\n", + { + "f": 3 + }, + "\n\n\n\n\n\n\n\n\n" ] ] \ No newline at end of file diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.png b/keyboards/planck/keymaps/ab/keyboard-layout.png index 64bf0aa1c2..dcdbb726df 100644 Binary files a/keyboards/planck/keymaps/ab/keyboard-layout.png and b/keyboards/planck/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/planck/keymaps/ab/keymap.c b/keyboards/planck/keymaps/ab/keymap.c index 57f90ab576..8e1d28a65a 100644 --- a/keyboards/planck/keymaps/ab/keymap.c +++ b/keyboards/planck/keymaps/ab/keymap.c @@ -12,59 +12,74 @@ extern keymap_config_t keymap_config; // Symbolic names for macro IDs. #define _QWERTY 0 // QUERTY layer -#define _RAISE 1 // Raise layer -#define _LOWER 2 // Lower layer -#define _CUSTOM 3 // Custom layer +#define _LOWER 1 // Lower layer +#define _RAISE 2 // Raise layer +#define _CUSTOM 3 // Custom layer (LOWER + RAISE) #define _BL 4 // Backlight -#define _MOBILE 5 // Mobile# -#define _CUSTOM1 6 // Custom macro 1 -#define _CUSTOM2 7 // Custom macro 2 +#define _MOB 5 // Mobile# +#define _CUS1 6 // Custom macro 1 +#define _CUS2 7 // Custom macro 2 // Macro shortcuts. -#define RAISE M(_RAISE) +#define QWERTY M(_LOWER) #define LOWER M(_LOWER) -#define CUSTOM M(_CUSTOM) // RAISE + LOWER +#define RAISE M(_RAISE) +#define CUSTOM M(_CUSTOM) #define BL M(_BL) -#define MOBILE M(_MOBILE) -#define CUSTOM1 M(_CUSTOM1) -#define CUSTOM2 M(_CUSTOM2) +#define MOB M(_MOB) +#define CUS1 M(_CUS1) +#define CUS2 M(_CUS2) + +// Func macro definitions. +#define LWR_PGDN FUNC(0) // Tap for PgDn, hold for LOWER +#define RSE_PGUP FUNC(1) // Tap for PgUp, hold for RAISE +#define CTL_CAPS FUNC(2) // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK) +#define SFT_ENT FUNC(3) // Tap for Enter, hold for Shift +#define ZM_NRM FUNC(4) // Zoom normal +#define ZM_IN FUNC(5) // Zoom out +#define ZM_OUT FUNC(6) // Zoom in +#define EM_UNDO FUNC(7) // Emacs Undo + +// Enable these functions using FUNC(n) macro. +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), + [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), + [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), + [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), + [4] = ACTION_MODS_KEY(MOD_LCTL, KC_0), + [5] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), + [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PLUS), + [7] = ACTION_MODS_KEY(MOD_LCTL, KC_UNDS), + }; // This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = { /* QWERTY */ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, FUNC(3)}, - {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, RAISE, KC_SPC, KC_SPC, LOWER, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT} + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, + {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -[_RAISE] = { /* RAISE */ +[_LOWER] = { /* LOWER */ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {BL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + {BL, ZM_NRM, ZM_IN, ZM_OUT, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, -[_LOWER] = { /* LOWER */ +[_RAISE] = { /* RAISE */ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, - {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_PIPE, KC_GRV, KC_TILD, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, + {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE} }, [_CUSTOM] = { /* CUSTOM */ {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, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOBILE, KC_TRNS, CUSTOM1, CUSTOM2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOB, KC_TRNS, CUS1, CUS2, 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} } }; -// Enable these functions using FUNC(n) macro. They seem to be buggy mostly. -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), // Tap for PgUp, hold for RAISE - [1] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), // Tap for PgDn, hold for LOWER - [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), // Tap for Caps, hold for Ctrl - [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Tap for Enter, hold for Shift -}; - // Set a layer persistantly. void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); @@ -75,11 +90,6 @@ void persistant_default_layer_set(uint16_t default_layer) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { - case _QWERTY: // Default QWERTY layer. // This case not used for now. - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QWERTY); - } - break; case _RAISE: // Raised layer. if (record->event.pressed) { layer_on(_RAISE); @@ -98,7 +108,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _CUSTOM); } break; - case _BL:// Backlight + case _BL: // Backlight if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -108,14 +118,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case _MOBILE:// Your mobile# here. + case _MOB: // Your mobile# here. return MACRODOWN(T(1), T(2), T(3), T(MINS), T(1), T(2), T(3), T(MINS), T(1), T(2), T(3), T(4), END); - case _CUSTOM1:// Your custom macro 1 + case _CUS1: // Your custom macro 1 return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); - case _CUSTOM2:// Your custom macro 2 + case _CUS2: // Your custom macro 2 return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); }; return MACRO_NONE; diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 4bca1b5ac0..9b4b33f821 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -22,16 +22,16 @@ extern keymap_config_t keymap_config; #define _PLOVER 5 #define _ADJUST 16 -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 -#define PLOVER M(12) -#define EXT_PLV M(13) -#define TOG_OUT M(14) +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; // Fillers to make layering more clear #define _______ KC_TRNS @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -144,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_PLOVER] = { {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, - {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} }, @@ -167,10 +167,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } -}; - -const uint16_t PROGMEM fn_actions[] = { - }; #ifdef AUDIO_ENABLE @@ -192,10 +188,9 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); @@ -203,7 +198,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_QWERTY); } break; - case _COLEMAK: + return false; + case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); @@ -211,7 +207,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_COLEMAK); } break; - case _DVORAK: + return false; + case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); @@ -219,7 +216,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_DVORAK); } break; - case _LOWER: + return false; + case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -228,7 +226,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case _RAISE: + return false; + case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -237,7 +236,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case M_BL: + return false; + case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -246,8 +246,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } else { unregister_code(KC_RSFT); } - break; - case 12: + break; + return false; + case PLOVER: if (record->event.pressed) { #ifdef AUDIO_ENABLE stop_all_notes(); @@ -264,23 +265,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) keymap_config.nkro = 1; eeconfig_update_keymap(keymap_config.raw); } - break; - case 13: + break; + return false; + case EXT_PLV: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); #endif layer_off(_PLOVER); } - break; - case 14: - if (record->event.pressed) { - return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); - } - break; + break; + return false; } - return MACRO_NONE; -}; + return true; +} void matrix_init_user(void) { #ifdef AUDIO_ENABLE diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 4c967d73ed..6d8ef634dd 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -16,13 +16,14 @@ #define _RAISE 4 #define _ADJUST 16 -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 +enum preonic_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + BACKLIT +}; // Fillers to make layering more clear #define _______ KC_TRNS @@ -48,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -69,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -90,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -157,10 +158,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } -}; - -const uint16_t PROGMEM fn_actions[] = { - }; #ifdef AUDIO_ENABLE @@ -185,10 +182,9 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); @@ -196,7 +192,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_QWERTY); } break; - case _COLEMAK: + return false; + case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); @@ -204,7 +201,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_COLEMAK); } break; - case _DVORAK: + return false; + case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); @@ -212,7 +210,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_DVORAK); } break; - case _LOWER: + return false; + case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -221,7 +220,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case _RAISE: + return false; + case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -230,7 +230,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case M_BL: + return false; + case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -239,9 +240,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } else { unregister_code(KC_RSFT); } - break; + break; + return false; } - return MACRO_NONE; + return true; }; void matrix_init_user(void) { diff --git a/quantum/keymap.c b/quantum/keymap.c index 203a82d954..74fd518c9b 100644 --- a/quantum/keymap.c +++ b/quantum/keymap.c @@ -141,6 +141,10 @@ action_t action_for_key(uint8_t layer, keypos_t key) return action; } +__attribute__ ((weak)) +const uint16_t PROGMEM fn_actions[] = { + +}; /* Macro */ __attribute__ ((weak)) diff --git a/readme.md b/readme.md index ff75c0fe9e..a71c3035a3 100644 --- a/readme.md +++ b/readme.md @@ -51,7 +51,7 @@ Before you are able to compile, you'll need to install an environment for AVR de 4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. 5. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. 6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! -7. Future build commands should be run from the standard Windows command prompt, which you can find by searching for "command prompt" from the start menu or start screen. Ignore the "MHV AVR Shell". +7. Future build commands should be run from the MHV AVR Shell, which sets up an environment compatible with colorful build output. The standard Command Prompt will also work, but add `COLOR=false` to the end of all make commands when using it. ### Mac If you're using [homebrew,](http://brew.sh/) you can use the following commands: diff --git a/util/1-setup-path-win.bat b/util/1-setup-path-win.bat index 92e91be3e2..699aee2152 100644 --- a/util/1-setup-path-win.bat +++ b/util/1-setup-path-win.bat @@ -2,12 +2,12 @@ @ECHO OFF SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe -CD UTIL +DEL script1.log > NUL 2>&1 DEL add-paths.log > NUL 2>&1 DEL add-paths-detail.log > NUL 2>&1 DEL UPDATE > NUL 2>&1 -ELEVATE -wait %cd%\add-paths.bat > NUL 2>&1 +ELEVATE -wait add-paths.bat >> script1.log 2>&1 IF ERRORLEVEL 1 ( ECHO You denied admin access. Rerun the script, and be sure to press the yes button this time. @@ -44,9 +44,14 @@ EXIT /b :: ----------------------------------------------------------------------------- :KillExplorer +ECHO. +ECHO. ECHO Your desktop will be restarted. +ECHO. ECHO All file explorer windows except for the one you launched this script from WILL BE CLOSED. +ECHO. ECHO Press enter when ready, or close this window if you would rather do a full restart of your computer at a later time. +ECHO. PAUSE ping -n 5 127.0.0.1 > NUL 2>&1 ECHO Killing process Explorer.exe. . . @@ -57,5 +62,5 @@ ECHO Your desktop is now loading. . . ECHO. ping -n 5 127.0.0.1 > NUL 2>&1 START explorer.exe -START explorer.exe %CD%\.. +START explorer.exe %CD% EXIT /b \ No newline at end of file diff --git a/util/2-setup-environment-win.bat b/util/2-setup-environment-win.bat index 905338087a..3e54cc776c 100644 --- a/util/2-setup-environment-win.bat +++ b/util/2-setup-environment-win.bat @@ -1,46 +1,55 @@ @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION @ECHO OFF +CD %~dp0 + SET STARTINGDIR=%CD% +echo %STARTINGDIR% :: Check for admin privilages SETX /M test test > nul 2>&1 IF NOT ["%ERRORLEVEL%"]==["0"] ( - ECHO FAILED. Rerun with administrator privileges. - GOTO ExitBatch + ELEVATE -wait 2-setup-environment-win.bat & goto :EOF ) +DEL %STARTINGDIR%\environment-setup.log + :: Make sure path to MinGW exists - if so, CD to it SET MINGWPATH="C:\MinGW\bin" -IF NOT EXIST !MINGWPATH! (ECHO Path not found: %MINGWPATH% && GOTO ExitBatch) +IF NOT EXIST !MINGWPATH! (ECHO Path not found: %MINGWPATH%. Did you install MinGW to the default location? && GOTO ExitBatch) CD /D %MINGWPATH% - +ECHO. ECHO ------------------------------------------ ECHO Installing wget and unzip ECHO ------------------------------------------ -mingw-get install msys-wget-bin msys-unzip-bin +ECHO. +mingw-get install msys-wget-bin msys-unzip-bin MKDIR temp CD temp +ECHO. ECHO ------------------------------------------ ECHO Installing dfu-programmer. ECHO ------------------------------------------ -wget http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip -unzip dfu-programmer-win-0.7.2.zip -COPY dfu-programmer.exe .. +ECHO. +wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip' >> %STARTINGDIR%\environment-setup.log +unzip -o dfu-programmer-win-0.7.2.zip >> %STARTINGDIR%\environment-setup.log +COPY dfu-programmer.exe .. >> %STARTINGDIR%\environment-setup.log ECHO ------------------------------------------ ECHO Downloading driver ECHO ------------------------------------------ -wget http://iweb.dl.sourceforge.net/project/libusb-win32/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip -unzip libusb-win32-bin-1.2.6.0.zip -COPY libusb-win32-bin-1.2.6.0\bin\x86\libusb0_x86.dll ../libusb0.dll +wget http://downloads.sourceforge.net/project/libusb-win32/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip >> %STARTINGDIR%\environment-setup.log +unzip -o libusb-win32-bin-1.2.6.0.zip >> %STARTINGDIR%\environment-setup.log +COPY libusb-win32-bin-1.2.6.0\bin\x86\libusb0_x86.dll ../libusb0.dll >> %STARTINGDIR%\environment-setup.log +ECHO. ECHO ------------------------------------------ ECHO Installing driver. Accept prompt. ECHO ------------------------------------------ +ECHO. IF EXIST "%WinDir%\System32\PnPUtil.exe" (%WinDir%\System32\PnPUtil.exe -i -a dfu-prog-usb-1.2.2\atmel_usb_dfu.inf && GOTO PNPUTILFOUND) IF EXIST "%WinDir%\Sysnative\PnPUtil.exe" (%WinDir%\Sysnative\PnPUtil.exe -i -a dfu-prog-usb-1.2.2\atmel_usb_dfu.inf && GOTO PNPUTILFOUND)