mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-25 10:44:59 +06:00
Adding 34keys layout for kprepublic bm40 keyboard. (#15974)
This commit is contained in:
parent
578a3e3505
commit
0eab24be26
59
keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h
Normal file
59
keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h
Normal file
@ -0,0 +1,59 @@
|
||||
// Copyright 2021 Taeyoon Kim (@partrita)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// /*
|
||||
// Set any config.h overrides for your specific keymap here.
|
||||
// See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
|
||||
// */
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TERM 200 // time of holding key, milliseconds
|
||||
|
||||
// Prevent normal rollover on alphas from accidentally triggering mods.
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
|
||||
#define TAPPING_FORCE_HOLD
|
||||
|
||||
// Recommended for heavy chording.
|
||||
#define QMK_KEYS_PER_SCAN 4
|
||||
|
||||
// Mouse key speed and acceleration.
|
||||
#undef MOUSEKEY_DELAY
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#undef MOUSEKEY_INTERVAL
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
#undef MOUSEKEY_WHEEL_DELAY
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
#undef MOUSEKEY_MAX_SPEED
|
||||
#define MOUSEKEY_MAX_SPEED 6
|
||||
#undef MOUSEKEY_TIME_TO_MAX
|
||||
#define MOUSEKEY_TIME_TO_MAX 64
|
||||
|
||||
// The firmware is too large!
|
||||
#define COMBO_COUNT 1 // number of combo
|
||||
#define COMBO_TERM 80 // timeout period for combos to 40ms.
|
||||
|
||||
//disable broken animations
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
# undef ENABLE_RGB_MATRIX_BREATHING
|
||||
# undef ENABLE_RGB_MATRIX_BAND_SAT
|
||||
# undef ENABLE_RGB_MATRIX_BAND_VAL
|
||||
# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
# undef RGB_MATRIX_STARTUP_MODE
|
||||
// # define RGBLIGHT_HUE_STEP 20
|
||||
#endif
|
91
keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c
Normal file
91
keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c
Normal file
@ -0,0 +1,91 @@
|
||||
// Copyright 2021 Taeyoon Kim (@partrita)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_korean.h"
|
||||
|
||||
enum layers {
|
||||
_Base,
|
||||
_Navi,
|
||||
_Numb,
|
||||
_Func,
|
||||
};
|
||||
|
||||
// Left-hand home row mods - Base Layer
|
||||
#define HOME_A LGUI_T(KC_A)
|
||||
#define HOME_S LALT_T(KC_S)
|
||||
#define HOME_D LCTL_T(KC_D)
|
||||
#define HOME_F LSFT_T(KC_F)
|
||||
#define HOME_J RSFT_T(KC_J)
|
||||
#define HOME_K LCTL_T(KC_K)
|
||||
#define HOME_L LALT_T(KC_L)
|
||||
#define HOME_QU LGUI_T(KC_QUOT)
|
||||
|
||||
// layer keys
|
||||
#define Lay_SPC LT(_Func,KC_SPC)
|
||||
#define NAVI MO(_Navi)
|
||||
#define NUMB MO(_Numb)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_Base] = LAYOUT_planck_mit(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_NO, KC_NO, KC_H, HOME_J, HOME_K, HOME_L, HOME_QU,
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
||||
KC_NO, KC_NO, KC_NO, NAVI, Lay_SPC, KC_NO, KC_BSPC, NUMB, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[_Navi] = LAYOUT_planck_mit(
|
||||
KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_ESC, KC_NO, KC_NO, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
|
||||
KC_LSFT, HOME_S, HOME_D, HOME_F, KC_TAB, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU,
|
||||
KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, KC_NO, KC_NO, KC_BTN2, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[_Numb] = LAYOUT_planck_mit(
|
||||
KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_NO, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HAEN, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_0, KC_MINS, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[_Func] = LAYOUT_planck_mit(
|
||||
KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_F11, KC_F4, KC_F5, KC_F6, KC_SCRL, KC_NO, KC_NO, KC_CAPS, KC_RSFT, HOME_K, HOME_L, HOME_QU,
|
||||
KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KC_HAEN, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
// color by layer
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
uint8_t layer = get_highest_layer(state);
|
||||
switch (layer) {
|
||||
case _Navi:
|
||||
rgblight_mode_noeeprom(RGB_MATRIX_RAINBOW_BEACON);
|
||||
break;
|
||||
case _Numb:
|
||||
rgblight_mode_noeeprom(RGB_MATRIX_HUE_PENDULUM);
|
||||
break;
|
||||
case _Func:
|
||||
rgblight_mode_noeeprom(RGB_MATRIX_GRADIENT_LEFT_RIGHT);
|
||||
break;
|
||||
default:
|
||||
rgblight_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_WIDE);
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
// COMBO key for HOME ROW modifier
|
||||
// modify `config.h` file
|
||||
// by adding #define COMBO_COUNT 1 (replacing 1 with the number that you’re using).
|
||||
// modify `rules.mk` file
|
||||
// by adding # COMBO_ENABLE = yes
|
||||
|
||||
enum combos {
|
||||
SFT_HAN,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM sft_han_combo[] = {LSFT_T(KC_F), LT(_Func,KC_SPC), COMBO_END};
|
||||
|
||||
combo_t key_combos[COMBO_COUNT] = {
|
||||
[SFT_HAN] = COMBO(sft_han_combo, KC_HAEN),
|
||||
};
|
63
keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md
Normal file
63
keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md
Normal file
@ -0,0 +1,63 @@
|
||||
# The 35 keymap for bm40hsrgb
|
||||
|
||||
This layout is made almost entirely from [miryoku](https://github.com/manna-harbour/miryoku). However, I used fewer layers and reduced 36 keys to 34.
|
||||
|
||||
> As little as possible, as simple as possible, as easy as possible to memorize
|
||||
|
||||
Replaced the Ctrl, GUI, Alt, and Shift keys with home mod row. A combo function was added by removing some RGB animations of the bm40's keyboard to free up memory. If animation is not removed, it is because there is not enough memory to compile. Added code that uses RGB matrix animation so that you can see at a glance which layer is being used, and you can move faster by increasing the speed of the mouse key.
|
||||
|
||||
And because I'm Korean, a combo for Korean and English keyboard conversion has been added, but if you don't need it, you can delete it.
|
||||
|
||||
|
||||
- Flash:
|
||||
|
||||
`qmk flash -kb kprepublic/bm40hsrgb -km 34keys`
|
||||
|
||||
# Layout
|
||||
|
||||
Press and hold to activate the keys in parentheses.
|
||||
|
||||
|
||||
https://imgur.com/a/UkKfCYm
|
||||
|
||||
|
||||
## _BASE(QWERTY)
|
||||
|
||||
![](https://i.imgur.com/PuHFVXT.png)
|
||||
|
||||
|
||||
| Q | W | E | R | T | | | Y | U | I | O | P |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| A(GUI) | S(Alt) | D(Ctrl) | F(Shift) | G | | | H | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) |
|
||||
| Z | X| C| V| B| | | N | M | , | . | /|
|
||||
| | | | NaviLayer| Space(_Func) | | | Backspace | NumberLayer | | | |
|
||||
|
||||
## _Navi
|
||||
|
||||
![](https://i.imgur.com/BwDHx64.png)
|
||||
|
||||
| Mousewheel left | Mousewheel down | Mousewheel up | Mousewheel right | ESC | | | DEL | HOME | PageDown | PageUP | END |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| A(GUI) | S(Alt) | D(Ctrl) | F(Shift) | TAB | | | ENTER | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) |
|
||||
| Mouse left | Mouse down | Mouse up| Mouse right | left click | | | left click | Left | Down | Up | Right |
|
||||
| | | | | Space | | | Backspace | NumberLayer | | | |
|
||||
|
||||
## _Numb
|
||||
|
||||
![](https://i.imgur.com/lPPyUsk.png)
|
||||
|
||||
| [ | 7 | 8 | 9 | ] | | | DEL | | | | |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| ; | 4 | 5 | 6 | = | | | ENTER | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) |
|
||||
| ` | 1 | 2 | 3 | \ | | | | | | | |
|
||||
| | | | 0| - | | | Backspace | | | | |
|
||||
|
||||
## _Func
|
||||
|
||||
![](https://i.imgur.com/rz0jaoe.png)
|
||||
|
||||
| F12 | F7 | F8 | F9 | PrintScreen | | | RESET | | | | |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| F11 | F4 | F5 | F6 | ScrollLock | | | CapsLock | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) |
|
||||
| F10 | F1 | F2 | F3 | PauseBreak | | | Insert | | | | |
|
||||
| | | | NaviLayer | Space | | | Backspace | NumberLayer | | | |
|
4
keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk
Normal file
4
keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk
Normal file
@ -0,0 +1,4 @@
|
||||
BOOTMAGIC_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
COMBO_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
Loading…
Reference in New Issue
Block a user