-
-
Save leque/150299c900f9af54dce8beeb97a48783 to your computer and use it in GitHub Desktop.
This file contains 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
#include QMK_KEYBOARD_H | |
extern keymap_config_t keymap_config; | |
// 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 _QWERTY 0 | |
#define _COLEMAK 1 | |
#define _DVORAK 2 | |
#define _LOWER 3 | |
#define _RAISE 4 | |
#define _ADJUST 16 | |
enum custom_keycodes { | |
QWERTY = SAFE_RANGE, | |
COLEMAK, | |
DVORAK, | |
LOWER, | |
RAISE, | |
ADJUST, | |
}; | |
#define LOWER MO(_LOWER) | |
#define RAISE MO(_RAISE) | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
/* Qwerty(US) | |
* ,-----------------------------------------. ,-----------------------------------------. | |
* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------| | |
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------| | |
* | Ctrl | A | S | D | F | G | | H | J | K | L | ; | " | | |
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------| | |
* | Shift| Z | X | C | V | B | ` | _ | N | M | , | . | / |Shift | | |
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------' | |
* | Alt | [ |Lower | Bksp | Esc |Enter |Space |Raise | ] | GUI | | |
* `---------------------------------------------------------------------' | |
*/ | |
[_QWERTY] = LAYOUT( \ | |
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ | |
KC_LCTL, 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_GRV, KC_RO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , \ | |
KC_LALT, KC_LBRC, LOWER, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, RAISE, KC_RBRC, KC_RGUI\ | |
), | |
/* Qwerty(JIS) | |
* ,-----------------------------------------. ,-----------------------------------------. | |
* | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------| | |
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------| | |
* | Ctrl | A | S | D | F | G | | H | J | K | L | ; | " | | |
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------| | |
* | Shift| Z | X | C | V | B | ` | _ | N | M | , | . | / |Shift | | |
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------' | |
* | Alt | [ |Lower | Bksp | Esc |Enter |Space |Raise | ] | GUI | | |
* `---------------------------------------------------------------------' | |
*/ | |
[_COLEMAK] = LAYOUT( \ | |
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \ | |
KC_LCTL, 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_GRV, KC_RO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , \ | |
KC_LALT, KC_RBRC, LOWER, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, RAISE, KC_BSLS, KC_RGUI\ | |
), | |
/* Dvorak | |
* ,-----------------------------------------. ,-----------------------------------------. | |
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------| | |
* | Tab | " | , | . | P | Y | | F | G | C | R | L | Bksp | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------| | |
* | Esc | A | O | E | U | I | | D | H | T | N | S | / | | |
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------| | |
* | Shift| ; | Q | J | K | X | [ | ] | B | M | W | V | Z |Enter | | |
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------' | |
* | GUI | Alt |Lower |Space | Ctrl |Enter |Space |Raise | Alt | GUI | | |
* `---------------------------------------------------------------------' | |
*/ | |
[_DVORAK] = LAYOUT( \ | |
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_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_LBRC, KC_RBRC, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ | |
KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_LCTL, KC_ENT, KC_SPC, RAISE, KC_RALT, KC_RGUI\ | |
), | |
/* Lower | |
* ,-----------------------------------------. ,-----------------------------------------. | |
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------| | |
* | ~ | F1 | F2 | F3 | F4 | F5 | | ^ | & | * | ( | ) | Del | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------| | |
* | Del | F6 | F6 | F8 | F9 | F10 | | ← | ↓ | ↑ | → | \ | | | | |
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------| | |
* | | F11 | F12 | | | | | | F12 |ISO ~ |ISO | | | | | | |
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------' | |
* | | | | | | | | | | | | |
* `---------------------------------------------------------------------' | |
*/ | |
[_LOWER] = LAYOUT( \ | |
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ | |
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ | |
KC_DEL, KC_F6, KC_F7, KC_F8, KC_F8, KC_F10, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCBR, KC_PIPE, \ | |
_______, KC_F11, KC_F12, _______, _______, _______, _______, _______, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,\ | |
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ | |
), | |
/* Raise | |
* ,-----------------------------------------. ,-----------------------------------------. | |
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | | |
* |------+------+------+------+------+------. ,------+------+------+------+------+------| | |
* | ` | 1 | ↑ | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp | | |
* |------+------+------+------+------+------. ,------+------+------+------+------+------| | |
* | Del | ← | ↓ | → | F4 | F5 | | F6 | - | = | [ | ] | | | | |
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------| | |
* | | F7 | F8 | F9 | F10 | F11 | | | F12 |ISO # |ISO / | | | | | |
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------' | |
* | | | | Del | | | | | | | | |
* `---------------------------------------------------------------------' | |
*/ | |
[_RAISE] = LAYOUT( \ | |
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ | |
KC_GRV, KC_1, KC_UP, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ | |
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_F4, KC_F5, KC_F6,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ | |
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ | |
_______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______\ | |
), | |
/* Adjust (Lower + Raise) | |
* ,-----------------------------------------. ,-----------------------------------------. | |
* | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | |
* |------+------+------+------+------+------. ,------+------+------+------+------+------| | |
* | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn| |Sat Up|Sat Dn|Val Up|Val Dn| | Bksp | | |
* |------+------+------+------+------+------. ,------+------+------+------+------+------| | |
* | | | |Aud on|Audoff|AGnorm| |AGswap| |BL TOG|BL STP| | | | |
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------| | |
* |Qwerty|Colemk|Dvorak| | | | | | | | | | | | | |
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------' | |
* | | | | | | | | | | | | |
* `---------------------------------------------------------------------' | |
*/ | |
[_ADJUST] = LAYOUT( \ | |
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ | |
_______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_BSPC, \ | |
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, BL_TOGG, BL_STEP, _______, _______, \ | |
QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | |
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ | |
) | |
}; | |
uint32_t layer_state_set_user(uint32_t state) { | |
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); | |
} | |
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
switch (keycode) { | |
case QWERTY: | |
if (record->event.pressed) { | |
set_single_persistent_default_layer(_QWERTY); | |
} | |
return false; | |
break; | |
case COLEMAK: | |
if (record->event.pressed) { | |
set_single_persistent_default_layer(_COLEMAK); | |
} | |
return false; | |
break; | |
case DVORAK: | |
if (record->event.pressed) { | |
set_single_persistent_default_layer(_DVORAK); | |
} | |
return false; | |
break; | |
} | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment