mirror of
https://github.com/qmk/qmk_firmware.git
synced 2026-10-21 08:30:44 +02:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer {
|
||||
LAYER_DEFAULT,
|
||||
LAYER_FUNCTION,
|
||||
LAYER_ADJUST,
|
||||
};
|
||||
|
||||
/* Switch to function layer when held. */
|
||||
#define LY_FUNC MO(LAYER_FUNCTION)
|
||||
|
||||
/* Switch to adjust layer when held; send menu key when tapped. */
|
||||
#define LY_ADJST LT(LAYER_ADJUST, KC_APP)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/86b33d75aa6f56d8781ab3d8475f4e77 */
|
||||
[LAYER_DEFAULT] = LAYOUT_60_tsangan_hhkb(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LY_FUNC,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LY_ADJST, KC_RCTL
|
||||
),
|
||||
|
||||
/* Function layer: http://www.keyboard-layout-editor.com/#/gists/f6311fd7e315de781143b80eb040a551 */
|
||||
[LAYER_FUNCTION] = LAYOUT_60_tsangan_hhkb(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
|
||||
_______, KC_MPLY, KC_VOLU, KC_MSTP, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______,
|
||||
KC_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
||||
_______, _______, KC_MUTE, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4 */
|
||||
[LAYER_ADJUST] = LAYOUT_60_tsangan_hhkb(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, EEP_RST, RESET, _______, _______, _______, RGB_VAI, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_TOG,
|
||||
_______, _______, _______, _______, _______, BL_BRTG, BL_DEC, BL_INC, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
# bcat's 60% Tsangan HHKB layout
|
||||
|
||||
This is a normal Tsangan/HHKB (split backspace, split right shift) layout with
|
||||
arrow and navigation keys that match a standard HHKB layout, as well as media
|
||||
keys centered around the WASD cluster. Additionally, the redundant right Super
|
||||
key on the bottom row actives an adjust layer to control RGB underglow.
|
||||
|
||||
## Default layer
|
||||
|
||||

|
||||
|
||||
## Function layer
|
||||
|
||||

|
||||
|
||||
## Adjust layer
|
||||
|
||||

|
||||
@@ -2,13 +2,15 @@
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
#define _MAC 0
|
||||
#define _WINDOWS 1
|
||||
#define _TESTMODE 2
|
||||
#define _LOWER 3
|
||||
#define _RAISE 4
|
||||
#define _FKEYS 5
|
||||
#define _ADJUST 16
|
||||
enum layer_names {
|
||||
_MAC,
|
||||
_WINDOWS,
|
||||
_TESTMODE,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_FKEYS,
|
||||
_ADJUST,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
MAC = SAFE_RANGE,
|
||||
@@ -17,7 +19,6 @@ enum custom_keycodes {
|
||||
LOWER,
|
||||
RAISE,
|
||||
ADJUST,
|
||||
PLAY_ALLSTAR,
|
||||
};
|
||||
|
||||
#define KC_ KC_TRNS
|
||||
@@ -35,6 +36,22 @@ enum custom_keycodes {
|
||||
#define KC_BL_T BL_TOGG
|
||||
#define KC_RMOD RGB_MOD
|
||||
|
||||
#ifndef LAYOUT_kc_ortho_4x12
|
||||
#define LAYOUT_kc_ortho_4x12( \
|
||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
||||
L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
|
||||
) \
|
||||
LAYOUT_ortho_4x12( \
|
||||
KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
|
||||
KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
|
||||
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
|
||||
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_MAC] = LAYOUT_kc_ortho_4x12(
|
||||
@@ -130,28 +147,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
};
|
||||
|
||||
void persistent_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case MAC:
|
||||
if (record->event.pressed) {
|
||||
persistent_default_layer_set(1UL<<_MAC);
|
||||
set_single_persistent_default_layer(_MAC);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case WINDOWS:
|
||||
if (record->event.pressed) {
|
||||
persistent_default_layer_set(1UL<<_WINDOWS);
|
||||
set_single_persistent_default_layer(_WINDOWS);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case TESTMODE:
|
||||
if (record->event.pressed) {
|
||||
persistent_default_layer_set(1UL<<_TESTMODE);
|
||||
set_single_persistent_default_layer(_TESTMODE);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
ifneq ($(LAYOUTS_HAS_RGB), no)
|
||||
RGBLIGHT_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = yes
|
||||
endif
|
||||
AUDIO_ENABLE = no
|
||||
ifeq ($(strip $(KEYBOARD)), zlant)
|
||||
|
||||
@@ -3,17 +3,18 @@
|
||||
|
||||
enum layers {
|
||||
_QWERTY,
|
||||
_FN,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_UNI_LCK
|
||||
_UNICODE
|
||||
};
|
||||
|
||||
#define FN MO(_FN)
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define UNI_LCK MO(_UNI_LCK)
|
||||
#define UNICODE MO(_UNICODE)
|
||||
#define TGLOWER TG(_LOWER)
|
||||
#define TGRAISE TG(_RAISE)
|
||||
#define SHRAISE LM(_RAISE, MOD_LSFT)
|
||||
|
||||
static bool is_ctl_pressed;
|
||||
static bool is_esc_pressed;
|
||||
@@ -29,19 +30,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM, KC_DOT, KC_UP ,KC_SLSH,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
KC_LCTL,KC_LGUI,KC_LALT,UNI_LCK, LOWER , KC_SPC, KC_SPC, RAISE ,SHRAISE,KC_LEFT,KC_DOWN,KC_RGHT
|
||||
KC_LCTL,KC_LGUI,KC_LALT, FN , LOWER , KC_SPC, KC_SPC, RAISE ,UNICODE,KC_LEFT,KC_DOWN,KC_RGHT
|
||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT_ortho_4x12 (
|
||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 ,_______,_______,_______,_______,_______,_______,_______,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,_______,_______,_______,_______,_______,_______,_______,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______, KC_F9 , KC_F10, KC_F11, KC_F12,_______,_______,_______,_______,_______,KC_PGUP,_______,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______,_______,_______,_______,TGLOWER,_______,_______,TGRAISE,_______,KC_HOME,KC_PGDN, KC_END
|
||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_ortho_4x12 (
|
||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 ,_______, KC_INS, KC_P7 , KC_P8 , KC_P9 ,KC_PMNS,_______,
|
||||
_______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 ,KC_HOME,KC_PGUP, KC_P4 , KC_P5 , KC_P6 ,KC_PPLS,KC_PENT,
|
||||
_______,KC_VOLD,KC_MUTE,KC_VOLU,KC_HOME,KC_PGUP,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______, KC_F9 , KC_F10, KC_F11, KC_F12, KC_END,KC_PGDN, KC_P1 , KC_P2 , KC_P3 ,KC_PAST,KC_PSLS,
|
||||
_______,KC_MPRV,KC_MPLY,KC_MNXT, KC_END,KC_PGDN,KC_MINS, KC_EQL,_______,_______,_______,_______,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______,_______,_______,_______,_______,_______,_______,_______, KC_P0 ,KC_PDOT,KC_LPRN,KC_RPRN
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
|
||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||
),
|
||||
|
||||
@@ -49,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||
KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
KC_CAPS,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______,
|
||||
_______,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______,_______,_______,_______,_______,_______,KC_MINS, KC_EQL,_______,_______,KC_VOLU,_______,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
@@ -57,15 +70,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||
),
|
||||
|
||||
[_UNI_LCK] = LAYOUT_ortho_4x12 (
|
||||
[_UNICODE] = LAYOUT_ortho_4x12 (
|
||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||
UN_ESC, UN_Q , UN_W , UN_E , UN_R , UN_T , UN_Y , UN_U , UN_I , UN_O , UN_P ,_______,
|
||||
UN_ESC, UN_Q , UN_W , UN_E , UN_R , UN_T , UN_Y , UN_U , UN_I , UN_O , UN_P ,UN_BSPC,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______, UN_A , UN_S , UN_D , UN_F , UN_G , UN_H , UN_J , UN_K , UN_L ,UN_SCLN,_______,
|
||||
UN_TAB, UN_A , UN_S , UN_D , UN_F , UN_G , UN_H , UN_J , UN_K , UN_L ,UN_SCLN, UN_ENT,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
_______, UN_Z , UN_X , UN_C , UN_V , UN_B , UN_N , UN_M ,UN_COMM, UN_DOT, UN_UP ,UN_SLSH,
|
||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||
UC_M_LN,UC_M_WI,UC_M_OS,_______,TGLOWER,_______,_______,TGRAISE,_______,UN_LEFT,UN_DOWN,UN_RGHT
|
||||
UC_M_LN,UC_M_WI,UC_M_OS,_______,_______,_______,_______,_______,_______,UN_DOWN, UN_UP ,UN_RGHT
|
||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||
),
|
||||
|
||||
@@ -82,7 +95,7 @@ uint32_t layer_state_set_user(uint32_t state) {
|
||||
writePinLow(JOTANCK_LED1);
|
||||
writePinHigh(JOTANCK_LED2);
|
||||
break;
|
||||
case _UNI_LCK:
|
||||
case _FN:
|
||||
writePinHigh(JOTANCK_LED1);
|
||||
writePinHigh(JOTANCK_LED2);
|
||||
break;
|
||||
@@ -95,11 +108,13 @@ uint32_t layer_state_set_user(uint32_t state) {
|
||||
return state;
|
||||
}
|
||||
|
||||
/*
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) {
|
||||
tap_code(KC_NUMLOCK);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
set_unicode_input_mode(UC_LNX);
|
||||
@@ -119,6 +134,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
};
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (is_ctl_pressed && is_esc_pressed && is_bspc_pressed) {
|
||||
reset_keyboard();
|
||||
|
||||
@@ -71,6 +71,12 @@ enum unicode_names {
|
||||
TREBOL_SUIT,
|
||||
HEART_SUIT,
|
||||
DIAMOND_SUIT,
|
||||
NARRAY_SUM,
|
||||
INFINIT_SYMBOL,
|
||||
DIAMOND_BULLET,
|
||||
CIRCLE_BULLET,
|
||||
SMILE_FACE,
|
||||
SAD_FACE
|
||||
};
|
||||
|
||||
const uint32_t PROGMEM unicode_map[] = {
|
||||
@@ -142,10 +148,16 @@ const uint32_t PROGMEM unicode_map[] = {
|
||||
[DIVISION] = 0x00F7,
|
||||
[SQUARE_ROOT] = 0x221A,
|
||||
[CUBE_ROOT] = 0x221B,
|
||||
[SPADE_SUIT] = 0x2660,
|
||||
[SPADE_SUIT] = 0x2660,
|
||||
[TREBOL_SUIT] = 0x2663,
|
||||
[HEART_SUIT] = 0x2664,
|
||||
[DIAMOND_SUIT] = 0x2665
|
||||
[DIAMOND_SUIT] = 0x2665,
|
||||
[NARRAY_SUM] = 0x2211,
|
||||
[INFINIT_SYMBOL]= 0x221E,
|
||||
[DIAMOND_BULLET]= 0x2B25,
|
||||
[CIRCLE_BULLET] = 0x2981,
|
||||
[SMILE_FACE] = 0x263A,
|
||||
[SAD_FACE] = 0x2639
|
||||
};
|
||||
|
||||
#define UN_ESC XP(DEGREE, DEGREE_CELCIUS)
|
||||
@@ -159,6 +171,8 @@ const uint32_t PROGMEM unicode_map[] = {
|
||||
#define UN_I XP(I_ACUTE, I_ACUTEC)
|
||||
#define UN_O XP(O_ACUTE, O_ACUTEC)
|
||||
#define UN_P XP(POUND, PILCROW)
|
||||
#define UN_BSPC XP(BOX_CROSS, DBOX_CROSS)
|
||||
#define UN_TAB XP(DIAMOND_BULLET, CIRCLE_BULLET)
|
||||
#define UN_A XP(A_ACUTE, A_ACUTEC)
|
||||
#define UN_S XP(BOX_CORNER_1, DBOX_CORNER_1)
|
||||
#define UN_D XP(BOX_CORNER_2, DBOX_CORNER_2)
|
||||
@@ -169,8 +183,9 @@ const uint32_t PROGMEM unicode_map[] = {
|
||||
#define UN_K XP(BOX_UNION_3, DBOX_UNION_3)
|
||||
#define UN_L XP(BOX_UNION_4, DBOX_UNION_4)
|
||||
#define UN_SCLN XP(BOX_HORIZONTAL, DBOX_HORIZONT)
|
||||
#define UN_Z XP(BOX_VERTICAL, DBOX_VERTICAL)
|
||||
#define UN_X XP(BOX_CROSS, DBOX_CROSS)
|
||||
#define UN_ENT XP(BOX_VERTICAL, DBOX_VERTICAL)
|
||||
#define UN_Z XP(NARRAY_SUM, INFINIT_SYMBOL)
|
||||
#define UN_X XP(SMILE_FACE, SAD_FACE)
|
||||
#define UN_C XP(COPYRIGHT, REGISTERED)
|
||||
#define UN_V XP(SPADE_SUIT, TREBOL_SUIT)
|
||||
#define UN_B XP(HEART_SUIT, DIAMOND_SUIT)
|
||||
|
||||
Reference in New Issue
Block a user