Created
April 18, 2016 21:39
-
-
Save jtmchorse/926bb1fa2620bda8ac6e6e09b9230f14 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is the canonical layout file for the Quantum project. If you want to add another keyboard, | |
// this is the style you want to emulate. | |
#include "timer.h" | |
#include "planck.h" | |
#ifdef BACKLIGHT_ENABLE | |
#include "backlight.h" | |
#endif | |
static uint16_t mute_time; | |
static uint8_t mute; | |
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | |
// Layer names don't all need to be of the same length, obviously, and you can also skip them | |
// entirely and just use numbers. | |
#define _QW 0 | |
#define _LW 1 | |
#define _RS 2 | |
#define _fn 3 | |
#define _fn2 4 | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
/* GRID Layout (QWERTY layer) | |
* | |
* ,--------------------------------------------------------------------------. | |
* | esc | q | w | e | r | t | y | u | i | o | p | bspc| | |
* |--------------------------------------------------------------------------| | |
* | tab/fn | a | s | d | f | g | h | j | k | l | ; | ' | | |
* |--------------------------------------------------------------------------| | |
* |shift| z | x | c | v | b | n | m | , | . | / |enter| | |
* |--------------------------------------------------------------------------| | |
* | fn | ctl | alt | ⌘ | lower | spc | spc |raise| ⌘ | alt | ctrl | ▷ ❙❙ | | |
* `-------------------------------------------------------------------------' | |
*/ | |
[_QW] = { /* Qwerty */ | |
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | |
{LT(_fn, KC_TAB), 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 }, | |
{MO(_fn2), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_RGUI, KC_RALT, KC_RCTL, KC_MPLY} | |
}, | |
/* GRID Layout (Raised layer) | |
* | |
* ,-----------------------------------------------------------------------. | |
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | del | | |
* |-----------------------------------------------------------------------| | |
* | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | \ | | |
* |-----------------------------------------------------------------------| | |
* | | F7 | F8 | F9 | F10 | F11 | F12 | | , | . | rst | | | |
* |-----------------------------------------------------------------------| | |
* | | | | | | | | | nxt | vol- | vol+ | ▷ | | |
* `-----------------------------------------------------------------------' | |
*/ | |
[_RS] = { /* RAISE */ | |
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, | |
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, | |
{KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_COMM, KC_DOT, RESET, 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} | |
}, | |
[_LW] = { /* LOWER */ | |
/* GRID Layout (Lowered layer) | |
*TODO | |
* ,-----------------------------------------------------------------------. | |
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | |
* |-----------------------------------------------------------------------| | |
* | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | | | | |
* |-----------------------------------------------------------------------| | |
* | | F7 | F8 | F9 | F10 | F11 | F12 | | , | . | | | | |
* |-----------------------------------------------------------------------| | |
* | | | | | | | | |nxt | vol- | vol+ | ▷ | | |
* `-----------------------------------------------------------------------' | |
*/ | |
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, | |
{KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, | |
{KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_COMM, KC_DOT, KC_NO, KC_NO}, | |
{KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY} | |
}, | |
[_fn] = { /* Special */ | |
/* GRID Layout (FN layer) | |
*TODO | |
* ,------------------------------------------------------------------------. | |
* | fn0 | ⌘ ⬆ | ⌘ ⬇ | | | | | | ▲ | | | del | | |
* |------------------------------------------------------------------------| | |
* | |⌘PGUP|⌘PGDN| pgup | | | | ◀ | ▼ | ▶ | | | | |
* |------------------------------------------------------------------------| | |
* | | | | pgdn | | | | | | | | | | |
* |-------------------------------------------------------------------------| | |
* | | | | | F18 | fn1 | fn2 | |nxt | vol- | vol+ | ▷ | | |
* `------------------------------------------------------------------------' | |
*/ | |
{KC_TRNS, LGUI(KC_UP), LGUI(KC_DOWN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL}, | |
{KC_TRNS, LGUI(KC_PGUP),LGUI(KC_PGDN), KC_PGUP, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_NO}, | |
{KC_NO, KC_NO, KC_NO, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, | |
{KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_F18, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY} | |
}, | |
[_fn2] = { /* Special */ | |
/* GRID Layout (FN layer) | |
*TODO | |
* ,------------------------------------------------------------------------. | |
* | fn0 | ⌘ ⬆ | ⌘ ⬇ | | | | | | ▲ | | | del | | |
* |------------------------------------------------------------------------| | |
* | |⌘PGUP|⌘PGDN| pgup | | | | ◀ | ▼ | ▶ | | | | |
* |------------------------------------------------------------------------| | |
* | | | | pgdn | | | | | | | | | | |
* |-------------------------------------------------------------------------| | |
* | | | | | F18 | fn1 | fn2 | |nxt | vol- | vol+ | ▷ | | |
* `------------------------------------------------------------------------' | |
*/ | |
{M(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL}, | |
{KC_NO, KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_NO}, | |
{KC_NO, M(1), M(2), KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE}, | |
{KC_TRNS, HYPR(KC_LEFT),HYPR(KC_RIGHT),HYPR(KC_UP), KC_F18, KC_NO, KC_NO, KC_NO, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | |
}, | |
}; | |
const uint16_t PROGMEM fn_actions[] = { | |
}; | |
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. | |
{ | |
switch(id) { | |
case 0: // this would trigger when you hit a key mapped as M(0) | |
if (record->event.pressed) { | |
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); | |
} | |
break; | |
case 1:// this would trigger when you hit a key mapped as M(1) | |
if (record->event.pressed) { | |
register_code(KC_MUTE); | |
unregister_code(KC_MUTE); | |
mute = 1; | |
mute_time = timer_read(); | |
} | |
break; | |
case 2:// this would trigger when you hit a key mapped as M(2) | |
/* (: | :) */ | |
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); | |
break; | |
} | |
return MACRO_NONE; | |
}; | |
void matrix_scan_user(void) { | |
if (mute && timer_elapsed(mute_time) > 30000) { | |
register_code(KC_MUTE); | |
unregister_code(KC_MUTE); | |
mute = 0; | |
} | |
}; | |
//Keeping these here just in case | |
//make KEYMAP=jt | |
//sleep 5; make KEYMAP=jt dfu |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment