1
0
Fork 0
This commit is contained in:
Christopher Browne 2016-06-28 14:46:50 -04:00
commit c9f509f016
12 changed files with 308 additions and 182 deletions

View file

@ -154,7 +154,8 @@
}, },
"S\n\n\n\n<i class=\"fa fa-caret-left\" aria-hidden=\"true\"></i>", "S\n\n\n\n<i class=\"fa fa-caret-left\" aria-hidden=\"true\"></i>",
{ {
"x": 1 "x": 1,
"c": "#c4bcbc"
}, },
"F\n\n\n\n<i class=\"fa fa-caret-right\" aria-hidden=\"true\"></i>", "F\n\n\n\n<i class=\"fa fa-caret-right\" aria-hidden=\"true\"></i>",
{ {
@ -162,7 +163,8 @@
}, },
"J", "J",
{ {
"x": 1 "x": 1,
"c": "#cccccc"
}, },
"L" "L"
], ],
@ -223,7 +225,7 @@
"y": -0.75, "y": -0.75,
"x": 3.5 "x": 3.5
}, },
"C", "C\n\n\n\n<i class=\"fa fa-hand-o-up\" aria-hidden=\"true\"></i>",
{ {
"x": 10.5, "x": 10.5,
"a": 4 "a": 4
@ -236,11 +238,11 @@
"x": 2.5, "x": 2.5,
"a": 7 "a": 7
}, },
"X", "X\n\n\n\n<i class=\"fa fa-hand-o-left\" aria-hidden=\"true\"></i>",
{ {
"x": 1 "x": 1
}, },
"V", "V\n\n\n\n<i class=\"fa fa-hand-o-right\" aria-hidden=\"true\"></i>",
{ {
"x": 8.5 "x": 8.5
}, },
@ -286,7 +288,7 @@
"x": 3.5, "x": 3.5,
"a": 7 "a": 7
}, },
"Alt\n\n\n\n<i class=\"fa fa-hand-o-left\" aria-hidden=\"true\"></i>", "Alt\n\n\n\n<i class=\"fa fa-search-minus\" aria-hidden=\"true\"></i>",
{ {
"x": 10.5 "x": 10.5
}, },
@ -297,15 +299,15 @@
"y": -0.875, "y": -0.875,
"x": 2.5 "x": 2.5
}, },
"<i class='fa fa-linux'></i>", "<i class='fa fa-linux'></i>\n\n\n\n<i class=\"fa fa-search\" aria-hidden=\"true\"></i>",
{ {
"x": 1 "x": 1
}, },
"Alt\n\n\n\n<i class=\"fa fa-hand-o-right\" aria-hidden=\"true\"></i>", "Alt\n\n\n\n<i class=\"fa fa-search-plus\" aria-hidden=\"true\"></i>",
{ {
"x": 8.5 "x": 8.5
}, },
"<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>", "<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>\n\n\n\n<i class=\"fa fa-undo\" aria-hidden=\"true\"></i>",
{ {
"x": 1 "x": 1
}, },

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View file

