mirror of
https://github.com/qmk/qmk_userspace.git
synced 2025-05-04 14:44:16 -04:00
Bunch of stuff
- Fixed OLED layer list order - Altered and combined symbols in tap hold behaviors - removed the mousekeys optional keycode thing since mousekeys are required - cleaned up unused tapholds
This commit is contained in:
parent
ec97151d14
commit
90ef9a3b22
10 changed files with 82 additions and 105 deletions
|
@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
/* These are horizontal encoders. Found I have to make it opposite the rotary encoders for it to feel intuitive*/
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
|
||||
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
|
||||
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
|
||||
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
|
||||
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
|
||||
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
|
||||
[_NAVIGATION] = { ENCODER_CCW_CW(ZOOMIN, ZOOMOUT), ENCODER_CCW_CW(___x___, ___x___) },
|
||||
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) },
|
||||
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
|
||||
|
|
|
@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
/* The encoder presses are handled in the keymap */
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_NAVIGATION] = { ENCODER_CCW_CW(ZOOMOUT, ZOOMIN), ENCODER_CCW_CW(___x___, ___x___) },
|
||||
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) },
|
||||
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
|
||||
|
|
|
@ -9,9 +9,12 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
|
|||
case MOUSE_BUTTON4:
|
||||
case MOUSE_BUTTON5:
|
||||
case MOUSE_DRGTOG:
|
||||
return true;
|
||||
#endif //MOUSEKEY_ENABLEdf
|
||||
|
||||
case KEY_ENT:
|
||||
case KEY_TAB:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -26,6 +29,19 @@ bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode
|
|||
|
||||
switch (combo_index) {
|
||||
|
||||
case KEY_ENT:
|
||||
if ( get_highest_layer(layer_state) == _SYMBOL ) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY_TAB:
|
||||
if ( get_highest_layer(layer_state) == _NAVIGATION ||
|
||||
get_highest_layer(layer_state) == _SYMBOL ) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case MOUSE_BUTTON1:
|
||||
case MOUSE_BUTTON2:
|
||||
case MOUSE_BUTTON3:
|
||||
|
|
|
@ -1,6 +1,24 @@
|
|||
#pragma once
|
||||
#include "t4corun.h"
|
||||
|
||||
|
||||
|
||||
#if defined(MOUSEKEY_ENABLE)
|
||||
const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn2_combo[] = { KC_S, KC_D, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn3_combo[] = { KC_G, KC_B, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn4_combo[] = { KC_F, KC_R, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn5_combo[] = { KC_T, KC_G, COMBO_END };
|
||||
const uint16_t PROGMEM mou_drg_combo[] = { KC_X, KC_C, COMBO_END };
|
||||
#endif //MOUSEKEY_ENABLE
|
||||
|
||||
const uint16_t PROGMEM key_ent_combo[] = { KC_C, KC_V, COMBO_END };
|
||||
const uint16_t PROGMEM key_tab_combo[] = { KC_U, KC_I, COMBO_END };
|
||||
const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END };
|
||||
const uint16_t PROGMEM key_del_combo[] = { TR_COMM, TR_DOT, COMBO_END };
|
||||
|
||||
|
||||
|
||||
enum combos {
|
||||
|
||||
#if defined(MOUSEKEY_ENABLE)
|
||||
|
@ -12,34 +30,33 @@ enum combos {
|
|||
MOUSE_DRGTOG,
|
||||
#endif //MOUSEKEY_ENABLE
|
||||
|
||||
KEY_ENT,
|
||||
KEY_TAB,
|
||||
KEY_BSPC,
|
||||
KEY_DEL,
|
||||
|
||||
COMBO_LENGTH
|
||||
};
|
||||
|
||||
|
||||
//their documentation is so confusing because you don't use COMBO_LEN defining the actions
|
||||
uint16_t COMBO_LEN = COMBO_LENGTH;
|
||||
|
||||
|
||||
#if defined(MOUSEKEY_ENABLE)
|
||||
const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn2_combo[] = { KC_S, KC_D, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn3_combo[] = { KC_G, KC_B, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn4_combo[] = { KC_F, KC_R, COMBO_END };
|
||||
const uint16_t PROGMEM mou_btn5_combo[] = { KC_T, KC_G, COMBO_END };
|
||||
const uint16_t PROGMEM mou_drg_combo[] = { KC_X, KC_C, COMBO_END };
|
||||
#endif //MOUSEKEY_ENABLE
|
||||
|
||||
|
||||
|
||||
combo_t key_combos[COMBO_LENGTH] = {
|
||||
|
||||
#if defined(MOUSEKEY_ENABLE)
|
||||
[MOUSE_BUTTON1] = COMBO(mou_btn1_combo, TR_BTN1),
|
||||
[MOUSE_BUTTON2] = COMBO(mou_btn2_combo, TR_BTN2),
|
||||
[MOUSE_BUTTON3] = COMBO(mou_btn3_combo, TR_BTN3),
|
||||
[MOUSE_BUTTON4] = COMBO(mou_btn4_combo, TR_BTN4),
|
||||
[MOUSE_BUTTON5] = COMBO(mou_btn5_combo, TR_BTN5),
|
||||
[MOUSE_BUTTON1] = COMBO(mou_btn1_combo, KC_BTN1),
|
||||
[MOUSE_BUTTON2] = COMBO(mou_btn2_combo, KC_BTN2),
|
||||
[MOUSE_BUTTON3] = COMBO(mou_btn3_combo, KC_BTN3),
|
||||
[MOUSE_BUTTON4] = COMBO(mou_btn4_combo, KC_BTN4),
|
||||
[MOUSE_BUTTON5] = COMBO(mou_btn5_combo, KC_BTN5),
|
||||
[MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS),
|
||||
#endif //MOUSEKEY_ENABLE
|
||||
|
||||
};
|
||||
[KEY_ENT] = COMBO(key_ent_combo, KC_ENT),
|
||||
[KEY_TAB] = COMBO(key_tab_combo, KC_TAB),
|
||||
[KEY_BSPC] = COMBO(key_bspc_combo, KC_BSPC),
|
||||
[KEY_DEL] = COMBO(key_del_combo, KC_DEL)
|
||||
|
||||
};
|
|
@ -35,8 +35,8 @@ void render_layer_state(void) {
|
|||
oled_write_P(PSTR(OLED_RENDER_LAYER_NAME), false);
|
||||
oled_write_P(PSTR(OLED_RENDER_LAYER_BASE), get_highest_layer(layer_state) == FIRST_DEFAULT_LAYER);
|
||||
oled_write_P(PSTR(OLED_RENDER_LAYER_NAVIGATION), get_highest_layer(layer_state) == _NAVIGATION);
|
||||
oled_write_P(PSTR(OLED_RENDER_LAYER_NUMBER), get_highest_layer(layer_state) == _NUMBER);
|
||||
oled_write_P(PSTR(OLED_RENDER_LAYER_SYMBOL), get_highest_layer(layer_state) == _SYMBOL);
|
||||
oled_write_P(PSTR(OLED_RENDER_LAYER_NUMBER), get_highest_layer(layer_state) == _NUMBER);
|
||||
oled_write_P(PSTR(OLED_RENDER_LAYER_CONFIG), get_highest_layer(layer_state) == _CONFIG);
|
||||
}
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
|
||||
#define OLED_RENDER_LAYER_NAME "Layer"
|
||||
#define OLED_RENDER_LAYER_BASE " Def "
|
||||
#define OLED_RENDER_LAYER_NUMBER " Num "
|
||||
#define OLED_RENDER_LAYER_NAVIGATION " Nav "
|
||||
#define OLED_RENDER_LAYER_SYMBOL " Sym "
|
||||
#define OLED_RENDER_LAYER_NUMBER " Num "
|
||||
#define OLED_RENDER_LAYER_CONFIG " Cfg "
|
||||
|
||||
void render_crkbd_logo(void);
|
||||
|
|
|
@ -53,27 +53,15 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) {
|
|||
case TR_SQUO:
|
||||
single_tap(TAPHOLD_SQUO, isHold);
|
||||
break;
|
||||
case TR_DQUO:
|
||||
single_tap(TAPHOLD_DQUO, isHold);
|
||||
break;
|
||||
case TR_EQL:
|
||||
single_tap(TAPHOLD_EQL, isHold);
|
||||
break;
|
||||
case TR_PLUS:
|
||||
single_tap(TAPHOLD_PLUS, isHold);
|
||||
break;
|
||||
//case TR_PIPE:
|
||||
// single_tap(TAPHOLD_PIPE, isHold);
|
||||
// break;
|
||||
case TR_BSLS:
|
||||
single_tap(TAPHOLD_BSLS, isHold);
|
||||
break;
|
||||
case TR_SLSH:
|
||||
single_tap(TAPHOLD_SLSH, isHold);
|
||||
break;
|
||||
case TR_AMPR:
|
||||
single_tap(TAPHOLD_AMPR, isHold);
|
||||
break;
|
||||
case TR_COMM:
|
||||
single_tap(TAPHOLD_COMM, isHold);
|
||||
break;
|
||||
|
@ -86,6 +74,9 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) {
|
|||
case TR_EXLM:
|
||||
single_tap(TAPHOLD_EXLM, isHold);
|
||||
break;
|
||||
case TR_AT:
|
||||
single_tap(TAPHOLD_AT, isHold);
|
||||
break;
|
||||
case TR_MINS:
|
||||
single_tap(TAPHOLD_MINS, isHold);
|
||||
break;
|
||||
|
@ -119,26 +110,18 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) {
|
|||
case TR_LBRC:
|
||||
insert_brackets(TAPHOLD_LBRC, WAIT_DELAY);
|
||||
break;
|
||||
case TR_SQUO:
|
||||
insert_brackets(TAPHOLD_SQUO, WAIT_DELAY);
|
||||
break;
|
||||
case TR_DQUO:
|
||||
insert_brackets(TAPHOLD_DQUO, WAIT_DELAY);
|
||||
break;
|
||||
case TR_LPRN:
|
||||
insert_brackets(TAPHOLD_LPRN, WAIT_DELAY);
|
||||
break;
|
||||
case TR_SQUO:
|
||||
insert_brackets(TAPHOLD_SQUO, WAIT_DELAY);
|
||||
break;
|
||||
|
||||
|
||||
//double tap
|
||||
case TR_EQL:
|
||||
double_tap(TAPHOLD_EQL, WAIT_DELAY);
|
||||
break;
|
||||
case TR_PLUS:
|
||||
double_tap(TAPHOLD_PLUS, WAIT_DELAY);
|
||||
break;
|
||||
//case TR_PIPE:
|
||||
// double_tap(TAPHOLD_PIPE, WAIT_DELAY);
|
||||
// break;
|
||||
case TR_BSLS:
|
||||
double_tap(TAPHOLD_BSLS, WAIT_DELAY);
|
||||
break;
|
||||
|
@ -160,7 +143,10 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) {
|
|||
single_tap(TAPHOLD_PERC, isHold);
|
||||
break;
|
||||
case TR_EXLM:
|
||||
double_tap(TAPHOLD_NEQL, WAIT_DELAY);
|
||||
single_tap(TAPHOLD_EXLM, isHold);
|
||||
break;
|
||||
case TR_AT:
|
||||
single_tap(TAPHOLD_AT, isHold);
|
||||
break;
|
||||
|
||||
//simulates auto-shift
|
||||
|
|
|
@ -17,24 +17,20 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode);
|
|||
#define TAPHOLD_LCBR KC_LCBR, KC_RCBR
|
||||
#define TAPHOLD_LABK KC_LABK, KC_RABK
|
||||
#define TAPHOLD_LBRC KC_LBRC, KC_RBRC
|
||||
#define TAPHOLD_SQUO KC_QUOT, KC_QUOT
|
||||
#define TAPHOLD_DQUO KC_DQUO, KC_DQUO
|
||||
#define TAPHOLD_LPRN KC_LPRN, KC_RPRN
|
||||
#define TAPHOLD_SQUO KC_QUOT, KC_QUOT
|
||||
|
||||
//double tap
|
||||
#define TAPHOLD_EQL KC_EQL, KC_EQL
|
||||
#define TAPHOLD_PLUS KC_PLUS, KC_PLUS
|
||||
//#define TAPHOLD_PIPE KC_PIPE, KC_PIPE
|
||||
#define TAPHOLD_BSLS KC_BSLS, KC_BSLS
|
||||
#define TAPHOLD_SLSH KC_SLSH, KC_SLSH
|
||||
#define TAPHOLD_AMPR KC_AMPR, KC_AMPR
|
||||
|
||||
//Custom: things like overriding default shifted key
|
||||
#define TAPHOLD_COMM KC_COMM, KC_LPRN
|
||||
#define TAPHOLD_DOT KC_DOT, KC_RPRN
|
||||
#define TAPHOLD_PERC KC_PERC, KC_CIRC
|
||||
#define TAPHOLD_EXLM KC_EXLM, KC_EXLM
|
||||
#define TAPHOLD_NEQL KC_EXLM, KC_EQL
|
||||
#define TAPHOLD_EXLM KC_EXLM, KC_DLR
|
||||
#define TAPHOLD_AT KC_AT, KC_AMPR
|
||||
|
||||
//auto shift
|
||||
#define TAPHOLD_MINS KC_MINS, KC_UNDS
|
||||
|
|
|
@ -49,10 +49,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
case TR_LBRC:
|
||||
case TR_LPRN:
|
||||
case TR_SQUO:
|
||||
case TR_DQUO:
|
||||
case TR_EQL:
|
||||
case TR_PLUS:
|
||||
//case TR_PIPE:
|
||||
case TR_BSLS:
|
||||
case TR_SLSH:
|
||||
case TR_AMPR:
|
||||
|
|
|
@ -21,19 +21,16 @@ enum keycodes {
|
|||
TH_LBRC,
|
||||
TH_LPRN,
|
||||
TH_SQUO,
|
||||
TH_DQUO,
|
||||
|
||||
TH_EQL,
|
||||
TH_PLUS,
|
||||
//TH_PIPE,
|
||||
TH_BSLS,
|
||||
TH_SLSH,
|
||||
TH_AMPR,
|
||||
|
||||
TH_COMM,
|
||||
TH_DOT,
|
||||
TH_PERC,
|
||||
TH_EXLM,
|
||||
TH_AT,
|
||||
|
||||
TH_MINS,
|
||||
TH_GRV,
|
||||
|
@ -87,19 +84,16 @@ enum keycodes {
|
|||
#define TR_LBRC LT(_DEFAULT_LAYER_1, TH_LBRC)
|
||||
#define TR_LPRN LT(_DEFAULT_LAYER_1, TH_LPRN)
|
||||
#define TR_SQUO LT(_DEFAULT_LAYER_1, TH_SQUO)
|
||||
#define TR_DQUO LT(_DEFAULT_LAYER_1, TH_DQUO)
|
||||
|
||||
#define TR_EQL LT(_DEFAULT_LAYER_1, TH_EQL) // double tap
|
||||
#define TR_PLUS LT(_DEFAULT_LAYER_1, TH_PLUS)
|
||||
//#define TR_PIPE LT(_DEFAULT_LAYER_1, TH_PIPE)
|
||||
#define TR_BSLS LT(_DEFAULT_LAYER_1, TH_BSLS)
|
||||
#define TR_SLSH LT(_DEFAULT_LAYER_1, TH_SLSH)
|
||||
#define TR_AMPR LT(_DEFAULT_LAYER_1, TH_AMPR)
|
||||
|
||||
#define TR_COMM LT(_DEFAULT_LAYER_1, TH_COMM) // custom behavior
|
||||
#define TR_DOT LT(_DEFAULT_LAYER_1, TH_DOT)
|
||||
#define TR_PERC LT(_DEFAULT_LAYER_1, TH_PERC)
|
||||
#define TR_EXLM LT(_DEFAULT_LAYER_1, TH_EXLM)
|
||||
#define TR_AT LT(_DEFAULT_LAYER_1, TH_AT)
|
||||
|
||||
// basically auto shift
|
||||
#define TR_MINS LT(_DEFAULT_LAYER_1, TH_MINS)
|
||||
|
@ -108,47 +102,18 @@ enum keycodes {
|
|||
#define TR_QUOT LT(_DEFAULT_LAYER_1, TH_QUOT)
|
||||
|
||||
|
||||
#if defined(MOUSEKEY_ENABLE)
|
||||
|
||||
# define TR_MWHU KC_WH_U
|
||||
# define TR_MWHD KC_WH_D
|
||||
|
||||
# define TR_BTN1 KC_BTN1
|
||||
# define TR_BTN2 KC_BTN2
|
||||
# define TR_BTN3 KC_BTN3
|
||||
# define TR_BTN4 KC_BTN4
|
||||
# define TR_BTN5 KC_BTN5
|
||||
|
||||
# if defined(KEYBOARD_bastardkb_charybdis_3x5)
|
||||
//these codes are defined in charybdis.h
|
||||
#if defined(KEYBOARD_bastardkb_charybdis_3x5)
|
||||
//these mouse codes are defined in charybdis.h
|
||||
# define TR_SNIP SNIPING
|
||||
# define TR_DRGS DRG_TOG
|
||||
# define TR_SDPI S_D_MOD //sniping dpi
|
||||
# define TR_PDPI DPI_MOD //pointer dpi
|
||||
# else
|
||||
#else
|
||||
# define TR_SNIP ___x___
|
||||
# define TR_DRGS PN_DRGS //use host status for ploopy nano drag scroll
|
||||
# define TR_SDPI ___x___
|
||||
# define TR_PDPI PN_PDPI //use host status for ploopy nano dpi switch
|
||||
# endif //KEYBOARD_bastardkb_charybdis_3x5
|
||||
|
||||
#else
|
||||
|
||||
# define TR_MWHU ___x___
|
||||
# define TR_MWHD ___x___
|
||||
|
||||
# define TR_BTN1 ___x___
|
||||
# define TR_BTN2 ___x___
|
||||
# define TR_BTN3 ___x___
|
||||
# define TR_BTN4 ___x___
|
||||
# define TR_BTN5 ___x___
|
||||
|
||||
# define TR_SNIP ___x___
|
||||
# define TR_DRGS ___x___
|
||||
# define TR_SDPI ___x___
|
||||
# define TR_PDPI ___x___
|
||||
|
||||
#endif //MOUSEKEY_ENABLE
|
||||
#endif //KEYBOARD_bastardkb_charybdis_3x5
|
||||
|
||||
|
||||
#if defined(DYNAMIC_MACRO_ENABLE)
|
||||
|
@ -159,6 +124,7 @@ enum keycodes {
|
|||
# define TR_DMP1 ___x___
|
||||
#endif //DYNAMIC_MACRO_ENABLE
|
||||
|
||||
|
||||
#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE)
|
||||
# define TR_RHUI RGB_HUI
|
||||
# define TR_RSAI RGB_SAI
|
||||
|
@ -178,7 +144,6 @@ enum keycodes {
|
|||
#endif //RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE
|
||||
|
||||
|
||||
|
||||
#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
|
||||
#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
|
||||
#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
|
||||
|
@ -226,8 +191,8 @@ enum keycodes {
|
|||
|
||||
|
||||
#define LAYER_SYMBOL \
|
||||
KC_ESC, TR_PERC, KC_ASTR, KC_DLR, TR_GRV, TR_EQL, KC_HASH, TR_LABK, KC_RABK, TR_AMPR, \
|
||||
_GACS_MODS________________________, TR_SCLN, KC_AT, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \
|
||||
KC_ESC, KC_BTN3, KC_BTN2, KC_BTN1, TR_GRV, TR_EQL, KC_HASH, TR_LABK, KC_RABK, TR_PERC, \
|
||||
_GACS_MODS________________________, TR_SCLN, TR_AT, KC_ASTR, TR_LBRC, KC_RBRC, TR_SQUO, \
|
||||
_UCCPR_L___________________________________, TR_BSLS, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \
|
||||
_LAYER_TRANS_____________, TR_EXLM, _______, ___x___
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue