Compare commits
15 Commits
2024-02-21
...
2024-05-17
| Author | SHA1 | Date | |
|---|---|---|---|
| 71886d6d74 | |||
| 498e57efaa | |||
| 7953fd664c | |||
| 50a0c6456b | |||
| 81ca318fa7 | |||
| 71255baf54 | |||
| f489152126 | |||
| 824ea2a75b | |||
| 98f879ee45 | |||
| bf829370bc | |||
| da320a4fbd | |||
| 9c299faa9b | |||
| dee1c1f7da | |||
| 07c9cab34e | |||
| b56ac10442 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,3 +4,4 @@ obj_*
|
|||||||
*.map
|
*.map
|
||||||
build/
|
build/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
.vscode/
|
||||||
@@ -22,6 +22,14 @@ enum {
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
CUSTOM_KEYCODE_START = SAFE_RANGE,
|
CUSTOM_KEYCODE_START = SAFE_RANGE,
|
||||||
|
WINDOWS,
|
||||||
|
COPY,
|
||||||
|
PASTE,
|
||||||
|
CUT,
|
||||||
|
UNDO,
|
||||||
|
REDO,
|
||||||
|
SALL,
|
||||||
|
SPOTLI,
|
||||||
M_PASS1,
|
M_PASS1,
|
||||||
M_PASS2,
|
M_PASS2,
|
||||||
M_PASS3,
|
M_PASS3,
|
||||||
@@ -41,9 +49,12 @@ enum {
|
|||||||
#define NUM_SPC LT(_NUM, KC_SPC)
|
#define NUM_SPC LT(_NUM, KC_SPC)
|
||||||
#define FUN_DEL LT(_FUN, KC_DEL)
|
#define FUN_DEL LT(_FUN, KC_DEL)
|
||||||
|
|
||||||
|
#define QWERTY DF(_QWERTY)
|
||||||
|
#define COLEMAK DF(_COLEMAK_DH)
|
||||||
|
|
||||||
// 2 LEFT THUMB KEYS
|
// 2 LEFT THUMB KEYS
|
||||||
#define FUN_TAB LT(_FUN, KC_TAB)
|
#define FUN_TAB LT(_FUN, KC_TAB)
|
||||||
// 2 RIGHT THUMB KEYS
|
// 2 RIGHT THUMB KEYS
|
||||||
#define NUM_SPC LT(_NUM, KC_SPC)
|
#define NUM_SPC LT(_NUM, KC_SPC)
|
||||||
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
// EMPTY ROW
|
// EMPTY ROW
|
||||||
#define __________________EMPTY_____________________ _______, _______, _______, _______, _______
|
#define __________________EMPTY_____________________ _______, _______, _______, _______, _______
|
||||||
// BOOTLOADER
|
// BOOTLOADER
|
||||||
#define _________________BOOT_R1____________________ _______, _______, _______, _______, QK_BOOTLOADER
|
#define _________________BOOT_R1____________________ _______, _______, QWERTY, _______, QK_BOOTLOADER
|
||||||
#define _________________BOOT_L1____________________ QK_BOOTLOADER,_______,_______,_______,_______
|
#define _________________BOOT_L1____________________ QK_BOOTLOADER,_______,COLEMAK,_______,_______
|
||||||
|
|
||||||
|
|
||||||
// _BASE
|
// _BASE
|
||||||
@@ -35,9 +35,9 @@
|
|||||||
#define __________________NAV_L2____________________ _______, _______, _______, M_PASS3, M_PASS4
|
#define __________________NAV_L2____________________ _______, _______, _______, M_PASS3, M_PASS4
|
||||||
#define __________________NAV_L3____________________ _______, _______, _______, M_PASS2, M_PASS1
|
#define __________________NAV_L3____________________ _______, _______, _______, M_PASS2, M_PASS1
|
||||||
|
|
||||||
#define __________________NAV_R1____________________ _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO
|
#define __________________NAV_R1____________________ KC_CAPS, PASTE, COPY, CUT, UNDO
|
||||||
#define __________________NAV_R2____________________ KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
#define __________________NAV_R2____________________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
|
||||||
#define __________________NAV_R3____________________ _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END
|
#define __________________NAV_R3____________________ SALL, KC_HOME, KC_PGUP, KC_PGDN, KC_END
|
||||||
|
|
||||||
|
|
||||||
// NUM
|
// NUM
|
||||||
@@ -70,4 +70,13 @@
|
|||||||
// MOUSE
|
// MOUSE
|
||||||
#define __________________MOU_R1____________________ _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO
|
#define __________________MOU_R1____________________ _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO
|
||||||
#define __________________MOU_R2____________________ KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
|
#define __________________MOU_R2____________________ KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
|
||||||
#define __________________MOU_R3____________________ KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R
|
#define __________________MOU_R3____________________ KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R
|
||||||
|
|
||||||
|
// COLEMAK-DH
|
||||||
|
#define __________________COLEML1____________________ Q_ESC, KC_W, KC_F, KC_P, KC_B
|
||||||
|
#define __________________COLEML2____________________ KC_A, KC_R, KC_S, KC_T, KC_G
|
||||||
|
#define __________________COLEML3____________________ KC_Z, KC_X, KC_C, KC_D, KC_V
|
||||||
|
|
||||||
|
#define __________________COLEMR1____________________ KC_J, KC_L, KC_U, KC_Y, KC_QUOT
|
||||||
|
#define __________________COLEMR2____________________ KC_M, KC_N, KC_E, KC_I, KC_O
|
||||||
|
#define __________________COLEMR3____________________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
_BASE,
|
_QWERTY,
|
||||||
_NAV,
|
_NAV,
|
||||||
_NUM,
|
_NUM,
|
||||||
_SYM,
|
_SYM,
|
||||||
_FUN,
|
_FUN,
|
||||||
_MUS,
|
_MUS,
|
||||||
_MOUSE
|
_MOUSE,
|
||||||
|
_COLEMAK_DH
|
||||||
} layers_t;
|
} layers_t;
|
||||||
@@ -35,7 +35,7 @@ combo_t key_combos[] = {
|
|||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT_wrapper(
|
[_QWERTY] = LAYOUT_wrapper(
|
||||||
// ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
|
// ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
|
||||||
__________________BASE_L1____________________, __________________BASE_R1____________________,
|
__________________BASE_L1____________________, __________________BASE_R1____________________,
|
||||||
// ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
|
// ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
|
||||||
@@ -44,6 +44,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
__________________BASE_L3____________________, __________________BASE_R3____________________,
|
__________________BASE_L3____________________, __________________BASE_R3____________________,
|
||||||
// └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘
|
// └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘
|
||||||
_______, _______,
|
_______, _______,
|
||||||
|
// ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐
|
||||||
|
___________THUMB_L3________, ___________THUMB_R3________
|
||||||
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
[_COLEMAK_DH] = LAYOUT_wrapper(
|
||||||
|
// ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
|
||||||
|
__________________COLEML1____________________, __________________COLEMR1____________________,
|
||||||
|
// ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
|
||||||
|
__________________COLEML2____________________, __________________COLEMR2____________________,
|
||||||
|
// ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
|
||||||
|
__________________COLEML3____________________, __________________COLEMR3____________________,
|
||||||
|
// └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘
|
||||||
|
_______, _______,
|
||||||
// ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐
|
// ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐
|
||||||
___________THUMB_L3________, ___________THUMB_R3________
|
___________THUMB_L3________, ___________THUMB_R3________
|
||||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
@@ -253,8 +266,8 @@ static void render_status(void) {
|
|||||||
oled_write_P(PSTR("\n"), false);
|
oled_write_P(PSTR("\n"), false);
|
||||||
oled_write_P(PSTR("\n"), false);
|
oled_write_P(PSTR("\n"), false);
|
||||||
switch (get_highest_layer(layer_state)) {
|
switch (get_highest_layer(layer_state)) {
|
||||||
case _BASE:
|
case _QWERTY:
|
||||||
oled_write_P(PSTR("BASE "), false);
|
oled_write_P(PSTR("QWERTY "), false);
|
||||||
break;
|
break;
|
||||||
case _NAV:
|
case _NAV:
|
||||||
oled_write_P(PSTR("NAV "), false);
|
oled_write_P(PSTR("NAV "), false);
|
||||||
@@ -291,8 +304,70 @@ bool oled_task_user(void) {
|
|||||||
|
|
||||||
#endif //OLED_ENABLE
|
#endif //OLED_ENABLE
|
||||||
|
|
||||||
|
uint8_t mod_state;
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
static bool isWindows = false;
|
||||||
|
mod_state = get_mods();
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
|
case WINDOWS:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
isWindows = !isWindows;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case COPY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_C));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_C));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case PASTE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_V));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_V));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case CUT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_X));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_X));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case UNDO:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_Z));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_Z));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case REDO:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_Y));
|
||||||
|
} else {
|
||||||
|
tap_code16(LSG(KC_Z));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case SALL:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_A));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_A));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
case M_PASS1:
|
case M_PASS1:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("P0plarLake!2023");
|
SEND_STRING("P0plarLake!2023");
|
||||||
@@ -300,12 +375,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return false;
|
return false;
|
||||||
case M_PASS2:
|
case M_PASS2:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("Thel0ve0fchrist!");
|
SEND_STRING("ThisisThel0ve0fchrist!");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case M_PASS3:
|
case M_PASS3:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("6754");
|
SEND_STRING("1029");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case M_PASS4:
|
case M_PASS4:
|
||||||
@@ -318,6 +393,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef ENCODER_ENABLE
|
#ifdef ENCODER_ENABLE
|
||||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
if (index == 0) {
|
if (index == 0) {
|
||||||
|
|||||||
0
iris-kmk/README.md
Normal file
0
iris-kmk/README.md
Normal file
28
iris-kmk/kb.py
Normal file
28
iris-kmk/kb.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import board
|
||||||
|
|
||||||
|
from kmk.extensions.LED import LED
|
||||||
|
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
|
||||||
|
from kmk.scanners import DiodeOrientation
|
||||||
|
|
||||||
|
|
||||||
|
class KMKKeyboard(_KMKKeyboard):
|
||||||
|
col_pins = (
|
||||||
|
board.GP2,
|
||||||
|
board.GP3,
|
||||||
|
board.GP29,
|
||||||
|
board.GP27,
|
||||||
|
board.GP6,
|
||||||
|
board.GP5,
|
||||||
|
)
|
||||||
|
row_pins = (
|
||||||
|
board.GP0,
|
||||||
|
board.GP1,
|
||||||
|
board.GP7,
|
||||||
|
board.GP16,
|
||||||
|
board.GP28,
|
||||||
|
)
|
||||||
|
|
||||||
|
diode_orientation = DiodeOrientation.COLUMNS
|
||||||
|
|
||||||
|
leds = LED(led_pin=[board.GP27, board.GP28])
|
||||||
|
_KMKKeyboard.extensions.append(leds)
|
||||||
23
iris-kmk/main.py
Normal file
23
iris-kmk/main.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
from kb import KMKKeyboard
|
||||||
|
|
||||||
|
from kmk.extensions.media_keys import MediaKeys
|
||||||
|
from kmk.extensions.rgb import RGB, AnimationModes
|
||||||
|
from kmk.keys import KC
|
||||||
|
from kmk.modules.encoder import EncoderHandler
|
||||||
|
from kmk.modules.holdtap import HoldTap
|
||||||
|
from kmk.modules.layers import Layers
|
||||||
|
from kmk.modules.split import Split, SplitType
|
||||||
|
|
||||||
|
keyboard = KMKKeyboard()
|
||||||
|
keyboard.debug_enabled = True
|
||||||
|
|
||||||
|
keyboard.modules.append(Layers())
|
||||||
|
keyboard.modules.append(HoldTap())
|
||||||
|
keyboard.extensions.append(MediaKeys())
|
||||||
|
|
||||||
|
keyboard.keymap = [
|
||||||
|
[KC.A,]
|
||||||
|
]
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
keyboard.go()
|
||||||
160
iris/keymap.c
160
iris/keymap.c
@@ -36,7 +36,7 @@ combo_t key_combos[] = {
|
|||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT_wrapper(
|
[_QWERTY] = LAYOUT_wrapper(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
@@ -44,21 +44,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
KC_LCTL, __________________BASE_L2____________________, __________________BASE_R2____________________, _______,
|
KC_LCTL, __________________BASE_L2____________________, __________________BASE_R2____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
KC_LSFT, __________________BASE_L3____________________,AS_TOGG, _______, __________________BASE_R3____________________, KC_RSFT,
|
KC_LSFT, __________________BASE_L3____________________,SPOTLI, _______, __________________BASE_R3____________________, KC_RSFT,
|
||||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
___________THUMB_L3________, ___________THUMB_R3________
|
___________THUMB_L3________, ___________THUMB_R3________
|
||||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
|
[_COLEMAK_DH] = LAYOUT_wrapper(
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, KC_LPAD, SPOTLI, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, __________________COLEML1____________________, __________________COLEMR1____________________, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, __________________COLEML2____________________, __________________COLEMR2____________________, _______,
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, __________________COLEML3____________________, SPOTLI, _______, __________________COLEMR3____________________, _______,
|
||||||
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
|
___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__
|
||||||
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
[_NAV] = LAYOUT_wrapper(
|
[_NAV] = LAYOUT_wrapper(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
_______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, RGB_TOG,
|
_______, _______, _______, _______, _______, KC_LPAD, SPOTLI, _______, _______, _______, _______, RGB_TOG,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________EMPTY_____________________, __________________NAV_R1____________________, _______,
|
_______, __________________EMPTY_____________________, __________________NAV_R1____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________NAV_L2____________________, __________________NAV_R2____________________, _______,
|
_______, __________________NAV_L2____________________, __________________NAV_R2____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________NAV_L3____________________, _______, _______, __________________NAV_R3____________________, _______,
|
_______, __________________NAV_L3____________________, WINDOWS, _______, __________________NAV_R3____________________, _______,
|
||||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
___________THUMB_L3________, ___________THUMB_R3________
|
___________THUMB_L3________, ___________THUMB_R3________
|
||||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
@@ -66,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_NUM] = LAYOUT_wrapper(
|
[_NUM] = LAYOUT_wrapper(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
_______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, KC_LPAD, SPOTLI, _______, _______, _______, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________NUM_L1____________________, _________________BOOT_R1____________________, _______,
|
_______, __________________NUM_L1____________________, _________________BOOT_R1____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
@@ -80,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_SYM] = LAYOUT_wrapper(
|
[_SYM] = LAYOUT_wrapper(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
_______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, KC_LPAD, SPOTLI, _______, _______, _______, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________SYM_L1____________________, __________________EMPTY_____________________, _______,
|
_______, __________________SYM_L1____________________, __________________EMPTY_____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
@@ -94,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_FUN] = LAYOUT_wrapper(
|
[_FUN] = LAYOUT_wrapper(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
_______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, KC_LPAD, SPOTLI, _______, _______, _______, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________FUN_L1____________________, _________________BOOT_R1____________________, _______,
|
_______, __________________FUN_L1____________________, _________________BOOT_R1____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
@@ -108,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_MUS] = LAYOUT_wrapper(
|
[_MUS] = LAYOUT_wrapper(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
_______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, KC_LPAD, SPOTLI, _______, _______, _______, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, _________________BOOT_L1____________________, __________________EMPTY_____________________, _______,
|
_______, _________________BOOT_L1____________________, __________________EMPTY_____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
@@ -122,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_MOUSE] = LAYOUT_wrapper(
|
[_MOUSE] = LAYOUT_wrapper(
|
||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
_______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, KC_LPAD, SPOTLI, _______, _______, _______, _______, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________EMPTY_____________________, __________________MOU_R1____________________, _______,
|
_______, __________________EMPTY_____________________, __________________MOU_R1____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
@@ -135,9 +149,70 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
uint8_t mod_state;
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
static bool isWindows = false;
|
||||||
|
mod_state = get_mods();
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
|
case WINDOWS:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
isWindows = !isWindows;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case COPY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_C));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_C));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case PASTE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_V));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_V));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case CUT:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_X));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_X));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case UNDO:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_Z));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_Z));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case REDO:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_Y));
|
||||||
|
} else {
|
||||||
|
tap_code16(LSG(KC_Z));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case SALL:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (isWindows) {
|
||||||
|
tap_code16(LCTL(KC_A));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_A));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
case M_PASS1:
|
case M_PASS1:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("P0plarLake!2023");
|
SEND_STRING("P0plarLake!2023");
|
||||||
@@ -145,29 +220,86 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
return false;
|
return false;
|
||||||
case M_PASS2:
|
case M_PASS2:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("Thel0ve0fchrist!");
|
SEND_STRING("CindieVerano!2024");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case M_PASS3:
|
case M_PASS3:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("6754");
|
SEND_STRING("1029");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case M_PASS4:
|
case M_PASS4:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("10242677");
|
SEND_STRING("ThisisThel0ve0fchrist!");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
case SPOTLI:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
tap_code16(LGUI(KC_SPACE));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||||
[_BASE] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
[_QWERTY] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||||
[_NAV] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
|
[_NAV] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
|
||||||
[_NUM] = { ENCODER_CCW_CW(C(KC_LEFT), C(KC_RIGHT)), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(KC_B, KC_B) },
|
[_NUM] = { ENCODER_CCW_CW(C(KC_LEFT), C(KC_RIGHT)), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(KC_B, KC_B) },
|
||||||
[_SYM] = { ENCODER_CCW_CW(C(KC_TAB), S(C(KC_TAB))), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) },
|
[_SYM] = { ENCODER_CCW_CW(C(KC_TAB), S(C(KC_TAB))), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) },
|
||||||
[_MOUSE] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) },
|
[_MOUSE] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) },
|
||||||
[_FUN] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) },
|
[_FUN] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) },
|
||||||
[_MUS] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) },
|
[_MUS] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(KC_B, KC_B) },
|
||||||
|
[_COLEMAK_DH] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_A, KC_A), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Onboard LED
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
// Configure LED
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
// Initialize RGB to static black
|
||||||
|
rgblight_enable_noeeprom();
|
||||||
|
rgblight_sethsv_noeeprom(HSV_BLACK);
|
||||||
|
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Change LED
|
||||||
|
void housekeeping_task_user(void) {
|
||||||
|
// Caps lock status
|
||||||
|
if (host_keyboard_led_state().caps_lock) {
|
||||||
|
rgblight_setrgb_at(4, 4, 0, 0);
|
||||||
|
} else {
|
||||||
|
// Layers
|
||||||
|
switch (get_highest_layer(layer_state | default_layer_state)) {
|
||||||
|
case 0:
|
||||||
|
rgblight_setrgb_at(4, 4, 4, 0);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
rgblight_setrgb_at(4, 4, 4, 0);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
rgblight_setrgb_at(4, 4, 4, 0);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
rgblight_setrgb_at(4, 4, 4, 0);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
rgblight_setrgb_at(0, 0, 4, 0);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
rgblight_setrgb_at(0, 4, 0, 0);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
rgblight_setrgb_at(0, 0, 4, 0);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
rgblight_setrgb_at(0, 0, 4, 0);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
rgblight_setrgb_at(0, 0, 4, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user