add key code mapping for clarity

This commit is contained in:
aleksbrgt 2025-08-31 00:39:17 +02:00
commit 93938ae956
3 changed files with 20 additions and 203 deletions

View file

@ -1,11 +1,5 @@
#pragma once #pragma once
#define MASTER_LEFT #define MASTER_LEFT
#define USE_SERIAL_PD2 #define USE_SERIAL_PD2
#define COMBO_COUNT 1
#define TAPPING_TERM 180 #define TAPPING_TERM 180
#define OLED_BRIGHTNESS 0

View file

@ -1,25 +1,19 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#include <stdio.h> #include <stdio.h>
#define _KC_A LGUI_T(KC_A) #define CC_A LGUI_T(KC_A)
#define _KC_S LALT_T(KC_S) #define CC_S LALT_T(KC_S)
#define _KC_D LCTL_T(KC_D) #define CC_D LCTL_T(KC_D)
#define _KC_F LSFT_T(KC_F) #define CC_F LSFT_T(KC_F)
#define _KC_J LSFT_T(KC_J) #define CC_J LSFT_T(KC_J)
#define _KC_K LCTL_T(KC_K) #define CC_K LCTL_T(KC_K)
#define _KC_L LALT_T(KC_L) #define CC_L LALT_T(KC_L)
#define _KC_QUOT LGUI_T(KC_QUOT) #define CC_QUOT LGUI_T(KC_QUOT)
#define CC_ESC LT(MSC, KC_ESC)
#define _KC_ESC LT(MSC, KC_ESC) #define CC_SPC LT(NUM, KC_SPC)
#define _KC_SPC LT(NUM, KC_SPC) #define CC_TAB LT(MED, KC_TAB)
#define _KC_TAB LT(MED, KC_TAB) #define CC_ENT LT(CUR, KC_ENT)
#define _KC_ENT LT(CUR, KC_ENT) #define CC_DEL LT(FUN, KC_DEL)
#define _KC_DEL LT(FUN, KC_DEL)
enum custom_keycodes {
OLED_BD = SAFE_RANGE,
OLED_BU
};
enum { enum {
// Home // 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| // |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_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_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( [NUM] = LAYOUT_split_3x5_3(
// --------------------------------------- --------------------------------------- // --------------------------------------- ---------------------------------------
@ -99,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
), ),
[MED] = LAYOUT_split_3x5_3( [MED] = LAYOUT_split_3x5_3(
// --------------------------------------- --------------------------------------- // --------------------------------------- ---------------------------------------
// | | | | | | | | | OLED- | OLED+ | | // | | | | | | | | | | | |
// |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------| // |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
// | GUI | ALT | CTL | SFT | | | | PREV | VOL - | VOL + | NEXT | // | 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 | // | 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, 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, 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, KC_TAB, XXXXXXX, KC_MPLY, KC_MUTE
@ -143,174 +137,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_SPC, KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX 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;
}

View file

@ -1,4 +1,4 @@
RGB_MATRIX_SUPPORTED = no RGB_MATRIX_SUPPORTED = no
COMBO_ENABLE = yes COMBO_ENABLE = no
BOOTLOADER = atmel-dfu BOOTLOADER = atmel-dfu
OLED_ENABLE = yes OLED_ENABLE = no