@ -8,6 +8,15 @@
#define CAPS_CTL CTL_T(KC_CAPS) // Caps on tap, Ctrl on hold. #define CAPS_CTL CTL_T(KC_CAPS) // Caps on tap, Ctrl on hold.
#define COPY LCTL(KC_V) // C-c Copy #define COPY LCTL(KC_V) // C-c Copy
#define PASTE LCTL(KC_V) // C-v Paste #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] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer /* 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_. // If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_* // Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default [BASE] = KEYMAP( // layer 0 : default
// left hand // Left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, 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, 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, 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, COPY, KC_LCBR,
KC_LPRN, KC_LPRN,
KC_SPC, KC_DEL, KC_LBRC, 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_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_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, 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| |------| |------| | | | | | | * | | |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 Layer
[FN1] = KEYMAP( [FN1] = KEYMAP(
// Left hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, 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_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_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_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, ZM_NRM, ZM_OUT, ZM_IN,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
RESET, 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_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_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_MPLY,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(_MOB), KC_TRNS, M(_CUS1),M(_CUS2),KC_TRNS, KC_TRNS,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE, 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
@ -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 // MACRODOWN only works in this function
switch(id) { switch(id) {
case 0: case _MOB: // Your mobile# here.
if (record->event.pressed) { return MACRODOWN(T(1), T(2), T(3), T(MINS),
register_code(KC_RSFT); T(1), T(2), T(3), T(MINS),
} else { T(1), T(2), T(3), T(4),
unregister_code(KC_RSFT); END);
} case _CUS1: // Your custom macro 1
break; 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; return MACRO_NONE;
}; };

View file

@ -4,60 +4,122 @@
"author": "Anand Babu Periasamy" "author": "Anand Babu Periasamy"
}, },
[ [
"1\nF1\n!\n\n\n\n\n\n\nTab", {
"2\nF2\n@\n\n\n\n\n\n\nQ", "fa": [
"3\nF3\n#\n\n\n\n\n\n\nW", 2,
"4\nF4\n$\n\n\n\n\n\n\nE", 2,
"5\nF5\n%\n\n\n\n\n\n\nR", 0,
"6\nF6\n^\n\n\n\n\n\n\nT", 2
"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", "F1\n1\n\n!\n\n\n\n\n\nTab",
"0\nF10\n)\n\n\n\n\n\n\nO", "F2\n2\n\n@\n\n\n\n\n\nQ",
"-\nF11\n_\n\n\n\n\n\n\nP", "F3\n3\n\n#\n\n\n\n\n\nW",
"=\nF12\n+\n\n\n\n\n\n\n<i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i>" "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<i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i>"
], ],
[ [
{ {
"a": 7 "a": 7,
"f": 3
}, },
"Ctrl", "Ctrl",
{
"f": 3
},
"A", "A",
{
"f": 3
},
"S", "S",
{
"f": 3
},
"D", "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\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",
{ {
"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", "K",
{
"f": 3
},
"L", "L",
{ {
"a": 6 "a": 6,
"f": 3
}, },
";\n\n:", ";\n\n:",
{ {
"a": 7 "a": 7,
"f": 3
}, },
"Enter" "Enter"
], ],
[ [
{
"f": 3
},
"Shift", "Shift",
{
"f": 3
},
"Z", "Z",
{
"f": 3
},
"X", "X",
{
"f": 3
},
"C", "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\nV",
"]\n~\n\n\n\n\n\n\n\nB", "|\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\nN",
"\"\n|\n\n\n\n\n\n\n\nM", "~\n\"\n\n\n\n\n\n\n\nM",
{ {
"a": 6 "a": 6
}, },
@ -71,31 +133,53 @@
], ],
[ [
{ {
"a": 4 "a": 4,
"fa": [
2,
2
]
}, },
"<i class='fa fa-lightbulb-o'></i>\n<i class='fa fa-download'></i>\n\n\n\n\n\n\n\nCtrl", "<i class='fa fa-download'></i>\n<i class='fa fa-lightbulb-o'></i>\n\n\n\n\n\n\n\nCtrl",
"\n<i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n\n\n\n\n\n\n\nEsc",
"\n<i class=\"fa fa-search-minus\" aria-hidden=\"true\"></i>\n\n\n\n\n\n\n\n<i class='fa fa-linux'></i>",
"\n<i class=\"fa fa-search-plus\" aria-hidden=\"true\"></i>\n\n\n\n\n\n\n\nAlt",
{ {
"a": 7 "a": 7,
"f": 3
},
"<i class='fa fa-sort-down'></i>",
{
"a": 4,
"fa": [
1,
1
],
"w": 2
},
"PgUp\nPgDn\n\n\n\n\n\n\n\nSpace",
{
"a": 7,
"f": 3
}, },
"Esc",
"<i class='fa fa-linux'></i>",
"Alt",
"<i class='fa fa-sort-up'></i>", "<i class='fa fa-sort-up'></i>",
{ {
"a": 4, "a": 4,
"w": 2 "fa": [
2
]
}, },
"\nPgUP\n\nPgDn\n\n\n\n\n\nSpace", "<i class=\"fa fa-undo\" aria-hidden=\"true\"></i>\n\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>",
{ {
"a": 7 "f": 3
}, },
"<i class='fa fa-sort-down'></i>", "<i class='fa fa-volume-down'></i>\n\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-down\" aria-hidden=\"true\"></i>",
"<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>",
{ {
"a": 4 "f": 3
}, },
"\n<i class='fa fa-volume-down'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-up\" aria-hidden=\"true\"></i>", "<i class='fa fa-volume-up'></i>\n\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-up\" aria-hidden=\"true\"></i>",
"\n<i class='fa fa-volume-up'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-down\" aria-hidden=\"true\"></i>", {
"\n<i class='fa fa-volume-off'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-right\" aria-hidden=\"true\"></i>" "f": 3
},
"<i class='fa fa-volume-off'></i>\n\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-right\" aria-hidden=\"true\"></i>"
] ]
] ]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -12,59 +12,74 @@ extern keymap_config_t keymap_config;
// Symbolic names for macro IDs. // Symbolic names for macro IDs.
#define _QWERTY 0 // QUERTY layer #define _QWERTY 0 // QUERTY layer
#define _RAISE 1 // Raise layer #define _LOWER 1 // Lower layer
#define _LOWER 2 // Lower layer #define _RAISE 2 // Raise layer
#define _CUSTOM 3 // Custom layer #define _CUSTOM 3 // Custom layer (LOWER + RAISE)
#define _BL 4 // Backlight #define _BL 4 // Backlight
#define _MOBILE 5 // Mobile# #define _MOB 5 // Mobile#
#define _CUSTOM1 6 // Custom macro 1 #define _CUS1 6 // Custom macro 1
#define _CUSTOM2 7 // Custom macro 2 #define _CUS2 7 // Custom macro 2
// Macro shortcuts. // Macro shortcuts.
#define RAISE M(_RAISE) #define QWERTY M(_LOWER)
#define LOWER 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 BL M(_BL)
#define MOBILE M(_MOBILE) #define MOB M(_MOB)
#define CUSTOM1 M(_CUSTOM1) #define CUS1 M(_CUS1)
#define CUSTOM2 M(_CUSTOM2) #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 // This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = { /* QWERTY */ [_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_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_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_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, RAISE, KC_SPC, KC_SPC, LOWER, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT} {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_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_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}, {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_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_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}, {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_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} {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 */ [_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, 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} {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. // Set a layer persistantly.
void persistant_default_layer_set(uint16_t default_layer) { void persistant_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(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) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{ {
switch(id) { 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. case _RAISE: // Raised layer.
if (record->event.pressed) { if (record->event.pressed) {
layer_on(_RAISE); 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); update_tri_layer(_LOWER, _RAISE, _CUSTOM);
} }
break; break;
case _BL:// Backlight case _BL: // Backlight
if (record->event.pressed) { if (record->event.pressed) {
register_code(KC_RSFT); register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE #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); unregister_code(KC_RSFT);
} }
break; break;
case _MOBILE:// Your mobile# here. case _MOB: // Your mobile# here.
return MACRODOWN(T(1), T(2), T(3), T(MINS), 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(MINS),
T(1), T(2), T(3), T(4), T(1), T(2), T(3), T(4),
END); 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); 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 MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END);
}; };
return MACRO_NONE; return MACRO_NONE;

View file

@ -22,16 +22,16 @@ extern keymap_config_t keymap_config;
#define _PLOVER 5 #define _PLOVER 5
#define _ADJUST 16 #define _ADJUST 16
// Macro name shortcuts enum planck_keycodes {
#define QWERTY M(_QWERTY) QWERTY = SAFE_RANGE,
#define COLEMAK M(_COLEMAK) COLEMAK,
#define DVORAK M(_DVORAK) DVORAK,
#define LOWER M(_LOWER) PLOVER,
#define RAISE M(_RAISE) LOWER,
#define M_BL 5 RAISE,
#define PLOVER M(12) BACKLIT,
#define EXT_PLV M(13) EXT_PLV
#define TOG_OUT M(14) };
// Fillers to make layering more clear // Fillers to make layering more clear
#define _______ KC_TRNS #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_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_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 }, {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 /* 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_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_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 }, {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 /* 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_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_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 }, {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 /* Lower
@ -144,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_PLOVER] = { [_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 }, {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}, {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} {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 #ifdef AUDIO_ENABLE
@ -192,10 +188,9 @@ void persistant_default_layer_set(uint16_t default_layer) {
default_layer_set(default_layer); default_layer_set(default_layer);
} }
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) bool process_record_user(uint16_t keycode, keyrecord_t *record) {
{ switch (keycode) {
switch(id) { case QWERTY:
case _QWERTY:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_qwerty, false, 0); 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); persistant_default_layer_set(1UL<<_QWERTY);
} }
break; break;
case _COLEMAK: return false;
case COLEMAK:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_colemak, false, 0); 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); persistant_default_layer_set(1UL<<_COLEMAK);
} }
break; break;
case _DVORAK: return false;
case DVORAK:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_dvorak, false, 0); 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); persistant_default_layer_set(1UL<<_DVORAK);
} }
break; break;
case _LOWER: return false;
case LOWER:
if (record->event.pressed) { if (record->event.pressed) {
layer_on(_LOWER); layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST); 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); update_tri_layer(_LOWER, _RAISE, _ADJUST);
} }
break; break;
case _RAISE: return false;
case RAISE:
if (record->event.pressed) { if (record->event.pressed) {
layer_on(_RAISE); layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST); 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); update_tri_layer(_LOWER, _RAISE, _ADJUST);
} }
break; break;
case M_BL: return false;
case BACKLIT:
if (record->event.pressed) { if (record->event.pressed) {
register_code(KC_RSFT); register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
@ -246,8 +246,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
} else { } else {
unregister_code(KC_RSFT); unregister_code(KC_RSFT);
} }
break; break;
case 12: return false;
case PLOVER:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
stop_all_notes(); 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; keymap_config.nkro = 1;
eeconfig_update_keymap(keymap_config.raw); eeconfig_update_keymap(keymap_config.raw);
} }
break; break;
case 13: return false;
case EXT_PLV:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);
#endif #endif
layer_off(_PLOVER); layer_off(_PLOVER);
} }
break; break;
case 14: return false;
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;
} }
return MACRO_NONE; return true;
}; }
void matrix_init_user(void) { void matrix_init_user(void) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE

View file

@ -16,13 +16,14 @@
#define _RAISE 4 #define _RAISE 4
#define _ADJUST 16 #define _ADJUST 16
// Macro name shortcuts enum preonic_keycodes {
#define QWERTY M(_QWERTY) QWERTY = SAFE_RANGE,
#define COLEMAK M(_COLEMAK) COLEMAK,
#define DVORAK M(_DVORAK) DVORAK,
#define LOWER M(_LOWER) LOWER,
#define RAISE M(_RAISE) RAISE,
#define M_BL 5 BACKLIT
};
// Fillers to make layering more clear // Fillers to make layering more clear
#define _______ KC_TRNS #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_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_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 }, {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 /* 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_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_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 }, {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 /* 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_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_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 }, {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 /* Lower
@ -157,10 +158,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
} }
};
const uint16_t PROGMEM fn_actions[] = {
}; };
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
@ -185,10 +182,9 @@ void persistant_default_layer_set(uint16_t default_layer) {
default_layer_set(default_layer); default_layer_set(default_layer);
} }
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) bool process_record_user(uint16_t keycode, keyrecord_t *record) {
{ switch (keycode) {
switch(id) { case QWERTY:
case _QWERTY:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_qwerty, false, 0); 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); persistant_default_layer_set(1UL<<_QWERTY);
} }
break; break;
case _COLEMAK: return false;
case COLEMAK:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_colemak, false, 0); 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); persistant_default_layer_set(1UL<<_COLEMAK);
} }
break; break;
case _DVORAK: return false;
case DVORAK:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_NOTE_ARRAY(tone_dvorak, false, 0); 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); persistant_default_layer_set(1UL<<_DVORAK);
} }
break; break;
case _LOWER: return false;
case LOWER:
if (record->event.pressed) { if (record->event.pressed) {
layer_on(_LOWER); layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST); 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); update_tri_layer(_LOWER, _RAISE, _ADJUST);
} }
break; break;
case _RAISE: return false;
case RAISE:
if (record->event.pressed) { if (record->event.pressed) {
layer_on(_RAISE); layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST); 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); update_tri_layer(_LOWER, _RAISE, _ADJUST);
} }
break; break;
case M_BL: return false;
case BACKLIT:
if (record->event.pressed) { if (record->event.pressed) {
register_code(KC_RSFT); register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
@ -239,9 +240,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
} else { } else {
unregister_code(KC_RSFT); unregister_code(KC_RSFT);
} }
break; break;
return false;
} }
return MACRO_NONE; return true;
}; };
void matrix_init_user(void) { void matrix_init_user(void) {

View file

@ -141,6 +141,10 @@ action_t action_for_key(uint8_t layer, keypos_t key)
return action; return action;
} }
__attribute__ ((weak))
const uint16_t PROGMEM fn_actions[] = {
};
/* Macro */ /* Macro */
__attribute__ ((weak)) __attribute__ ((weak))

