mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-27 02:56:33 +06:00
fced377ac0
* Branch point for 2020 May 30 Breaking Change * Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954) * Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957) * Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958) * Migrate `ACTION_LAYER_MODS` to `LM()` (#8959) * Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968) * Convert V-USB usbdrv to a submodule (#8321) * Unify Tap Hold functions and documentation (#8348) * Changing board names to prevent confusion (#8412) * Move the Keyboardio Model01 to a keyboardio/ subdir (#8499) * Move spaceman keyboards (#8830) * Migrate miscellaneous `fn_actions` entries (#8977) * Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979) * Organizing my keyboards (plaid, tartan, ergoinu) (#8537) * Refactor Lily58 to use split_common (#6260) * Refactor zinc to use split_common (#7114) * Add a message if bin/qmk doesn't work (#9000) * Fix conflicting types for 'tfp_printf' (#8269) * Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup (#6480) * Refactor and updates to TKC1800 code (#8472) * Switch to qmk forks for everything (#9019) * audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484) * Audio enable corrections (2/3) (#8903) * Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582) * Audio enable corrections (Part 4) (#8974) * Fix typo from PR7114 (#9171) * Augment future branch Changelogs (#8978) * Revert "Branch point for 2020 May 30 Breaking Change"
81 lines
2.9 KiB
C
81 lines
2.9 KiB
C
#include QMK_KEYBOARD_H
|
|
|
|
#define KC_MO1 MO(1)
|
|
#define KC_MO2 MO(2)
|
|
#define KC_MO3 MO(3)
|
|
#define KC_LM4 LM(4, MOD_LSFT)
|
|
|
|
#define KC_MTCM MT(MOD_LCTL, KC_MINS)
|
|
#define KC_MTSG MT(MOD_LSFT, KC_GRV)
|
|
#define KC_MTSW MT(MOD_RSFT, KC_RGUI)
|
|
#define KC_MTSC MT(MOD_RSFT, KC_CAPS)
|
|
#define KC_MTCT MT(MOD_LCTL, KC_TAB)
|
|
|
|
#define KC_BLTG BL_TOGG
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
[0] = LAYOUT_kc(
|
|
ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC,
|
|
MTCT, A, R, S, T, D, H, N, E, I, O, ENT,
|
|
LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, MTSC,
|
|
MTSG, LGUI, LM4, MO2, MO1, SPC, MTSW, RALT, MO3, MTCM),
|
|
[1] = LAYOUT_kc(
|
|
TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
|
|
[2] = LAYOUT_kc(
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS,
|
|
TRNS, BLTG, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS),
|
|
[3] = LAYOUT_kc(
|
|
TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
|
|
[4] = LAYOUT_kc(
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS,
|
|
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS,
|
|
TRNS, BLTG, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS),
|
|
};
|
|
|
|
enum macro_id
|
|
{
|
|
PSWD1,
|
|
PSWD2,
|
|
PSWD3,
|
|
};
|
|
|
|
const uint16_t PROGMEM fn_actions[] = {
|
|
[10] = ACTION_MACRO(PSWD1),
|
|
[11] = ACTION_MACRO(PSWD2),
|
|
[12] = ACTION_MACRO(PSWD3)
|
|
};
|
|
|
|
/*
|
|
* Macro definition
|
|
*/
|
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|
{
|
|
switch (id)
|
|
{
|
|
case PSWD1:
|
|
return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
|
|
case PSWD2:
|
|
return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
|
|
case PSWD3:
|
|
return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
|
|
//case VOLUP:
|
|
// return (record->event.pressed ?
|
|
// MACRO( D(VOLU), U(VOLU), END ) :
|
|
// MACRO_NONE );
|
|
//case ALT_TAB:
|
|
// return (record->event.pressed ?
|
|
// MACRO( D(LALT), D(TAB), END ) :
|
|
// MACRO( U(TAB), END ));
|
|
}
|
|
return MACRO_NONE;
|
|
}
|