mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-23 17:06:52 +06:00
86 lines
3.7 KiB
C
86 lines
3.7 KiB
C
#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;
|
|
}
|