View file

@ -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. 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. 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! 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 ### Mac
If you're using [homebrew,](http://brew.sh/) you can use the following commands: If you're using [homebrew,](http://brew.sh/) you can use the following commands:

View file

@ -2,12 +2,12 @@
@ECHO OFF @ECHO OFF
SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe
CD UTIL DEL script1.log > NUL 2>&1
DEL add-paths.log > NUL 2>&1 DEL add-paths.log > NUL 2>&1
DEL add-paths-detail.log > NUL 2>&1 DEL add-paths-detail.log > NUL 2>&1
DEL UPDATE > 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 ( IF ERRORLEVEL 1 (
ECHO You denied admin access. Rerun the script, and be sure to press the yes button this time. 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 :KillExplorer
ECHO.
ECHO.
ECHO Your desktop will be restarted. 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 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 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 PAUSE
ping -n 5 127.0.0.1 > NUL 2>&1 ping -n 5 127.0.0.1 > NUL 2>&1
ECHO Killing process Explorer.exe. . . ECHO Killing process Explorer.exe. . .
@ -57,5 +62,5 @@ ECHO Your desktop is now loading. . .
ECHO. ECHO.
ping -n 5 127.0.0.1 > NUL 2>&1 ping -n 5 127.0.0.1 > NUL 2>&1
START explorer.exe START explorer.exe
START explorer.exe %CD%\.. START explorer.exe %CD%
EXIT /b EXIT /b

View file

@ -1,46 +1,55 @@
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@ECHO OFF @ECHO OFF
CD %~dp0
SET STARTINGDIR=%CD% SET STARTINGDIR=%CD%
echo %STARTINGDIR%
:: Check for admin privilages :: Check for admin privilages
SETX /M test test > nul 2>&1 SETX /M test test > nul 2>&1
IF NOT ["%ERRORLEVEL%"]==["0"] ( IF NOT ["%ERRORLEVEL%"]==["0"] (
ECHO FAILED. Rerun with administrator privileges. ELEVATE -wait 2-setup-environment-win.bat & goto :EOF
GOTO ExitBatch
) )
DEL %STARTINGDIR%\environment-setup.log
:: Make sure path to MinGW exists - if so, CD to it :: Make sure path to MinGW exists - if so, CD to it
SET MINGWPATH="C:\MinGW\bin" 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% CD /D %MINGWPATH%
ECHO.
ECHO ------------------------------------------ ECHO ------------------------------------------
ECHO Installing wget and unzip ECHO Installing wget and unzip
ECHO ------------------------------------------ ECHO ------------------------------------------
mingw-get install msys-wget-bin msys-unzip-bin ECHO.
mingw-get install msys-wget-bin msys-unzip-bin
MKDIR temp MKDIR temp
CD temp CD temp
ECHO.
ECHO ------------------------------------------ ECHO ------------------------------------------
ECHO Installing dfu-programmer. ECHO Installing dfu-programmer.
ECHO ------------------------------------------ ECHO ------------------------------------------
wget http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip ECHO.
unzip dfu-programmer-win-0.7.2.zip wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip' >> %STARTINGDIR%\environment-setup.log
COPY dfu-programmer.exe .. unzip -o dfu-programmer-win-0.7.2.zip >> %STARTINGDIR%\environment-setup.log
COPY dfu-programmer.exe .. >> %STARTINGDIR%\environment-setup.log
ECHO ------------------------------------------ ECHO ------------------------------------------
ECHO Downloading driver ECHO Downloading driver
ECHO ------------------------------------------ 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 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 libusb-win32-bin-1.2.6.0.zip 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 COPY libusb-win32-bin-1.2.6.0\bin\x86\libusb0_x86.dll ../libusb0.dll >> %STARTINGDIR%\environment-setup.log
ECHO.
ECHO ------------------------------------------ ECHO ------------------------------------------
ECHO Installing driver. Accept prompt. ECHO Installing driver. Accept prompt.
ECHO ------------------------------------------ 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%\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) IF EXIST "%WinDir%\Sysnative\PnPUtil.exe" (%WinDir%\Sysnative\PnPUtil.exe -i -a dfu-prog-usb-1.2.2\atmel_usb_dfu.inf && GOTO PNPUTILFOUND)