[keyboard] tominabox1/le_chiffre refactor pt 1 (#21567)

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
This commit is contained in:
Less/Rikki 2023-07-25 02:29:07 -04:00 committed by GitHub
parent e44b5edf5e
commit 14c2e553e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 240 additions and 360 deletions

View file

@ -15,18 +15,10 @@
*/
#include QMK_KEYBOARD_H
enum layers{
_BASE,
_NUM_SYM,
_NAV
};
enum combo_events {
COMBO_BSPC,
COMBO_NUMBAK,
COMBO_TAB,
COMBO_ESC,
COMBO_DEL,
enum layers {
_BASE,
_NUM_SYM,
_NAV
};
#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC)
@ -39,6 +31,7 @@ enum combo_events {
#define KC_AL RALT_T(KC_L)
#define KC_GSCLN RGUI_T(KC_SCLN)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P,
@ -59,54 +52,58 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_MINS, KC_INT1, KC_COMM, KC_DOT, KC_BSLS,
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
),
)
};
// clang-format on
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
return true;
}
#ifdef COMBO_ENABLE
const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END};
const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END};
const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
combo_t key_combos[] = {
[COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
[COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
[COMBO_TAB] = COMBO(combo_tab,KC_TAB),
[COMBO_ESC] = COMBO(combo_esc,KC_ESC),
[COMBO_DEL] = COMBO(combo_del,KC_DEL),
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BASE] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV) },
[_NUM_SYM] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U) },
[_NAV] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }
};
#endif
#ifdef OLED_ENABLE //Special thanks to Sickbabies for this great OLED widget!
#ifdef COMBO_ENABLE
enum combo_events {
COMBO_BSPC,
COMBO_NUMBAK,
COMBO_TAB,
COMBO_ESC,
COMBO_DEL,
};
const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END};
const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END};
const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
combo_t key_combos[] = {
[COMBO_BSPC] = COMBO(combo_bspc, KC_BSPC),
[COMBO_NUMBAK] = COMBO(combo_numbak, KC_BSPC),
[COMBO_TAB] = COMBO(combo_tab, KC_TAB),
[COMBO_ESC] = COMBO(combo_esc, KC_ESC),
[COMBO_DEL] = COMBO(combo_del, KC_DEL)
};
#endif
#ifdef OLED_ENABLE // Special thanks to Sickbabies for this great OLED widget!
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_90; // rotates for proper orientation
return OLED_ROTATION_90; // rotates for proper orientation
}
void render_lechiffre_logo(void) {
static const char PROGMEM lechiffre_logo[] = {
// 'lechiffre_logo', 32x20px
0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08,
0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28,
0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00,
0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00,
0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00,
0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00
};
// 'lechiffre_logo', 32x20px
0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08,
0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28,
0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00,
0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00,
0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00,
0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00};
oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo));
oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo));
}
static void render_layer_status(void) {
@ -161,7 +158,7 @@ void update_log(void) {
}
}
//Text only renders
// Text only renders
void render_keylogger_status(void) {
oled_write_P(PSTR("-----"), false);
oled_write(keylog_str, false);
@ -170,15 +167,15 @@ void render_keylogger_status(void) {
void render_keylock_status(led_t led_state) {
oled_write_P(PSTR("-----"), false);
oled_write_P(PSTR("C"), led_state.caps_lock);
oled_write_P(PSTR(" "), false);
oled_write_P(PSTR(" "), false);
oled_write_P(PSTR("N"), led_state.num_lock);
oled_write_P(PSTR(" "), false);
oled_write_P(PSTR(" "), false);
oled_write_P(PSTR("S"), led_state.scroll_lock);
//oled_write_ln_P(PSTR(" "), false);
// oled_write_ln_P(PSTR(" "), false);
}
void render_mod_status(uint8_t modifiers) {
oled_write_P(PSTR("-----"), false);
oled_write_P(PSTR("-----"), false);
oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT));
oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL));
@ -187,19 +184,19 @@ void render_mod_status(uint8_t modifiers) {
bool oled_task_user(void) {
render_lechiffre_logo();
oled_set_cursor(0,3);
render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
render_mod_status(get_mods()|get_oneshot_mods());
render_keylock_status(host_keyboard_led_state());
render_keylogger_status();
oled_set_cursor(0, 3);
render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
render_mod_status(get_mods() | get_oneshot_mods());
render_keylock_status(host_keyboard_led_state());
render_keylogger_status();
return false;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
add_keylog(keycode);
add_keylog(keycode);
}
return true;
}
}
#endif