mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-27 11:38:58 +06:00
13a514923a
Co-authored-by: Tyler Tidman <tyler.tidman@draak.ca> Co-authored-by: Simon Arlott <sa.me.uk>
185 lines
6.0 KiB
C
185 lines
6.0 KiB
C
/* Copyright 2020 Joseph Wasson
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include QMK_KEYBOARD_H
|
|
#include "tapdance/tapdance.h"
|
|
#include "macros.h"
|
|
|
|
enum userspace_custom_keycodes {
|
|
KC_MAKE = SAFE_RANGE, // can always be here
|
|
DFAULTS,
|
|
TOGGLE_BACKLIGHT,
|
|
EFFECT,
|
|
EFFECT_END = EFFECT + 20
|
|
};
|
|
|
|
#ifndef RESET_LAYER
|
|
#define RESET_LAYER 15
|
|
#endif
|
|
|
|
enum layers {
|
|
_BASE = 0,
|
|
_WORKMAN,
|
|
_NORMAN,
|
|
_DVORAK,
|
|
_COLMAK,
|
|
_MALTROFF,
|
|
_NORTRON,
|
|
_GAME,
|
|
_NAV,
|
|
_NUM,
|
|
_ADJUST,
|
|
_RESET = RESET_LAYER,
|
|
};
|
|
|
|
#ifdef VISUALIZER_ENABLE
|
|
extern const char layer_names[][16];
|
|
#endif
|
|
|
|
#define MO_NAV MO(_NAV)
|
|
#define MO_ADJ TD(TD_FUNCTION)
|
|
#define MO_RST MO(_RESET)
|
|
#define TG_ADJ TG(_ADJUST)
|
|
#define TG_NUM TG(_NUM)
|
|
#ifdef ENABLE_GAME_LAYER
|
|
#define TG_GAME TG(_GAME)
|
|
#else
|
|
#define TG_GAME KC_NO
|
|
#endif
|
|
#define LY_QWER DF(_BASE)
|
|
#define LY_WORK DF(_WORKMAN)
|
|
#define LY_NRMN DF(_NORMAN)
|
|
#define LY_DVRK DF(_DVORAK)
|
|
#define LY_CLMK DF(_COLMAK)
|
|
#if SPACE_COUNT >= 2
|
|
#define LY_MALT DF(_MALTROFF)
|
|
#define LY_NTRN DF(_NORTRON)
|
|
#else
|
|
#define LY_MALT KC_NO
|
|
#define LY_NTRN KC_NO
|
|
#endif
|
|
#define TG_NKRO MAGIC_TOGGLE_NKRO
|
|
#define KC_PTT KC_F24
|
|
#define MS_MID KC_MS_BTN3
|
|
#define FX(x) (EFFECT + x)
|
|
|
|
#define CTL_ESC CTL_T(KC_ESC)
|
|
#define US_ENT RCTL_T(KC_ENT)
|
|
#define US_MINS RCTL_T(KC_QUOT)
|
|
#define US_BSLS LCA_T(KC_BSLS)
|
|
#define US_SCLN TD(TD_SEMICOLON)
|
|
#define US_GRV TD(TD_GRAVE)
|
|
#define US_TAB C_S_T(KC_TAB)
|
|
#define SH_LBRC LSFT_T(KC_LBRC)
|
|
#define SH_RBRC RSFT_T(KC_RBRC)
|
|
#define US_LOCK TD(TD_LOCK)
|
|
|
|
#define MLT_E LT(_NUM, KC_E)
|
|
|
|
#ifndef SWAP_HANDS_ENABLE
|
|
#undef SH_T
|
|
#define SH_T
|
|
#endif
|
|
|
|
#define KC_SPC1 LT(_NAV,KC_SPC)
|
|
#define KC_SPC2 LT(_NUM,KC_ENT)
|
|
#define KC_SPC3 SH_T(KC_BSPC)
|
|
|
|
#define NV_SPC1 KC_SPC
|
|
#define NV_SPC2 KC_ENT
|
|
#define NV_SPC3 KC_SPC
|
|
|
|
#define NM_SPC1 KC_0
|
|
#define NM_SPC2 XXXXXXX
|
|
#define NM_SPC3 KC_SPC
|
|
|
|
#ifndef ZEAL_RGB
|
|
#define BR_INC KC_NO
|
|
#define BR_DEC KC_NO
|
|
#define EF_INC KC_NO
|
|
#define EF_DEC KC_NO
|
|
#define ES_INC KC_NO
|
|
#define ES_DEC KC_NO
|
|
#define H1_INC KC_NO
|
|
#define H1_DEC KC_NO
|
|
#define S1_INC KC_NO
|
|
#define S1_DEC KC_NO
|
|
#define H2_INC KC_NO
|
|
#define H2_DEC KC_NO
|
|
#define S2_INC KC_NO
|
|
#define S2_DEC KC_NO
|
|
#define FN_MO13 KC_NO
|
|
#define FN_MO2 KC_NO
|
|
#endif
|
|
|
|
#ifndef TEMPLATE
|
|
#define _X_ KC_NO
|
|
#define TEMPLATE( \
|
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \
|
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \
|
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \
|
|
KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \
|
|
) TEMPLATE_TKL ( \
|
|
KJ6, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, KA5, \
|
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, _X_, _X_, _X_, \
|
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, _X_, _X_, _X_, \
|
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, _X_, \
|
|
KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, _X_, _X_, _X_ \
|
|
)
|
|
#endif
|
|
#ifndef TEMPLATE_TKL
|
|
#define TEMPLATE_TKL( \
|
|
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
|
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
|
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
|
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
|
|
KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
|
|
) TEMPLATE( \
|
|
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \
|
|
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \
|
|
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
|
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \
|
|
KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \
|
|
)
|
|
#endif
|
|
|
|
#ifndef TEMPLATE_ALT
|
|
#define TEMPLATE_ALT TEMPLATE
|
|
#endif
|
|
#ifndef TEMPLATE_NUM
|
|
#define TEMPLATE_NUM TEMPLATE_ALT
|
|
#endif
|
|
#ifndef TEMPLATE_NAV
|
|
#define TEMPLATE_NAV TEMPLATE_ALT
|
|
#endif
|
|
#ifndef TEMPLATE_ADJUST
|
|
#define TEMPLATE_ADJUST TEMPLATE_ALT
|
|
#endif
|
|
|
|
#ifndef TEMPLATE_RESET
|
|
#define TEMPLATE_RESET TEMPLATE_ALT( \
|
|
RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \
|
|
RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \
|
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
|
RESET , XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX)
|
|
#endif
|