|
|
@ -0,0 +1,85 @@ |
|
|
|
#include QMK_KEYBOARD_H |
|
|
|
#include "bootloader.h" |
|
|
|
#ifdef PROTOCOL_LUFA |
|
|
|
#include "lufa.h" |
|
|
|
#include "split_util.h" |
|
|
|
#endif |
|
|
|
|
|
|
|
extern keymap_config_t keymap_config; |
|
|
|
|
|
|
|
extern uint8_t is_master; |
|
|
|
|
|
|
|
#define _QWERTY 0 |
|
|
|
#define _LOWER 1 |
|
|
|
#define _RAISE 2 |
|
|
|
|
|
|
|
enum custom_keycodes { |
|
|
|
QWERTY = SAFE_RANGE, |
|
|
|
LOWER, |
|
|
|
RAISE |
|
|
|
}; |
|
|
|
|
|
|
|
#define KC______ KC_TRNS |
|
|
|
#define KC_XXXXX KC_NO |
|
|
|
#define KC_LOWER LOWER |
|
|
|
#define KC_RAISE RAISE |
|
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
|
|
[_QWERTY] = LAYOUT_kc( \ |
|
|
|
//,-----------------------------------------. ,-----------------------------------------. |
|
|
|
Q, W, E, R, T, ESC, DEL, Y, U, I, O, P,\ |
|
|
|
//|------+------+------+------+------+------| |------+------+------+------+------+------| |
|
|
|
A, S, D, F, G, SPC, BSPC, H, J, K, L, SCLN,\ |
|
|
|
//|------+------+------+------+------+------| |------+------+------+------+------+------| |
|
|
|
Z, X, C, V, B, TAB, ENT, N, M, COMM, DOT, SLSH,\ |
|
|
|
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| |
|
|
|
LALT, LGUI, LCTL, LSFT, RAISE, LOWER \ |
|
|
|
//`--------------------' `--------------------' |
|
|
|
), |
|
|
|
|
|
|
|
[_LOWER] = LAYOUT_kc( \ |
|
|
|
//,-----------------------------------------. ,------------------------------------------. |
|
|
|
1, 2, 3, 4, 5, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ |
|
|
|
//|------+------+------+------+------+------| |-------+------+------+------+------+------| |
|
|
|
6, 7, 8, 9, 0, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ |
|
|
|
//|------+------+------+------+------+------| |-------+------+------+------+------+------| |
|
|
|
EQL, PLUS, MINS, SLSH, ASTR, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ |
|
|
|
//|------+------+------+------+------+------+------| |------+-------+------+------+------+------+------| |
|
|
|
LALT, LGUI, LCTL, LSFT, RAISE, LOWER \ |
|
|
|
//`--------------------' `--------------------' |
|
|
|
), |
|
|
|
|
|
|
|
[_RAISE] = LAYOUT_kc( \ |
|
|
|
//,-----------------------------------------. ,------------------------------------------. |
|
|
|
EXLM, AT, HASH, DLR, PERC, LPRN, RPRN, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ |
|
|
|
//|------+------+------+------+------+------| |-------+------+------+------+------+------| |
|
|
|
CIRC, AMPR, ASTR, QUOT, DQUO, LCBR, RCBR, LEFT, DOWN, UP, RIGHT, XXXXX,\ |
|
|
|
//|------+------+------+------+------+------| |-------+------+------+------+------+------| |
|
|
|
BSLS, TILD, GRV, UNDS, PIPE, LBRC, RBRC, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ |
|
|
|
//|------+------+------+------+------+------+------| |------+-------+------+------+------+------+------| |
|
|
|
LALT, LGUI, LCTL, LSFT, RAISE, LOWER \ |
|
|
|
//`--------------------' `--------------------' |
|
|
|
) |
|
|
|
}; |
|
|
|
|
|
|
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
|
|
|
switch (keycode) { |
|
|
|
case LOWER: |
|
|
|
if (record->event.pressed) { |
|
|
|
layer_on(_LOWER); |
|
|
|
} else { |
|
|
|
layer_off(_LOWER); |
|
|
|
} |
|
|
|
return false; |
|
|
|
break; |
|
|
|
case RAISE: |
|
|
|
if (record->event.pressed) { |
|
|
|
layer_on(_RAISE); |
|
|
|
} else { |
|
|
|
layer_off(_RAISE); |
|
|
|
} |
|
|
|
return false; |
|
|
|
break; |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |