|
|
@ -1,310 +1,61 @@ |
|
|
|
#include QMK_KEYBOARD_H |
|
|
|
|
|
|
|
// Defines names for use in layer keycodes and the keymap |
|
|
|
enum layer_names { |
|
|
|
_QWERTY, |
|
|
|
_LOWER, |
|
|
|
_RAISE, |
|
|
|
_ADJUST |
|
|
|
}; |
|
|
|
enum layer_names { _QWERTY, _LAYER1, _LAYER2, _LAYER3 }; |
|
|
|
|
|
|
|
#define LOWER MO(_LOWER) |
|
|
|
#define RAISE MO(_RAISE) |
|
|
|
// tab esc tap dance |
|
|
|
enum { TD_TAB_ESC = 0 }; |
|
|
|
|
|
|
|
// Defines for task manager and such |
|
|
|
#define CALTDEL LCTL(LALT(KC_DEL)) |
|
|
|
#define TSKMGR LCTL(LSFT(KC_ESC)) |
|
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
|
|
|
|
|
|
/* Qwerty |
|
|
|
* |
|
|
|
* ,----------------------------------. ,----------------------------------. |
|
|
|
* | Q | W | E | R | T | | Y | U | I | O | P | |
|
|
|
* |------+------+------+------+------| |------+------+------+------+------| |
|
|
|
* | A | S | D | F | G | | H | J | K | L | ; | |
|
|
|
* |------+------+------+------+------| |------+------+------+------+------| |
|
|
|
* | Z | X | C | V | B | | N | M | , | . | / | |
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
* ,--------------------. ,--------------------. |
|
|
|
* | Ctrl | LOWER| Space| |BckSpc| RAISE| Shift| |
|
|
|
* `--------------------' `--------------------. |
|
|
|
*/ |
|
|
|
[_QWERTY] = LAYOUT_split_3x5_3( |
|
|
|
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_SCLN, |
|
|
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, |
|
|
|
KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT) |
|
|
|
), |
|
|
|
|
|
|
|
/* Raise |
|
|
|
* |
|
|
|
* ,----------------------------------. ,----------------------------------. |
|
|
|
* | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
|
|
|
* |------+------+------+------+------| |------+------+------+------+------| |
|
|
|
* | Tab | Left | Down | Up | Right| | | - | = | [ | ] | |
|
|
|
* |------+------+------+------+------| |------+------+------+------+------| |
|
|
|
* | Ctrl| ` | GUI | Alt | | | | | | \ | ' | |
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
* ,--------------------. ,--------------------. |
|
|
|
* | | LOWER| | | | RAISE| | |
|
|
|
* `--------------------' `--------------------. |
|
|
|
*/ |
|
|
|
[_RAISE] = LAYOUT_split_3x5_3( |
|
|
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, |
|
|
|
KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, |
|
|
|
KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, |
|
|
|
_______, _______, _______, _______, _______, _______ |
|
|
|
), |
|
|
|
|
|
|
|
/* Lower |
|
|
|
* |
|
|
|
* ,----------------------------------. ,----------------------------------. |
|
|
|
* | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
|
|
|
* |------+------+------+------+------| |------+------+------+------+------| |
|
|
|
* | Esc | | | | | | | _ | + | { | } | |
|
|
|
* |------+------+------+------+------| |------+------+------+------+------| |
|
|
|
* | Caps| ~ | | | | | | | | | | " | |
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
* ,--------------------. ,--------------------. |
|
|
|
* | | LOWER| | | | RAISE| Del | |
|
|
|
* `--------------------' `--------------------. |
|
|
|
*/ |
|
|
|
[_LOWER] = LAYOUT_split_3x5_3( |
|
|
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, |
|
|
|
KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, |
|
|
|
KC_CAPS, KC_TILD, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_DQT, |
|
|
|
_______, _______, _______, KC_ENT, _______, KC_DEL |
|
|
|
), |
|
|
|
|
|
|
|
/* Adjust (Lower + Raise) |
|
|
|
* |
|
|
|
* ,----------------------------------. ,----------------------------------. |
|
|
|
* | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |
|
|
|
* |------+------+------+------+------| |------+------+------+------+------| |
|
|
|
* | F11 | F12 | | | | | | | |Taskmg|caltde| |
|
|
|
* |------+------+------+------+------| |------+------+------+------+------| |
|
|
|
* | Reset| | | | | | | | | | | |
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
* ,--------------------. ,--------------------. |
|
|
|
* | | LOWER| | | | RAISE| | |
|
|
|
* `--------------------' `--------------------. |
|
|
|
*/ |
|
|
|
[_ADJUST] = LAYOUT_split_3x5_3( |
|
|
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, |
|
|
|
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, TSKMGR, CALTDEL, |
|
|
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
|
|
|
_______, _______, _______, _______, _______, _______ |
|
|
|
) |
|
|
|
}; |
|
|
|
|
|
|
|
layer_state_t layer_state_set_user(layer_state_t state) { |
|
|
|
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); |
|
|
|
} |
|
|
|
|
|
|
|
uint16_t rgb_edit_timer = 0; |
|
|
|
uint16_t last_rgb_char = 0; |
|
|
|
|
|
|
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
|
|
|
switch(keycode) { |
|
|
|
case RGB_TOG: |
|
|
|
case RGB_MOD: |
|
|
|
case RGB_HUD: |
|
|
|
case RGB_HUI: |
|
|
|
case RGB_SAD: |
|
|
|
case RGB_SAI: |
|
|
|
case RGB_VAI: |
|
|
|
case RGB_VAD: |
|
|
|
rgb_edit_timer = timer_read(); |
|
|
|
last_rgb_char = keycode; |
|
|
|
return true; |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef OLED_ENABLE |
|
|
|
|
|
|
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) { |
|
|
|
return OLED_ROTATION_180; |
|
|
|
} |
|
|
|
|
|
|
|
void render_default_layer_state(void) { |
|
|
|
oled_write_P(PSTR("Layout: "), false); |
|
|
|
switch (get_highest_layer(default_layer_state)) { |
|
|
|
case _QWERTY: |
|
|
|
oled_write_ln_P(PSTR("Qwerty"), false); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef RGBLIGHT_ENABLE |
|
|
|
bool cleared = false; |
|
|
|
void render_rgb_state(void) { |
|
|
|
if(!rgblight_get_mode()) { |
|
|
|
if(!cleared) { |
|
|
|
oled_clear(); |
|
|
|
cleared = true; |
|
|
|
void tab_esc(qk_tap_dance_state_t *state, void *user_data) { |
|
|
|
if (state->count == 1) { |
|
|
|
if (state->interrupted || !state->pressed) { |
|
|
|
register_code(KC_ESC); |
|
|
|
} else { |
|
|
|
register_code(KC_TAB); |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
cleared = false; |
|
|
|
uint8_t width = (OLED_DISPLAY_WIDTH/OLED_FONT_WIDTH)-10; |
|
|
|
uint8_t hue = (rgblight_get_hue()*width/255), |
|
|
|
sat = (rgblight_get_sat()*width/255), |
|
|
|
val = (rgblight_get_val()*width/255); |
|
|
|
bool changing_hue = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_HUI || last_rgb_char == RGB_HUD); |
|
|
|
bool changing_sat = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_SAI || last_rgb_char == RGB_SAD); |
|
|
|
bool changing_val = timer_elapsed(rgb_edit_timer) < 1000 && (last_rgb_char == RGB_VAI || last_rgb_char == RGB_VAD); |
|
|
|
|
|
|
|
uint8_t i; |
|
|
|
|
|
|
|
oled_write_ln_P(PSTR(""), false); |
|
|
|
|
|
|
|
oled_write_P(PSTR("Hue: ["), changing_hue); |
|
|
|
for(i = 0; i < width; ++i) { |
|
|
|
oled_write_P(i<hue?PSTR("-"):i==hue?PSTR("|"):PSTR(" "), changing_hue); |
|
|
|
} |
|
|
|
oled_write_P(PSTR("]"), changing_hue); |
|
|
|
oled_write_P(PSTR("Sat: ["), changing_sat); |
|
|
|
for(i = 0; i < width; ++i) { |
|
|
|
oled_write_P(i<sat?PSTR("-"):i==sat?PSTR("|"):PSTR(" "), changing_sat); |
|
|
|
} |
|
|
|
oled_write_P(PSTR("]"), changing_sat); |
|
|
|
oled_write_P(PSTR("Bri: ["), changing_val); |
|
|
|
for(i = 0; i < width; ++i) { |
|
|
|
oled_write_P(i<val?PSTR("-"):i==val?PSTR("|"):PSTR(" "), changing_val); |
|
|
|
} |
|
|
|
oled_write_P(PSTR("]"), changing_val); |
|
|
|
reset_tap_dance(state); |
|
|
|
} |
|
|
|
#endif // RGBLIGHT_ENABLE |
|
|
|
qk_tap_dance_action_t tap_dance_actions[] = {[TD_TAB_ESC] = ACTION_TAP_DANCE_FN(tab_esc)}; |
|
|
|
|
|
|
|
void render_layer_state(void) { |
|
|
|
oled_write_P(PSTR("Layer: "), false); |
|
|
|
switch (get_highest_layer(layer_state)) { |
|
|
|
case _QWERTY: |
|
|
|
oled_write_ln_P(PSTR("Base"), false); |
|
|
|
break; |
|
|
|
case _LOWER: |
|
|
|
oled_write_ln_P(PSTR("Lower"), false); |
|
|
|
break; |
|
|
|
case _RAISE: |
|
|
|
oled_write_ln_P(PSTR("Raise"), false); |
|
|
|
break; |
|
|
|
case _ADJUST: |
|
|
|
oled_write_ln_P(PSTR("Adjust"), false); |
|
|
|
break; |
|
|
|
default: |
|
|
|
oled_write_ln_P(PSTR("Unknown"), false); |
|
|
|
} |
|
|
|
} |
|
|
|
#define TD_RS TD(TD_TAB_ESC); |
|
|
|
|
|
|
|
void render_keylock_status(led_t led_state) { |
|
|
|
oled_write_P(PSTR("Lock: "), false); |
|
|
|
oled_write_P(PSTR("123"), led_state.num_lock); |
|
|
|
oled_write_P(PSTR(" "), false); |
|
|
|
oled_write_ln_P(led_state.caps_lock?PSTR("ABC"):PSTR("abc"), led_state.caps_lock); |
|
|
|
} |
|
|
|
|
|
|
|
void render_mod_status(uint8_t modifiers) { |
|
|
|
oled_write_P(PSTR("Mods: "), false); |
|
|
|
oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); |
|
|
|
oled_write_P(PSTR(" "), false); |
|
|
|
oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL)); |
|
|
|
oled_write_P(PSTR(" "), false); |
|
|
|
oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT)); |
|
|
|
oled_write_P(PSTR(" "), false); |
|
|
|
oled_write_ln_P(PSTR("W"), (modifiers & MOD_MASK_GUI)); |
|
|
|
} |
|
|
|
#define LT_1L LT(1, KC_F); |
|
|
|
#define LT_2L LT(2, KC_D); |
|
|
|
#define LT_3L LT(3, KC_S); |
|
|
|
#define LT_4L LT(4, KC_A); |
|
|
|
|
|
|
|
static void render_status(void) { |
|
|
|
// Host Keyboard Layer Status |
|
|
|
render_default_layer_state(); |
|
|
|
render_layer_state(); |
|
|
|
render_keylock_status(host_keyboard_led_state()); |
|
|
|
render_mod_status(get_mods() | get_oneshot_mods()); |
|
|
|
#ifdef RGBLIGHT_ENABLE |
|
|
|
render_rgb_state(); |
|
|
|
#endif // RGBLIGHT_ENABLE |
|
|
|
} |
|
|
|
#define LT_1R LT(1, KC_J); |
|
|
|
#define LT_2R LT(2, KC_K); |
|
|
|
#define LT_3R LT(3, KC_L); |
|
|
|
#define LT_4R LT(4, KC_SCLN); |
|
|
|
|
|
|
|
static void render_logo(void) { |
|
|
|
static const char PROGMEM logo[] = { |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x1c, 0x1c, 0x38, 0xf8, |
|
|
|
0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, |
|
|
|
0x03, 0x1f, 0x7f, 0xfe, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x87, 0x9f, 0x3f, 0xfc, 0xf0, |
|
|
|
0xe0, 0xc0, 0x00, 0x01, 0x07, 0x0f, 0x3f, 0x3f, 0x7f, 0xfe, 0xfe, 0xee, 0xce, 0xfe, 0x8e, 0x0e, |
|
|
|
0xfe, 0x8e, 0x0e, 0xfe, 0x8e, 0x0e, 0xfe, 0xfe, 0x7e, 0xee, 0xdc, 0x9c, 0x38, 0x78, 0xf0, 0xe0, |
|
|
|
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf7, 0xe3, 0xc3, 0xc7, 0x8f, 0x0e, 0x1f, |
|
|
|
0x1f, 0x3f, 0x7f, 0x7f, 0xfe, 0xfc, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, |
|
|
|
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe7, 0xff, 0xdb, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, |
|
|
|
0x1f, 0xff, 0xfe, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xfc, 0xff, 0xff, 0x8f, 0x8f, 0x0f, 0x0f, 0x0f, 0x0f, |
|
|
|
0x0e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0f, 0x0f, 0x0c, 0x08, 0x0f, 0x0c, 0x08, |
|
|
|
0x0f, 0x0c, 0x08, 0x0f, 0x0c, 0x08, 0x0f, 0x0f, 0x0e, 0x07, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0x40, |
|
|
|
0x01, 0x03, 0x07, 0x1f, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, |
|
|
|
0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xf3, 0xf3, 0x03, 0x03, 0x03, 0x03, |
|
|
|
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xf3, 0xff, 0xff, 0x9f, 0x8f, 0x80, 0x80, 0xc0, 0xf0, 0xfc, |
|
|
|
0x7e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0xce, 0xce, 0xef, 0x67, 0x67, 0x6f, 0x6f, 0xef, 0xee, |
|
|
|
0xce, 0x8e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60, |
|
|
|
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfc, 0xff, |
|
|
|
0xbf, 0x83, 0x8f, 0xff, 0xff, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, |
|
|
|
0x1c, 0x0c, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xfc, 0x1c, 0x0e, 0x06, |
|
|
|
0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0c, 0x06, 0x06, 0x06, |
|
|
|
0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x33, 0x33, 0x33, 0x33, 0x33, 0x31, |
|
|
|
0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0xff, |
|
|
|
0xef, 0xc7, 0x80, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x1b, 0x39, 0x70, 0xf0, |
|
|
|
0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3f, 0x3f, 0x1f, 0x01, |
|
|
|
0x01, 0x01, 0x01, 0x01, 0x07, 0x3f, 0x3f, 0x3c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1c, 0x38, 0x30, |
|
|
|
0x30, 0x30, 0x30, 0x38, 0x18, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x3f, |
|
|
|
0x1f, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x1f, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x1f, |
|
|
|
0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
|
|
|
}; |
|
|
|
#define MT_WCL LGUI_T(KC_CAPS); |
|
|
|
#define MT_GRE RALT_T(KC_ENTER); |
|
|
|
#define MT_CBS LCTL_T(KC_BSPC); |
|
|
|
#define MT_SSP LSFT_T(KC_SPC); |
|
|
|
#define MT_ADL LALT_T(KC_DEL); |
|
|
|
|
|
|
|
oled_write_raw_P(logo, 1024); |
|
|
|
} |
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
|
|
|
|
|
|
bool oled_task_user(void) { |
|
|
|
if (is_keyboard_master()) { |
|
|
|
render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) |
|
|
|
} |
|
|
|
else { |
|
|
|
render_logo(); |
|
|
|
} |
|
|
|
return false; |
|
|
|
[_QWERTY] = LAYOUT_split_3x5_3( |
|
|
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, |
|
|
|
LT_4L, LT_3L, LT_2L, LT_1L, KC_G, KC_H, LT_1R, LT_2R, LT_3R, LT_4R, |
|
|
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_LBRC, KC_QUOT, KC_NUHS, |
|
|
|
MT_WCL, MT_GRE, TD_RS, MT_CBS, MT_SSP, MT_ADL), |
|
|
|
[_LAYER1] = LAYOUT_split_3x5_3( |
|
|
|
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_SCLN, |
|
|
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), |
|
|
|
[_LAYER2] = LAYOUT_split_3x5_3( |
|
|
|
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_SCLN, |
|
|
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), |
|
|
|
[_LAYER3] = LAYOUT_split_3x5_3( |
|
|
|
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_SCLN, |
|
|
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), |
|
|
|
} |
|
|
|
#endif |