From 1433094ebc0fe784fc3cec7b0852af2b23d4c4fc Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Wed, 21 May 2025 11:06:09 +0200 Subject: [PATCH 01/12] move to userspace --- keyboards/crkbd/keymaps/aleksbrgt/config.h | 7 ++ keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 128 +++++++++++++++++++++ keyboards/crkbd/keymaps/aleksbrgt/rules.mk | 18 +++ qmk.json | 6 +- 4 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 keyboards/crkbd/keymaps/aleksbrgt/config.h create mode 100644 keyboards/crkbd/keymaps/aleksbrgt/keymap.c create mode 100644 keyboards/crkbd/keymaps/aleksbrgt/rules.mk diff --git a/keyboards/crkbd/keymaps/aleksbrgt/config.h b/keyboards/crkbd/keymaps/aleksbrgt/config.h new file mode 100644 index 00000000..5998e551 --- /dev/null +++ b/keyboards/crkbd/keymaps/aleksbrgt/config.h @@ -0,0 +1,7 @@ +#pragma once + +#define MASTER_LEFT + +#define USE_SERIAL_PD2 + +#define COMBO_COUNT 2 diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c new file mode 100644 index 00000000..4a30bfaa --- /dev/null +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -0,0 +1,128 @@ +#include QMK_KEYBOARD_H +#include + +enum custom_layers { + BSE, // Base + NUM, // Numbers and symbols + NAV, // Navigation + MED, // Media keys + FUN, // Function keys + OTH, // "Other", caps, menu context, rctrl (rctrl is supposed to be used as the compose key https://en.wikipedia.org/wiki/Compose_key), + PRN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BSE] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | Q MED W | E | R | T | | Y | U | I | 0 | P | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | A GUI | S ALT | D CTL | F SFT | G | | H | J SFT | K CTL | L ALT | ' GUI | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | Z | X | C | V | B | | N | M | , | . | / | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // |ESC OTH|SPC NUM|TAB NAV| |ENT FUN| BSP | DEL | + // -------+-------+------- -------+-------+------- + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, RSFT_T(KC_J), LCTL_T(KC_K), RALT_T(KC_L), RGUI_T(KC_QUOT), + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + LT(OTH, KC_ESC), LT(NUM, KC_SPC), LT(NAV, KC_TAB), LT(FUN, KC_ENT), KC_BSPC, KC_DEL + ), + [NUM] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | | | ( | ) | | | [ { | 7 & | 8 * | 9 ( | ] } | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | GUI | CTL | ALT | SFT | - | | = + | 4 $ | 5 % | 6 ^ | ; | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | _ | | \ | | 1 ! | 2 @ | 3 # | ` | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // | ESC | SPC | TAB | | | 0 ) | | + // -------+-------+------- -------+-------+------- + XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_MINS, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_0, XXXXXXX + ), + [NAV] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | | | | | | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | GUI | ALT | CTL | SFT | | | | ← | ↓ | ↑ | → | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | ins | home | pgdn | pgup | end | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // | ESC | SPC | TAB | | ENT | BSPC | DEL | + // -------+-------+------- -------+-------+------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, + KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL + ), + [MED] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | | | | | | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | GUI | ALT | CTL | SFT | | | | PREV | VOL - | VOL + | NEXT | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | | | | | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // | ESC | SPC | TAB | | | PLAY | MUTE | + // -------+-------+------- -------+-------+------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_MPLY, KC_MUTE + ), + [FUN] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | | | | | | | | F 7 | F 8 | F 9 | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | GUI | ALT | CTL | SFT | | | | F 4 | F 5 | F 6 | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | F 1 | F 2 | F 3 | | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // | ESC | SPC | TAB | | | | | + // -------+-------+------- -------+-------+------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX + ), + [OTH] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | | | | | | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | CAPS | | | | | | | | | | R CTL | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | | | | APP | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // | ESC | SPC | TAB | | | | | + // -------+-------+------- -------+-------+------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RCTL, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX + ), + [PRN] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | | | | | | | | | | | | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | CAPS | | | | | | | | | | R CTL | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | | | | APP | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // | ESC | SPC | TAB | | | | | + // -------+-------+------- -------+-------+------- + KC_Q, XXXXXXX, KC_E, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + XXXXXXX, XXXXXXX, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_ESC, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; + +const uint16_t PROGMEM combo_media[] = {KC_Q, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_prn[] = {KC_Q, KC_E, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + COMBO(combo_media, MO(MED)), + COMBO(combo_prn, TG(PRN)), +}; diff --git a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk new file mode 100644 index 00000000..b62cfc83 --- /dev/null +++ b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk @@ -0,0 +1,18 @@ +AUTO_SHIFT_ENABLE = no +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = no +UNICODE_ENABLE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +RGBLIGHT_SUPPORTED = no +RGB_MATRIX_SUPPORTED = no + + +COMBO_ENABLE = yes + +BOOTLOADER = atmel-dfu + +BOOTMAGIC_ENABLE = noss +LTO_ENABLE = yes + +WPM_ENABLE = yes diff --git a/qmk.json b/qmk.json index 3afc389f..f5dcb83b 100644 --- a/qmk.json +++ b/qmk.json @@ -1,4 +1,6 @@ { - "userspace_version": "1.0", - "build_targets": [] + "userspace_version": "1.1", + "build_targets": [ + ["crkbd/rev1", "aleksbrgt"] + ] } \ No newline at end of file From 8e052d3a8216ea08063eb5e8e6a557dfc6a011a8 Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Tue, 27 May 2025 07:14:27 +0200 Subject: [PATCH 02/12] reduce combo count and reorganise layers --- keyboards/crkbd/keymaps/aleksbrgt/config.h | 2 +- keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 99 +++++++++++----------- keyboards/crkbd/keymaps/aleksbrgt/rules.mk | 15 ---- 3 files changed, 52 insertions(+), 64 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/config.h b/keyboards/crkbd/keymaps/aleksbrgt/config.h index 5998e551..23c735ab 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/config.h +++ b/keyboards/crkbd/keymaps/aleksbrgt/config.h @@ -4,4 +4,4 @@ #define USE_SERIAL_PD2 -#define COMBO_COUNT 2 +#define COMBO_COUNT 1 diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index 4a30bfaa..b90c915a 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -1,48 +1,68 @@ #include QMK_KEYBOARD_H #include -enum custom_layers { - BSE, // Base - NUM, // Numbers and symbols - NAV, // Navigation - MED, // Media keys - FUN, // Function keys - OTH, // "Other", caps, menu context, rctrl (rctrl is supposed to be used as the compose key https://en.wikipedia.org/wiki/Compose_key), - PRN +enum { + // Home + // > qwerty + // > home row with modifiers + HME, + // Numbers and symbols + // > keypad like layout on the right side + // > uses the number row key codes to easily combine numbers and symbols + // > frames the numbers with remaining symbols + NUM, + // Cursor movement + // > vi style arrow keys + // > home / end, page up / page down + CUR, + // Media keys + // > volume up, down, mute + // > previous, next, pause + MED, + // Function keys + // > F1 to F9 reuse the NUM layer numbers + // > F10 to F12 on the outer right column + FUN, + // Misc, keys that don't fit well in other layout + // > Caps Lock + // > App Menu + // > Include the right ctrl key with the intent to use it as the Compose Key + // > See https://en.wikipedia.org/wiki/Compose_key), + MSC }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BSE] = LAYOUT_split_3x5_3( + [HME] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | Q MED W | E | R | T | | Y | U | I | 0 | P | + // | Q | W | E | R | T | | Y | U | I | 0 | P | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | A GUI | S ALT | D CTL | F SFT | G | | H | J SFT | K CTL | L ALT | ' GUI | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | Z | X | C | V | B | | N | M | , | . | / | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // |ESC OTH|SPC NUM|TAB NAV| |ENT FUN| BSP | DEL | + // |ESC MED|SPC NUM|TAB MSC| |ENT CUR|BSP FUN| DEL | // -------+-------+------- -------+-------+------- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, RSFT_T(KC_J), LCTL_T(KC_K), RALT_T(KC_L), RGUI_T(KC_QUOT), + LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - LT(OTH, KC_ESC), LT(NUM, KC_SPC), LT(NAV, KC_TAB), LT(FUN, KC_ENT), KC_BSPC, KC_DEL + LT(MED, KC_ESC), LT(NUM, KC_SPC), LT(MSC, KC_TAB), LT(CUR, KC_ENT), LT(FUN, KC_BSPC), KC_DEL ), [NUM] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | | | ( | ) | | | [ { | 7 & | 8 * | 9 ( | ] } | + // | | ( | ) | | | | [ { | 7 & | 8 * | 9 | ] } | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | GUI | CTL | ALT | SFT | - | | = + | 4 $ | 5 % | 6 ^ | ; | + // | GUI | ALT | CTRL | SFT | - | | = + | 4 $ | 5 % | 6 ^ | ; : | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | | | | _ | | \ | | 1 ! | 2 @ | 3 # | ` | + // | | | | | _ | | \ | | 1 ! | 2 @ | 3 # | ` ~ | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // | ESC | SPC | TAB | | | 0 ) | | + // | ESC | SPC | TAB | | | 0 | | // -------+-------+------- -------+-------+------- - XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, + XXXXXXX, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_MINS, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_0, XXXXXXX ), - [NAV] = LAYOUT_split_3x5_3( + [CUR] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- // | | | | | | | | | | | | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| @@ -74,11 +94,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [FUN] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | | | | | | | | F 7 | F 8 | F 9 | | + // | | | | | | | | F 7 | F 8 | F 9 | F10 | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | GUI | ALT | CTL | SFT | | | | F 4 | F 5 | F 6 | | + // | GUI | ALT | CTL | SFT | | | | F 4 | F 5 | F 6 | F11 | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | | | | | | | F 1 | F 2 | F 3 | | + // | | | | | | | | F 1 | F 2 | F 3 | F12 | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | | | // -------+-------+------- -------+-------+------- @@ -87,42 +107,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX ), - [OTH] = LAYOUT_split_3x5_3( + [MSC] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | | | | | | | | | | | | + // | | | | | | | | | | | PSCR | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | CAPS | | | | | | | | | | R CTL | + // | CAPS | | | | | | | | | | RCTL | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | | | | | | | | | | APP | + // | | CUT | COPY | PASTE | | | | | | | APP | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | | | // -------+-------+------- -------+-------+------- - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RCTL, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, + XXXXXXX, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX - ), - [PRN] = LAYOUT_split_3x5_3( - // --------------------------------------- --------------------------------------- - // | | | | | | | | | | | | - // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | CAPS | | | | | | | | | | R CTL | - // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | | | | | | | | | | APP | - // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // | ESC | SPC | TAB | | | | | - // -------+-------+------- -------+-------+------- - KC_Q, XXXXXXX, KC_E, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - XXXXXXX, XXXXXXX, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_ESC, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), + ) }; -const uint16_t PROGMEM combo_media[] = {KC_Q, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_prn[] = {KC_Q, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_ralt[] = {KC_I, KC_O, COMBO_END}; combo_t key_combos[COMBO_COUNT] = { - COMBO(combo_media, MO(MED)), - COMBO(combo_prn, TG(PRN)), + COMBO(combo_ralt, KC_RALT) }; diff --git a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk index b62cfc83..d70b592f 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk +++ b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk @@ -1,18 +1,3 @@ -AUTO_SHIFT_ENABLE = no -BACKLIGHT_ENABLE = no -RGBLIGHT_ENABLE = no -UNICODE_ENABLE = no -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -RGBLIGHT_SUPPORTED = no RGB_MATRIX_SUPPORTED = no - - COMBO_ENABLE = yes - BOOTLOADER = atmel-dfu - -BOOTMAGIC_ENABLE = noss -LTO_ENABLE = yes - -WPM_ENABLE = yes From 7024975bc7175075564f290264f4e2b8416a1f46 Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Sat, 26 Jul 2025 13:50:14 +0200 Subject: [PATCH 03/12] Change curly bracket keys --- keyboards/crkbd/keymaps/aleksbrgt/config.h | 2 ++ keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 12 ++++++------ keyboards/crkbd/keymaps/aleksbrgt/rules.mk | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/config.h b/keyboards/crkbd/keymaps/aleksbrgt/config.h index 23c735ab..af994ee8 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/config.h +++ b/keyboards/crkbd/keymaps/aleksbrgt/config.h @@ -5,3 +5,5 @@ #define USE_SERIAL_PD2 #define COMBO_COUNT 1 + +#define TAPPING_TERM 180 \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index b90c915a..9a1085bc 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -8,8 +8,8 @@ enum { HME, // Numbers and symbols // > keypad like layout on the right side - // > uses the number row key codes to easily combine numbers and symbols - // > frames the numbers with remaining symbols + // > number row key codes to easily combine numbers and symbols + // > other symbols NUM, // Cursor movement // > vi style arrow keys @@ -26,8 +26,8 @@ enum { // Misc, keys that don't fit well in other layout // > Caps Lock // > App Menu - // > Include the right ctrl key with the intent to use it as the Compose Key - // > See https://en.wikipedia.org/wiki/Compose_key), + // > Includes the right ctrl key with the intent to use it as the Compose Key + // > See https://en.wikipedia.org/wiki/Compose_key MSC }; @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NUM] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | | ( | ) | | | | [ { | 7 & | 8 * | 9 | ] } | + // | { | ( | ) | } | | | [ { | 7 & | 8 * | 9 | ] } | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | GUI | ALT | CTRL | SFT | - | | = + | 4 $ | 5 % | 6 ^ | ; : | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | 0 | | // -------+-------+------- -------+-------+------- - XXXXXXX, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_MINS, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_0, XXXXXXX diff --git a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk index d70b592f..5e69f8cb 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk +++ b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk @@ -1,3 +1,3 @@ RGB_MATRIX_SUPPORTED = no COMBO_ENABLE = yes -BOOTLOADER = atmel-dfu +BOOTLOADER = atmel-dfu \ No newline at end of file From 48a6a518e0f217748f92f23dadaa3a0e1a101626 Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Thu, 28 Aug 2025 08:56:21 +0200 Subject: [PATCH 04/12] mess around with oled --- keyboards/crkbd/keymaps/aleksbrgt/config.h | 4 +- keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 239 ++++++++++++++++++--- keyboards/crkbd/keymaps/aleksbrgt/rules.mk | 3 +- 3 files changed, 217 insertions(+), 29 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/config.h b/keyboards/crkbd/keymaps/aleksbrgt/config.h index af994ee8..42ff1a1f 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/config.h +++ b/keyboards/crkbd/keymaps/aleksbrgt/config.h @@ -6,4 +6,6 @@ #define COMBO_COUNT 1 -#define TAPPING_TERM 180 \ No newline at end of file +#define TAPPING_TERM 180 + +#define OLED_BRIGHTNESS 0 \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index 9a1085bc..ca4cc6d6 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -1,6 +1,26 @@ #include QMK_KEYBOARD_H #include +#define _KC_A LGUI_T(KC_A) +#define _KC_S LALT_T(KC_S) +#define _KC_D LCTL_T(KC_D) +#define _KC_F LSFT_T(KC_F) +#define _KC_J LSFT_T(KC_J) +#define _KC_K LCTL_T(KC_K) +#define _KC_L LALT_T(KC_L) +#define _KC_QUOT LGUI_T(KC_QUOT) + +#define _KC_ESC LT(MSC, KC_ESC) +#define _KC_SPC LT(NUM, KC_SPC) +#define _KC_TAB LT(MED, KC_TAB) +#define _KC_ENT LT(CUR, KC_ENT) +#define _KC_DEL LT(FUN, KC_DEL) + +enum custom_keycodes { + OLED_BD = SAFE_RANGE, + OLED_BU +}; + enum { // Home // > qwerty @@ -40,12 +60,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | Z | X | C | V | B | | N | M | , | . | / | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // |ESC MED|SPC NUM|TAB MSC| |ENT CUR|BSP FUN| DEL | - // -------+-------+------- -------+-------+------- - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - LT(MED, KC_ESC), LT(NUM, KC_SPC), LT(MSC, KC_TAB), LT(CUR, KC_ENT), LT(FUN, KC_BSPC), KC_DEL + // |ESC MSC|SPC NUM|TAB MED| |ENT CUR| BSP |DEL FUN| + // ------+-------+------- -------+-------+------- + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + _KC_A, _KC_S, _KC_D, _KC_F, KC_G, KC_H, _KC_J, _KC_K, _KC_L, _KC_QUOT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + _KC_ESC, _KC_SPC, _KC_TAB, _KC_ENT, KC_BSPC, _KC_DEL ), [NUM] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -57,10 +77,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | 0 | | // -------+-------+------- -------+-------+------- - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_MINS, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, - KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_0, XXXXXXX + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_MINS, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_0, XXXXXXX ), [CUR] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -72,14 +92,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | ENT | BSPC | DEL | // -------+-------+------- -------+-------+------- - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, - KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, + KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL ), [MED] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | | | | | | | | | | | | + // | | | | | | | | | OLED- | OLED+ | | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | GUI | ALT | CTL | SFT | | | | PREV | VOL - | VOL + | NEXT | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| @@ -87,10 +107,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | PLAY | MUTE | // -------+-------+------- -------+-------+------- - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_MPLY, KC_MUTE + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, OLED_BD, OLED_BU, XXXXXXX, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_MPLY, KC_MUTE ), [FUN] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -102,10 +122,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | | | // -------+-------+------- -------+-------+------- - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, - KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, - KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX ), [MSC] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -117,10 +137,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | | | // -------+-------+------- -------+-------+------- - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, - KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RCTL, - XXXXXXX, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, - KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, + KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RCTL, + XXXXXXX, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX ) }; @@ -129,3 +149,168 @@ const uint16_t PROGMEM combo_ralt[] = {KC_I, KC_O, COMBO_END}; combo_t key_combos[COMBO_COUNT] = { COMBO(combo_ralt, KC_RALT) }; + +typedef struct { + bool has_brightness_change; + uint8_t brightness_step; +} state_t; + +state_t state; + +typedef union { + uint32_t raw; + struct { + uint8_t oled_brightness; + uint32_t press_count; + }; +} user_config_t; + +user_config_t user_config; + +void keyboard_post_init_user(void) { + user_config.raw = eeconfig_read_user(); + state.has_brightness_change = false; + state.brightness_step = 10; + oled_set_brightness(user_config.oled_brightness); +} + +uint8_t get_new_brightness(int8_t change) { + if (255 < user_config.oled_brightness + change) { + return 255; + } + + if (0 > user_config.oled_brightness + change) { + return 0; + } + + return user_config.oled_brightness + change; +} + +void register_brightness_change(int8_t change) { + uint8_t new_brightness = get_new_brightness(change); + if (new_brightness != user_config.oled_brightness) { + state.has_brightness_change = true; + user_config.oled_brightness = new_brightness; + eeconfig_update_user(user_config.raw); + } +} + +int8_t _row = 0; +int8_t _col = 0; +int16_t _keycode = 0; +char _character = '?'; + +const char code_to_name[60] = { + '?', '?', '?', '?', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', '?', '?', '?' +}; + +void set_keycode_values(uint16_t keycode) { + _keycode = keycode; + _character = '?'; + if ((_keycode >= QK_MOD_TAP && _keycode <= QK_MOD_TAP_MAX) + || (_keycode >= QK_LAYER_TAP && _keycode <= QK_LAYER_TAP_MAX) + ) { + _keycode = _keycode & 0xFF; + } + + if (_keycode < 60) { + _character = code_to_name[_keycode]; + } + + if (_keycode > 99 && _keycode != 0) { + _keycode = 0; + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!record->event.pressed) { + return true; + } + + user_config.press_count += 1; + eeconfig_update_user(user_config.raw); + + _row = record->event.key.row; + _col = record->event.key.col; + set_keycode_values(keycode); + + if (99 <= _keycode) { + _keycode = 99; + } + + switch (keycode) { + case OLED_BU: + register_brightness_change(state.brightness_step); + break; + case OLED_BD: + register_brightness_change(state.brightness_step * -1); + break; + } + + return true; +} + +char* get_layer_name(void) { + switch (get_highest_layer(layer_state)) { + case HME: + return "Home"; + break; + + case NUM: + return "Numpad"; + break; + + case CUR: + return "Cursor"; + break; + + case MED: + return "Media"; + break; + + case FUN: + return "Function"; + break; + + case MSC: + return "Other"; + break; + } + + return "n/a"; +} + +bool is_current_layer_home(void) { + return HME == get_highest_layer(layer_state); +} + + +bool oled_task_user(void) { + char layer[10] = ""; + sprintf(layer, "%-9s", get_layer_name()); + oled_write_ln(layer, !is_current_layer_home()); + + led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("Caps "), led_state.caps_lock); + + char matrix[20] = ""; + sprintf(matrix, "%dx%d %02d %c %07li", _row, _col, _keycode, _character, user_config.press_count); + oled_write(matrix, false); + oled_write_ln_P(PSTR(" "), false); + + char brightness[10] = ""; + sprintf(brightness, "%03d/255 ", user_config.oled_brightness); + oled_write(brightness, state.has_brightness_change); + + if (state.has_brightness_change) { + oled_set_brightness(user_config.oled_brightness); + state.has_brightness_change = false; + } + + return false; +} diff --git a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk index 5e69f8cb..8675abc2 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk +++ b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk @@ -1,3 +1,4 @@ RGB_MATRIX_SUPPORTED = no COMBO_ENABLE = yes -BOOTLOADER = atmel-dfu \ No newline at end of file +BOOTLOADER = atmel-dfu +OLED_ENABLE = yes \ No newline at end of file From 93938ae95671688a01f6d8b60230afdcbc52376a Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Sun, 31 Aug 2025 00:39:17 +0200 Subject: [PATCH 05/12] add key code mapping for clarity --- keyboards/crkbd/keymaps/aleksbrgt/config.h | 6 - keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 213 ++------------------- keyboards/crkbd/keymaps/aleksbrgt/rules.mk | 4 +- 3 files changed, 20 insertions(+), 203 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/config.h b/keyboards/crkbd/keymaps/aleksbrgt/config.h index 42ff1a1f..d63edba9 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/config.h +++ b/keyboards/crkbd/keymaps/aleksbrgt/config.h @@ -1,11 +1,5 @@ #pragma once #define MASTER_LEFT - #define USE_SERIAL_PD2 - -#define COMBO_COUNT 1 - #define TAPPING_TERM 180 - -#define OLED_BRIGHTNESS 0 \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index ca4cc6d6..88286c0c 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -1,25 +1,19 @@ #include QMK_KEYBOARD_H #include -#define _KC_A LGUI_T(KC_A) -#define _KC_S LALT_T(KC_S) -#define _KC_D LCTL_T(KC_D) -#define _KC_F LSFT_T(KC_F) -#define _KC_J LSFT_T(KC_J) -#define _KC_K LCTL_T(KC_K) -#define _KC_L LALT_T(KC_L) -#define _KC_QUOT LGUI_T(KC_QUOT) - -#define _KC_ESC LT(MSC, KC_ESC) -#define _KC_SPC LT(NUM, KC_SPC) -#define _KC_TAB LT(MED, KC_TAB) -#define _KC_ENT LT(CUR, KC_ENT) -#define _KC_DEL LT(FUN, KC_DEL) - -enum custom_keycodes { - OLED_BD = SAFE_RANGE, - OLED_BU -}; +#define CC_A LGUI_T(KC_A) +#define CC_S LALT_T(KC_S) +#define CC_D LCTL_T(KC_D) +#define CC_F LSFT_T(KC_F) +#define CC_J LSFT_T(KC_J) +#define CC_K LCTL_T(KC_K) +#define CC_L LALT_T(KC_L) +#define CC_QUOT LGUI_T(KC_QUOT) +#define CC_ESC LT(MSC, KC_ESC) +#define CC_SPC LT(NUM, KC_SPC) +#define CC_TAB LT(MED, KC_TAB) +#define CC_ENT LT(CUR, KC_ENT) +#define CC_DEL LT(FUN, KC_DEL) enum { // Home @@ -63,9 +57,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |ESC MSC|SPC NUM|TAB MED| |ENT CUR| BSP |DEL FUN| // ------+-------+------- -------+-------+------- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - _KC_A, _KC_S, _KC_D, _KC_F, KC_G, KC_H, _KC_J, _KC_K, _KC_L, _KC_QUOT, + CC_A, CC_S, CC_D, CC_F, KC_G, KC_H, CC_J, CC_K, CC_L, CC_QUOT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - _KC_ESC, _KC_SPC, _KC_TAB, _KC_ENT, KC_BSPC, _KC_DEL + CC_ESC, CC_SPC, CC_TAB, CC_ENT, KC_BSPC, CC_DEL ), [NUM] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -99,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [MED] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | | | | | | | | | OLED- | OLED+ | | + // | | | | | | | | | | | | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | GUI | ALT | CTL | SFT | | | | PREV | VOL - | VOL + | NEXT | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| @@ -107,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | PLAY | MUTE | // -------+-------+------- -------+-------+------- - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, OLED_BD, OLED_BU, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_MPLY, KC_MUTE @@ -142,175 +136,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX ) -}; - -const uint16_t PROGMEM combo_ralt[] = {KC_I, KC_O, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - COMBO(combo_ralt, KC_RALT) -}; - -typedef struct { - bool has_brightness_change; - uint8_t brightness_step; -} state_t; - -state_t state; - -typedef union { - uint32_t raw; - struct { - uint8_t oled_brightness; - uint32_t press_count; - }; -} user_config_t; - -user_config_t user_config; - -void keyboard_post_init_user(void) { - user_config.raw = eeconfig_read_user(); - state.has_brightness_change = false; - state.brightness_step = 10; - oled_set_brightness(user_config.oled_brightness); -} - -uint8_t get_new_brightness(int8_t change) { - if (255 < user_config.oled_brightness + change) { - return 255; - } - - if (0 > user_config.oled_brightness + change) { - return 0; - } - - return user_config.oled_brightness + change; -} - -void register_brightness_change(int8_t change) { - uint8_t new_brightness = get_new_brightness(change); - if (new_brightness != user_config.oled_brightness) { - state.has_brightness_change = true; - user_config.oled_brightness = new_brightness; - eeconfig_update_user(user_config.raw); - } -} - -int8_t _row = 0; -int8_t _col = 0; -int16_t _keycode = 0; -char _character = '?'; - -const char code_to_name[60] = { - '?', '?', '?', '?', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', - '#', ';', '\'', '`', ',', '.', '/', '?', '?', '?' -}; - -void set_keycode_values(uint16_t keycode) { - _keycode = keycode; - _character = '?'; - if ((_keycode >= QK_MOD_TAP && _keycode <= QK_MOD_TAP_MAX) - || (_keycode >= QK_LAYER_TAP && _keycode <= QK_LAYER_TAP_MAX) - ) { - _keycode = _keycode & 0xFF; - } - - if (_keycode < 60) { - _character = code_to_name[_keycode]; - } - - if (_keycode > 99 && _keycode != 0) { - _keycode = 0; - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (!record->event.pressed) { - return true; - } - - user_config.press_count += 1; - eeconfig_update_user(user_config.raw); - - _row = record->event.key.row; - _col = record->event.key.col; - set_keycode_values(keycode); - - if (99 <= _keycode) { - _keycode = 99; - } - - switch (keycode) { - case OLED_BU: - register_brightness_change(state.brightness_step); - break; - case OLED_BD: - register_brightness_change(state.brightness_step * -1); - break; - } - - return true; -} - -char* get_layer_name(void) { - switch (get_highest_layer(layer_state)) { - case HME: - return "Home"; - break; - - case NUM: - return "Numpad"; - break; - - case CUR: - return "Cursor"; - break; - - case MED: - return "Media"; - break; - - case FUN: - return "Function"; - break; - - case MSC: - return "Other"; - break; - } - - return "n/a"; -} - -bool is_current_layer_home(void) { - return HME == get_highest_layer(layer_state); -} - - -bool oled_task_user(void) { - char layer[10] = ""; - sprintf(layer, "%-9s", get_layer_name()); - oled_write_ln(layer, !is_current_layer_home()); - - led_t led_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("Caps "), led_state.caps_lock); - - char matrix[20] = ""; - sprintf(matrix, "%dx%d %02d %c %07li", _row, _col, _keycode, _character, user_config.press_count); - oled_write(matrix, false); - oled_write_ln_P(PSTR(" "), false); - - char brightness[10] = ""; - sprintf(brightness, "%03d/255 ", user_config.oled_brightness); - oled_write(brightness, state.has_brightness_change); - - if (state.has_brightness_change) { - oled_set_brightness(user_config.oled_brightness); - state.has_brightness_change = false; - } - - return false; -} +}; \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk index 8675abc2..7969f5c0 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk +++ b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk @@ -1,4 +1,4 @@ RGB_MATRIX_SUPPORTED = no -COMBO_ENABLE = yes +COMBO_ENABLE = no BOOTLOADER = atmel-dfu -OLED_ENABLE = yes \ No newline at end of file +OLED_ENABLE = no \ No newline at end of file From 2d255fb1de0e8f7f1eec59fab71bfdf7d4350fcd Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Wed, 1 Oct 2025 19:09:53 +0200 Subject: [PATCH 06/12] add pointer control --- keyboards/crkbd/keymaps/aleksbrgt/config.h | 12 ++++++++++ keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 27 ++++++++++++++++++---- keyboards/crkbd/keymaps/aleksbrgt/rules.mk | 3 ++- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/config.h b/keyboards/crkbd/keymaps/aleksbrgt/config.h index d63edba9..68d81300 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/config.h +++ b/keyboards/crkbd/keymaps/aleksbrgt/config.h @@ -3,3 +3,15 @@ #define MASTER_LEFT #define USE_SERIAL_PD2 #define TAPPING_TERM 180 + +#define MK_KINETIC_SPEED +#define MOUSEKEY_OVERLAP_RESET + +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 10 +#define MOUSEKEY_INITIAL_SPEED 10 +#define MOUSEKEY_MOVE_DELTA 200 + +#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 10 +#define MOUSEKEY_WHEEL_DELAY 100 +#define MOUSEKEY_WHEEL_INTERVAL 25 diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index 88286c0c..ff88fd32 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -13,6 +13,7 @@ #define CC_SPC LT(NUM, KC_SPC) #define CC_TAB LT(MED, KC_TAB) #define CC_ENT LT(CUR, KC_ENT) +#define CC_BSP LT(MSE, KC_BSPC) #define CC_DEL LT(FUN, KC_DEL) enum { @@ -26,12 +27,15 @@ enum { // > other symbols NUM, // Cursor movement - // > vi style arrow keys + // > vim style arrow keys // > home / end, page up / page down CUR, + // Pointer movement + // > vim style navigation + MSE, // Media keys // > volume up, down, mute - // > previous, next, pause + // > previous, next, pause MED, // Function keys // > F1 to F9 reuse the NUM layer numbers @@ -59,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, CC_A, CC_S, CC_D, CC_F, KC_G, KC_H, CC_J, CC_K, CC_L, CC_QUOT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - CC_ESC, CC_SPC, CC_TAB, CC_ENT, KC_BSPC, CC_DEL + CC_ESC, CC_SPC, CC_TAB, CC_ENT, CC_BSP, CC_DEL ), [NUM] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -91,6 +95,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL ), + [MSE] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | | | | | | | | ← ← | ↓ ↓ | ↑ ↑ | → → | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | GUI | ALT | CTL | SFT | | | | ← | ↓ | ↑ | → | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | | | | | | | | | | | | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // | BTN1 | BTN2 | | | ENT | BSPC | DEL | + // -------+-------+------- -------+-------+------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_WHLL, MS_WHLD, MS_WHLU, MS_WHLR, + KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, KC_BSPC, XXXXXXX + ), [MED] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- // | | | | | | | | | | | | @@ -136,4 +155,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX ) -}; \ No newline at end of file +}; diff --git a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk index 7969f5c0..83f4b86d 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/rules.mk +++ b/keyboards/crkbd/keymaps/aleksbrgt/rules.mk @@ -1,4 +1,5 @@ RGB_MATRIX_SUPPORTED = no COMBO_ENABLE = no BOOTLOADER = atmel-dfu -OLED_ENABLE = no \ No newline at end of file +OLED_ENABLE = no +MOUSEKEY_ENABLE = yes From c66219f6c341427696148aa8c86a58803de8ae0f Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Wed, 15 Oct 2025 13:29:14 +0200 Subject: [PATCH 07/12] refine pointer control --- keyboards/crkbd/keymaps/aleksbrgt/config.h | 6 ++++-- keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/config.h b/keyboards/crkbd/keymaps/aleksbrgt/config.h index 68d81300..b8a01638 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/config.h +++ b/keyboards/crkbd/keymaps/aleksbrgt/config.h @@ -7,10 +7,12 @@ #define MK_KINETIC_SPEED #define MOUSEKEY_OVERLAP_RESET +#define MOUSEKEY_SPEED_FACTOR 7 #define MOUSEKEY_DELAY 0 #define MOUSEKEY_INTERVAL 10 -#define MOUSEKEY_INITIAL_SPEED 10 -#define MOUSEKEY_MOVE_DELTA 200 +#define MOUSEKEY_INITIAL_SPEED (5 * MOUSEKEY_SPEED_FACTOR) +#define MOUSEKEY_MOVE_DELTA (40 * MOUSEKEY_SPEED_FACTOR) +#define MOUSEKEY_BASE_SPEED (500 * MOUSEKEY_SPEED_FACTOR) #define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 10 #define MOUSEKEY_WHEEL_DELAY 100 diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index ff88fd32..1d1d08f9 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | Z | X | C | V | B | | N | M | , | . | / | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // |ESC MSC|SPC NUM|TAB MED| |ENT CUR| BSP |DEL FUN| + // |ESC MSC|SPC NUM|TAB MED| |ENT CUR|BSP MSE|DEL FUN| // ------+-------+------- -------+-------+------- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, CC_A, CC_S, CC_D, CC_F, KC_G, KC_H, CC_J, CC_K, CC_L, CC_QUOT, @@ -101,13 +101,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | GUI | ALT | CTL | SFT | | | | ← | ↓ | ↑ | → | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | | | | | | | | | | | + // | | X | C | V | | | | | | | | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | BTN1 | BTN2 | | | ENT | BSPC | DEL | // -------+-------+------- -------+-------+------- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_WHLL, MS_WHLD, MS_WHLU, MS_WHLR, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, KC_BSPC, XXXXXXX ), [MED] = LAYOUT_split_3x5_3( From 53772efb1505d7b4ee74c9b9d5ea31d2534afcec Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Fri, 17 Oct 2025 17:02:25 +0200 Subject: [PATCH 08/12] remove the insert key --- keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index 1d1d08f9..36daed1d 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -86,13 +86,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | GUI | ALT | CTL | SFT | | | | ← | ↓ | ↑ | → | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | | | | | | ins | home | pgdn | pgup | end | + // | | | | | | | | home | pgdn | pgup | end | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | ENT | BSPC | DEL | // -------+-------+------- -------+-------+------- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL ), [MSE] = LAYOUT_split_3x5_3( From d72a1577f9ec2eac00076e7afcde8c270bb6af22 Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Sat, 25 Oct 2025 19:48:24 +0200 Subject: [PATCH 09/12] add gaming layer --- keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 69 +++++++++++++++------- 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index 36daed1d..010c929f 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -17,36 +17,48 @@ #define CC_DEL LT(FUN, KC_DEL) enum { + HME, // Home // > qwerty // > home row with modifiers - HME, + + NUM, // Numbers and symbols // > keypad like layout on the right side // > number row key codes to easily combine numbers and symbols // > other symbols - NUM, - // Cursor movement - // > vim style arrow keys - // > home / end, page up / page down + CUR, + // Cursor movement + // > vim style arrow keys + // > home / end, page up / page down + + MSE, // Pointer movement // > vim style navigation - MSE, + + MED, // Media keys // > volume up, down, mute // > previous, next, pause - MED, + + FUN, // Function keys // > F1 to F9 reuse the NUM layer numbers // > F10 to F12 on the outer right column - FUN, - // Misc, keys that don't fit well in other layout - // > Caps Lock - // > App Menu - // > Includes the right ctrl key with the intent to use it as the Compose Key - // > See https://en.wikipedia.org/wiki/Compose_key - MSC + + GME, + // Gaming + // > Like the Home layer + // > No home row modifier + + MSC, + // Miscellaneous + // > keys that don't fit well in other layout + // > caps lock + // > application menu + // > includes the right ctrl key with the intent to use it as the Compose Key + // > see https://en.wikipedia.org/wiki/Compose_key }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -59,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // | Z | X | C | V | B | | N | M | , | . | / | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // |ESC MSC|SPC NUM|TAB MED| |ENT CUR|BSP MSE|DEL FUN| - // ------+-------+------- -------+-------+------- + // ------+-------+-------- -------+-------+------- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, CC_A, CC_S, CC_D, CC_F, KC_G, KC_H, CC_J, CC_K, CC_L, CC_QUOT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, @@ -140,19 +152,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX ), - [MSC] = LAYOUT_split_3x5_3( + [GME] = LAYOUT_split_3x5_3( + // --------------------------------------- --------------------------------------- + // | Q | W | E | R | T | | Y | U | I | 0 | P | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | A | S | D | F | G | | H | J | K | L | ' | + // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| + // | Z | X | C | V | B | | N | M | , | . | / | + // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- + // | ESC | SPC | TAB | | ENT | BSP | DEL | + // ------+-------+-------- -------+-------+------- + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + CC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL + ), + [MSC] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | | | | | | | | | | | PSCR | + // | | | | | | | GME | | | | PSCR | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | CAPS | | | | | | | | | | RCTL | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | CUT | COPY | PASTE | | | | | | | APP | + // | | | | | | | | | | | APP | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | | | // -------+-------+------- -------+-------+------- - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(GME), XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RCTL, - XXXXXXX, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, - KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) }; From 2bdb5819d47c8893a66f5f9eb70affd340585bc9 Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Wed, 29 Oct 2025 12:25:26 +0100 Subject: [PATCH 10/12] swap media and function layer toggle keys --- keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index 010c929f..f46de5dc 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -11,10 +11,10 @@ #define CC_QUOT LGUI_T(KC_QUOT) #define CC_ESC LT(MSC, KC_ESC) #define CC_SPC LT(NUM, KC_SPC) -#define CC_TAB LT(MED, KC_TAB) +#define CC_TAB LT(FUN, KC_TAB) #define CC_ENT LT(CUR, KC_ENT) #define CC_BSP LT(MSE, KC_BSPC) -#define CC_DEL LT(FUN, KC_DEL) +#define CC_DEL LT(MED, KC_DEL) enum { HME, @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | Z | X | C | V | B | | N | M | , | . | / | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // |ESC MSC|SPC NUM|TAB MED| |ENT CUR|BSP MSE|DEL FUN| + // |ESC MSC|SPC NUM|TAB FUN| |ENT CUR|BSP MSE|DEL MED| // ------+-------+-------- -------+-------+------- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, CC_A, CC_S, CC_D, CC_F, KC_G, KC_H, CC_J, CC_K, CC_L, CC_QUOT, From 4bf55387630ec57310a64649f56a2bb7c1cc0744 Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Wed, 29 Oct 2025 12:27:13 +0100 Subject: [PATCH 11/12] add brightness up / down and x, c and v keys on the cursor layer --- keyboards/crkbd/keymaps/aleksbrgt/keymap.c | 30 +++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c index f46de5dc..7d34b58e 100644 --- a/keyboards/crkbd/keymaps/aleksbrgt/keymap.c +++ b/keyboards/crkbd/keymaps/aleksbrgt/keymap.c @@ -85,12 +85,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | | | | | _ | | \ | | 1 ! | 2 @ | 3 # | ` ~ | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // | ESC | SPC | TAB | | | 0 | | + // | ESC | | TAB | | | 0 | | // -------+-------+------- -------+-------+------- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_MINS, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, - KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_0, XXXXXXX + KC_ESC, XXXXXXX, KC_TAB, XXXXXXX, KC_0, XXXXXXX ), [CUR] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -98,14 +98,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | GUI | ALT | CTL | SFT | | | | ← | ↓ | ↑ | → | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | | | | | | | home | pgdn | pgup | end | + // | | X | C | V | | | | home | pgdn | pgup | end | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // | ESC | SPC | TAB | | ENT | BSPC | DEL | + // | ESC | SPC | TAB | | | BSPC | DEL | // -------+-------+------- -------+-------+------- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, - KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL + XXXXXXX, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, + KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_BSPC, KC_DEL ), [MSE] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -115,12 +115,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | | X | C | V | | | | | | | | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // | BTN1 | BTN2 | | | ENT | BSPC | DEL | + // | BTN1 | BTN2 | | | | | | // -------+-------+------- -------+-------+------- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_WHLL, MS_WHLD, MS_WHLU, MS_WHLR, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, XXXXXXX, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, KC_BSPC, XXXXXXX + MS_BTN1, MS_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), [MED] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- @@ -130,20 +130,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | | | | | | | | | | | | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- - // | ESC | SPC | TAB | | | PLAY | MUTE | + // | ESC | SPC | | | | PLAY | MUTE | // -------+-------+------- -------+-------+------- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_ESC, KC_SPC, KC_TAB, XXXXXXX, KC_MPLY, KC_MUTE + KC_ESC, KC_SPC, XXXXXXX, XXXXXXX, KC_MPLY, KC_MUTE ), [FUN] = LAYOUT_split_3x5_3( // --------------------------------------- --------------------------------------- - // | | | | | | | | F 7 | F 8 | F 9 | F10 | + // | | | | | | | | F7 | F8 | F9 | F10 | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | GUI | ALT | CTL | SFT | | | | F 4 | F 5 | F 6 | F11 | + // | GUI | ALT | CTL | SFT | | | | F4 | F5 | F6 | F11 | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | | | | | | | | F 1 | F 2 | F 3 | F12 | + // | | | | | | | | F1 | F2 | F3 | F12 | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | | | // -------+-------+------- -------+-------+------- @@ -171,14 +171,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // --------------------------------------- --------------------------------------- // | | | | | | | GME | | | | PSCR | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| - // | CAPS | | | | | | | | | | RCTL | + // | CAPS | | | | | | | |BRIGHT-|BRIGHT+| RCTL | // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // | | | | | | | | | | | APP | // -------+-------+-------+-------+-------+------- -------+-------+-------+-------+-------+------- // | ESC | SPC | TAB | | | | | // -------+-------+------- -------+-------+------- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(GME), XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, - KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RCTL, + KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BRID, KC_BRIU, KC_RCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_APP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) From 56a4cbf7ff65b4e5f6073179032687e5e11cb280 Mon Sep 17 00:00:00 2001 From: aleksbrgt Date: Fri, 7 Nov 2025 20:22:06 +0100 Subject: [PATCH 12/12] remove .keep file --- keyboards/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 keyboards/.keep diff --git a/keyboards/.keep b/keyboards/.keep deleted file mode 100644 index e69de29b..00000000