[Keyboard] Flinguenheld (#19661)
parent
bc3c6f0831
commit
3b987f4a9d
@ -0,0 +1,75 @@ |
|||||||
|
/* Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
/* Flash */ |
||||||
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
|
||||||
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
|
||||||
|
|
||||||
|
/* OLED */ |
||||||
|
#undef OLED_FONT_H |
||||||
|
#define OLED_FONT_H "./oled/glcdfont.c" |
||||||
|
|
||||||
|
#define OLED_TIMEOUT 25000 |
||||||
|
#define OLED_BRIGHTNESS 60 // Protect my eyesss
|
||||||
|
#define SPLIT_LAYER_STATE_ENABLE |
||||||
|
#define SPLIT_MODS_ENABLE |
||||||
|
#define SPLIT_OLED_ENABLE |
||||||
|
|
||||||
|
/* Auto shift ♥ */ |
||||||
|
#define AUTO_SHIFT_TIMEOUT 115 |
||||||
|
|
||||||
|
/* Redefine CTRL + space (See space cadet shift) */ |
||||||
|
#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_SPC |
||||||
|
|
||||||
|
/* Unicode */ |
||||||
|
// #define UNICODE_SELECTED_MODES UC_LNX
|
||||||
|
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX |
||||||
|
|
||||||
|
/* leader */ |
||||||
|
#define LEADER_PER_KEY_TIMING |
||||||
|
#define LEADER_TIMEOUT 280 |
||||||
|
#define LEADER_NO_TIMEOUT |
||||||
|
|
||||||
|
/* Mouse */ |
||||||
|
#define MK_3_SPEED |
||||||
|
#define MK_MOMENTARY_ACCEL |
||||||
|
|
||||||
|
#define MK_C_OFFSET_0 1 |
||||||
|
#define MK_C_INTERVAL_0 12 |
||||||
|
|
||||||
|
#define MK_C_OFFSET_1 4 |
||||||
|
#define MK_C_INTERVAL_1 18 |
||||||
|
|
||||||
|
#define MK_C_OFFSET_UNMOD 13 |
||||||
|
#define MK_C_INTERVAL_UNMOD 15 |
||||||
|
|
||||||
|
#define MK_C_OFFSET_2 25 |
||||||
|
#define MK_C_INTERVAL_2 10 |
||||||
|
|
||||||
|
|
||||||
|
#define MK_W_OFFSET_0 1 |
||||||
|
#define MK_W_INTERVAL_0 160 |
||||||
|
|
||||||
|
#define MK_W_OFFSET_1 2 |
||||||
|
#define MK_W_INTERVAL_1 120 |
||||||
|
|
||||||
|
#define MK_W_OFFSET_UNMOD 4 |
||||||
|
#define MK_W_INTERVAL_UNMOD 70 |
||||||
|
|
||||||
|
#define MK_W_OFFSET_2 10 |
||||||
|
#define MK_W_INTERVAL_2 30 |
@ -0,0 +1,199 @@ |
|||||||
|
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
#include "keycodes.h" |
||||||
|
|
||||||
|
/* Only for basis letters
|
||||||
|
Exceptions like Tab or Enter */ |
||||||
|
bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { |
||||||
|
|
||||||
|
switch (keycode) { |
||||||
|
|
||||||
|
case KC_TAB: |
||||||
|
case KC_ENT: |
||||||
|
|
||||||
|
// --
|
||||||
|
case KC_A: |
||||||
|
case KC_B: |
||||||
|
case KC_C: |
||||||
|
case KC_D: |
||||||
|
case KC_E: |
||||||
|
case KC_F: |
||||||
|
case KC_G: |
||||||
|
case KC_H: |
||||||
|
case KC_I: |
||||||
|
case KC_J: |
||||||
|
case KC_K: |
||||||
|
case KC_L: |
||||||
|
case KC_M: |
||||||
|
case KC_N: |
||||||
|
case KC_O: |
||||||
|
case KC_P: |
||||||
|
case KC_Q: |
||||||
|
case KC_R: |
||||||
|
case KC_S: |
||||||
|
case KC_T: |
||||||
|
case KC_U: |
||||||
|
case KC_V: |
||||||
|
case KC_W: |
||||||
|
case KC_X: |
||||||
|
case KC_Y: |
||||||
|
case KC_Z: |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
return get_custom_auto_shifted_key(keycode, record); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/* Custom auto shift
|
||||||
|
I use this instead of tap dance because double tap is horrible |
||||||
|
Add here the letter or the custom enum, then add in press_user and press_release the actions */ |
||||||
|
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { |
||||||
|
switch(keycode) { |
||||||
|
|
||||||
|
case KC_BSPC: |
||||||
|
case KC_LABK: // Easy indent with vim
|
||||||
|
case KC_RABK: |
||||||
|
|
||||||
|
/* French */ |
||||||
|
case CS_E_ACUTE: |
||||||
|
|
||||||
|
case CS_A_GRAVE: |
||||||
|
case CS_E_GRAVE: |
||||||
|
case CS_I_GRAVE: |
||||||
|
case CS_O_GRAVE: |
||||||
|
case CS_U_GRAVE: |
||||||
|
|
||||||
|
case CS_A_CIRCUMFLEX: |
||||||
|
case CS_E_CIRCUMFLEX: |
||||||
|
case CS_I_CIRCUMFLEX: |
||||||
|
case CS_O_CIRCUMFLEX: |
||||||
|
case CS_U_CIRCUMFLEX: |
||||||
|
|
||||||
|
case CS_A_DIAERESIS: |
||||||
|
case CS_E_DIAERESIS: |
||||||
|
case CS_I_DIAERESIS: |
||||||
|
case CS_O_DIAERESIS: |
||||||
|
case CS_U_DIAERESIS: |
||||||
|
case CS_Y_DIAERESIS: |
||||||
|
|
||||||
|
case CS_C_CEDILLA: |
||||||
|
case CS_AE: |
||||||
|
case CS_OE: |
||||||
|
|
||||||
|
return true; |
||||||
|
|
||||||
|
default: |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) { |
||||||
|
switch(keycode) { |
||||||
|
|
||||||
|
case KC_BSPC: |
||||||
|
register_code16((!shifted) ? KC_BSPC : KC_DEL); |
||||||
|
break; |
||||||
|
|
||||||
|
case KC_LABK: |
||||||
|
if (shifted) { send_unicode_string("<<"); } |
||||||
|
else { send_unicode_string("<"); } break; |
||||||
|
|
||||||
|
case KC_RABK: |
||||||
|
if (shifted) { send_unicode_string(">>"); } |
||||||
|
else { send_unicode_string(">"); } break; |
||||||
|
|
||||||
|
/* French
|
||||||
|
Release is not necessary with 'send_unicode_string()' */ |
||||||
|
case CS_E_ACUTE: |
||||||
|
if (shifted) { send_unicode_string("É"); } |
||||||
|
else { send_unicode_string("é"); } break; |
||||||
|
|
||||||
|
case CS_A_GRAVE: |
||||||
|
if (shifted) { send_unicode_string("À"); } |
||||||
|
else { send_unicode_string("à"); } break; |
||||||
|
case CS_E_GRAVE: |
||||||
|
if (shifted) { send_unicode_string("È"); } |
||||||
|
else { send_unicode_string("è"); } break; |
||||||
|
case CS_I_GRAVE: |
||||||
|
if (shifted) { send_unicode_string("Ì"); } |
||||||
|
else { send_unicode_string("ì"); } break; |
||||||
|
case CS_O_GRAVE: |
||||||
|
if (shifted) { send_unicode_string("Ò"); } |
||||||
|
else { send_unicode_string("ò"); } break; |
||||||
|
case CS_U_GRAVE: |
||||||
|
if (shifted) { send_unicode_string("Ù"); } |
||||||
|
else { send_unicode_string("ù"); } break; |
||||||
|
|
||||||
|
case CS_A_CIRCUMFLEX: |
||||||
|
if (shifted) { send_unicode_string("Â"); } |
||||||
|
else { send_unicode_string("â"); } break; |
||||||
|
case CS_E_CIRCUMFLEX: |
||||||
|
if (shifted) { send_unicode_string("Ê"); } |
||||||
|
else { send_unicode_string("ê"); } break; |
||||||
|
case CS_I_CIRCUMFLEX: |
||||||
|
if (shifted) { send_unicode_string("Î"); } |
||||||
|
else { send_unicode_string("î"); } break; |
||||||
|
case CS_O_CIRCUMFLEX: |
||||||
|
if (shifted) { send_unicode_string("Ô"); } |
||||||
|
else { send_unicode_string("ô"); } break; |
||||||
|
case CS_U_CIRCUMFLEX: |
||||||
|
if (shifted) { send_unicode_string("Û"); } |
||||||
|
else { send_unicode_string("û"); } break; |
||||||
|
|
||||||
|
case CS_A_DIAERESIS: |
||||||
|
if (shifted) { send_unicode_string("Ä"); } |
||||||
|
else { send_unicode_string("ä"); } break; |
||||||
|
case CS_E_DIAERESIS: |
||||||
|
if (shifted) { send_unicode_string("Ë"); } |
||||||
|
else { send_unicode_string("ë"); } break; |
||||||
|
case CS_I_DIAERESIS: |
||||||
|
if (shifted) { send_unicode_string("Ï"); } |
||||||
|
else { send_unicode_string("ï"); } break; |
||||||
|
case CS_O_DIAERESIS: |
||||||
|
if (shifted) { send_unicode_string("Ö"); } |
||||||
|
else { send_unicode_string("ö"); } break; |
||||||
|
case CS_U_DIAERESIS: |
||||||
|
if (shifted) { send_unicode_string("Ü"); } |
||||||
|
else { send_unicode_string("ü"); } break; |
||||||
|
case CS_Y_DIAERESIS: |
||||||
|
if (shifted) { send_unicode_string("Ÿ"); } |
||||||
|
else { send_unicode_string("ÿ"); } break; |
||||||
|
|
||||||
|
case CS_C_CEDILLA: |
||||||
|
if (shifted) { send_unicode_string("Ç"); } |
||||||
|
else { send_unicode_string("ç"); } break; |
||||||
|
case CS_AE: |
||||||
|
if (shifted) { send_unicode_string("Æ"); } |
||||||
|
else { send_unicode_string("æ"); } break; |
||||||
|
case CS_OE: |
||||||
|
if (shifted) { send_unicode_string("Œ"); } |
||||||
|
else { send_unicode_string("œ"); } break; |
||||||
|
|
||||||
|
|
||||||
|
default: |
||||||
|
if (shifted) { |
||||||
|
add_weak_mods(MOD_BIT(KC_LSFT)); |
||||||
|
} |
||||||
|
/* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift */ |
||||||
|
register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) { |
||||||
|
switch(keycode) { |
||||||
|
|
||||||
|
case KC_BSPC: |
||||||
|
unregister_code16((!shifted) ? KC_BSPC : KC_DEL); |
||||||
|
break; |
||||||
|
|
||||||
|
default: |
||||||
|
/* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift
|
||||||
|
The IS_RETRO check isn't really necessary here, always using |
||||||
|
keycode & 0xFF would be fine. */ |
||||||
|
unregister_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,275 @@ |
|||||||
|
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
#include "keycodes.h" |
||||||
|
|
||||||
|
/* How to :
|
||||||
|
- Add an entry in the enum |
||||||
|
- Create a new sequence of keys |
||||||
|
- Link the enum to this sequence in the key_combos table |
||||||
|
|
||||||
|
For macros : |
||||||
|
- Same steps |
||||||
|
- And add the macro in the process_combo_event() function |
||||||
|
*/ |
||||||
|
|
||||||
|
enum combos { |
||||||
|
LEADER, |
||||||
|
BOOTLOADER, |
||||||
|
|
||||||
|
LAYER_ADJUST, |
||||||
|
LAYER_FN, |
||||||
|
LAYER_LEFT_HAND, |
||||||
|
|
||||||
|
/* French */ |
||||||
|
E_ACUTE, |
||||||
|
C_CEDILLA, |
||||||
|
E_A, |
||||||
|
E_O, |
||||||
|
|
||||||
|
A_GRAVE, |
||||||
|
E_GRAVE, |
||||||
|
I_GRAVE, |
||||||
|
O_GRAVE, |
||||||
|
U_GRAVE, |
||||||
|
|
||||||
|
A_CIRCUMFLEX, |
||||||
|
E_CIRCUMFLEX, |
||||||
|
I_CIRCUMFLEX, |
||||||
|
O_CIRCUMFLEX, |
||||||
|
U_CIRCUMFLEX, |
||||||
|
|
||||||
|
A_DIAERESIS, |
||||||
|
E_DIAERESIS, |
||||||
|
I_DIAERESIS, |
||||||
|
O_DIAERESIS, |
||||||
|
U_DIAERESIS, |
||||||
|
Y_DIAERESIS, |
||||||
|
|
||||||
|
/* -- */ |
||||||
|
AMPERSAND, |
||||||
|
AT_SIGN, |
||||||
|
BACKSLASH, |
||||||
|
CIRCUMFLEX, |
||||||
|
COLON, |
||||||
|
DOLLAR, |
||||||
|
EQUAL, |
||||||
|
EXCLAMATION_MARK, |
||||||
|
GRAVE, |
||||||
|
HASH, |
||||||
|
MINUS, |
||||||
|
PERCENT, |
||||||
|
PIPE, |
||||||
|
PLUS, |
||||||
|
QUESTION_MARK, |
||||||
|
QUOTE, |
||||||
|
QUOTE_DOUBLE, |
||||||
|
SEMICOLON, |
||||||
|
SLASH, |
||||||
|
STAR, |
||||||
|
TILDE, |
||||||
|
UNDERSCORE, |
||||||
|
|
||||||
|
ANGLE_BRACKET_LEFT, |
||||||
|
ANGLE_BRACKET_RIGHT, |
||||||
|
|
||||||
|
BRACKET_LEFT, |
||||||
|
BRACKET_RIGHT, |
||||||
|
CURLY_BRACKET_LEFT, |
||||||
|
CURLY_BRACKET_RIGHT, |
||||||
|
PARENTHESIS_LEFT, |
||||||
|
PARENTHESIS_RIGHT, |
||||||
|
|
||||||
|
/* -- */ |
||||||
|
ALT_SHIFT, |
||||||
|
CONTROL_SHIFT, |
||||||
|
CONTROL_ALT, |
||||||
|
CONTROL_SHIFT_ALT, |
||||||
|
RIGHT_ALT, |
||||||
|
|
||||||
|
/* One hand special */ |
||||||
|
CONTROL_RIGHT, |
||||||
|
CONTROL_SHIFT_RIGHT, |
||||||
|
|
||||||
|
// DEL_LEFT,
|
||||||
|
SHIFT_LEFT, |
||||||
|
ALTGR_LEFT, |
||||||
|
CONTROL_SHIFT_LEFT, |
||||||
|
|
||||||
|
/* Just to replace the define in config.h */ |
||||||
|
COMBO_LENGTH, |
||||||
|
}; |
||||||
|
uint16_t COMBO_LEN = COMBO_LENGTH; |
||||||
|
|
||||||
|
|
||||||
|
/* Sequences fo keys */ |
||||||
|
const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_adjust[] = {KC_LCPO, LT(_NUMERIC, KC_ENT), COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_left_hand[] = {KC_LCPO, GUI_T(KC_ESC), COMBO_END}; |
||||||
|
|
||||||
|
/* -- */ |
||||||
|
// const uint16_t PROGMEM combo_enter_shifted[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_control_shift[] = {KC_LCPO, KC_S, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_control_alt[] = {KC_LCPO, KC_LALT, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_control_shift_alt[] = {KC_LCPO, KC_S, KC_A, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_right_alt[] = {KC_LAPO, KC_G, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_alt_shift[] = {KC_LALT, KC_S, COMBO_END}; |
||||||
|
|
||||||
|
/* -- */ |
||||||
|
const uint16_t PROGMEM combo_e_acute[] = {KC_LCPO, KC_E, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_c_cedilla[] = {KC_LCPO, KC_I, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_ea[] = {KC_LCPO, KC_A, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_eo[] = {KC_LCPO, KC_O, COMBO_END}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_a_grave[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_e_grave[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_i_grave[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_o_grave[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_u_grave[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_a_circumflex[] = {KC_C, KC_A, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_e_circumflex[] = {KC_C, KC_E, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_i_circumflex[] = {KC_C, KC_I, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_o_circumflex[] = {KC_C, KC_O, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_u_circumflex[] = {KC_C, KC_U, COMBO_END}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_a_diaeresis[] = {KC_T, KC_A, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_e_diaeresis[] = {KC_T, KC_E, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_i_diaeresis[] = {KC_T, KC_I, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_o_diaeresis[] = {KC_T, KC_O, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_u_diaeresis[] = {KC_T, KC_U, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_y_diaeresis[] = {KC_T, KC_Y, COMBO_END}; |
||||||
|
|
||||||
|
/* -- */ |
||||||
|
const uint16_t PROGMEM combo_ampersand[] = {KC_I, KC_E, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_at_sign[] = {KC_Q, KC_Y, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_backslash[] = {KC_D, KC_R, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_circumflex[] = {KC_T, KC_D, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_dollar[] = {KC_D, KC_L, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_exclamation_mark[] = {KC_O, KC_W, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_hash[] = {KC_I, KC_O, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_percent[] = {KC_O, KC_U, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_pipe[] = {KC_E, KC_U, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_question_mark[] = {KC_B, KC_O, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_slash[] = {KC_S, KC_L, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_star[] = {KC_S, KC_T, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_tilde[] = {KC_I, KC_U, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_bracket_left[] = {KC_Q, KC_U, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_bracket_right[] = {KC_E, KC_Y, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_I, KC_Q, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_parenthesis_left[] = {KC_X, KC_U, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_parenthesis_right[] = {KC_I, KC_Y, COMBO_END}; |
||||||
|
|
||||||
|
/* One hand special */ |
||||||
|
const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END}; |
||||||
|
const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM combo_shift_left[] = {KC_LCPO, KC_LALT, COMBO_END}; |
||||||
|
// const uint16_t PROGMEM combo_altgr_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END};
|
||||||
|
// const uint16_t PROGMEM combo_del_left[] = {GUI_T(KC_ESC), KC_K, COMBO_END};
|
||||||
|
const uint16_t PROGMEM combo_control_shift_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END}; |
||||||
|
|
||||||
|
|
||||||
|
/* Sequences fo keys */ |
||||||
|
combo_t key_combos[] = { |
||||||
|
[LEADER] = COMBO(combo_leader, KC_LEAD), |
||||||
|
[BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER), |
||||||
|
|
||||||
|
[LAYER_ADJUST] = COMBO(combo_adjust, OSL(_ADJUST)), |
||||||
|
[LAYER_FN] = COMBO(combo_fn, OSL(_FN)), |
||||||
|
[LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)), |
||||||
|
|
||||||
|
/* -- */ |
||||||
|
// [ENTER_SHIFTED] = COMBO(combo_enter_shifted, S(KC_ENT)),
|
||||||
|
[ALT_SHIFT] = COMBO(combo_alt_shift, A(S(XXXXXXX))), |
||||||
|
[CONTROL_SHIFT] = COMBO(combo_control_shift, C(S(XXXXXXX))), |
||||||
|
[CONTROL_ALT] = COMBO(combo_control_alt, C(A(XXXXXXX))), |
||||||
|
[CONTROL_SHIFT_ALT] = COMBO(combo_control_shift_alt, C(S(A(XXXXXXX)))), |
||||||
|
[RIGHT_ALT] = COMBO(combo_right_alt, KC_RALT), |
||||||
|
|
||||||
|
/* French */ |
||||||
|
[E_ACUTE] = COMBO(combo_e_acute, CS_E_ACUTE), |
||||||
|
[C_CEDILLA] = COMBO(combo_c_cedilla, CS_C_CEDILLA), |
||||||
|
[E_A] = COMBO(combo_ea, CS_AE), |
||||||
|
[E_O] = COMBO(combo_eo, CS_OE), |
||||||
|
|
||||||
|
[A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE), |
||||||
|
[E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE), |
||||||
|
[I_GRAVE] = COMBO(combo_i_grave, CS_I_GRAVE), |
||||||
|
[O_GRAVE] = COMBO(combo_o_grave, CS_O_GRAVE), |
||||||
|
[U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE), |
||||||
|
|
||||||
|
[A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX), |
||||||
|
[E_CIRCUMFLEX] = COMBO(combo_e_circumflex, CS_E_CIRCUMFLEX), |
||||||
|
[I_CIRCUMFLEX] = COMBO(combo_i_circumflex, CS_I_CIRCUMFLEX), |
||||||
|
[O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX), |
||||||
|
[U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX), |
||||||
|
|
||||||
|
[A_DIAERESIS] = COMBO(combo_a_diaeresis, CS_A_DIAERESIS), |
||||||
|
[E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS), |
||||||
|
[I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS), |
||||||
|
[O_DIAERESIS] = COMBO(combo_o_diaeresis, CS_O_DIAERESIS), |
||||||
|
[U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS), |
||||||
|
[Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS), |
||||||
|
|
||||||
|
/* -- */ |
||||||
|
[AMPERSAND] = COMBO(combo_ampersand, KC_AMPR), |
||||||
|
[AT_SIGN] = COMBO(combo_at_sign, KC_AT), |
||||||
|
[BACKSLASH] = COMBO(combo_backslash, KC_BSLS), |
||||||
|
[CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRC), |
||||||
|
[COLON] = COMBO(combo_colon, KC_COLON), |
||||||
|
[DOLLAR] = COMBO(combo_dollar, KC_DLR), |
||||||
|
[EQUAL] = COMBO(combo_equal, KC_EQL), |
||||||
|
[EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM), |
||||||
|
[GRAVE] = COMBO(combo_grave, KC_GRV), |
||||||
|
[HASH] = COMBO(combo_hash, KC_HASH), |
||||||
|
[MINUS] = COMBO(combo_minus, KC_MINS), |
||||||
|
[PERCENT] = COMBO(combo_percent, KC_PERC), |
||||||
|
[PIPE] = COMBO(combo_pipe, KC_PIPE), |
||||||
|
[PLUS] = COMBO(combo_plus, KC_PLUS), |
||||||
|
[QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION), |
||||||
|
[QUOTE] = COMBO(combo_quote, KC_QUOTE), |
||||||
|
[QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE), |
||||||
|
[SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON), |
||||||
|
[SLASH] = COMBO(combo_slash, KC_SLSH), |
||||||
|
[STAR] = COMBO(combo_star, KC_ASTR), |
||||||
|
[TILDE] = COMBO(combo_tilde, KC_TILD), |
||||||
|
[UNDERSCORE] = COMBO(combo_underscore, KC_UNDS), |
||||||
|
|
||||||
|
[ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LABK), |
||||||
|
[ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RABK), |
||||||
|
|
||||||
|
[BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET), |
||||||
|
[BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET), |
||||||
|
[CURLY_BRACKET_LEFT] = COMBO(combo_curly_bracket_left, KC_LEFT_CURLY_BRACE), |
||||||
|
[CURLY_BRACKET_RIGHT] = COMBO(combo_curly_bracket_right, KC_RIGHT_CURLY_BRACE), |
||||||
|
[PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN), |
||||||
|
[PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN), |
||||||
|
|
||||||
|
/* One hand special */ |
||||||
|
[CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL), |
||||||
|
[CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))), |
||||||
|
|
||||||
|
[SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT), |
||||||
|
// [ALTGR_LEFT] = COMBO(combo_altgr_left, KC_ALGR),
|
||||||
|
[CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))), |
||||||
|
// [DEL_LEFT] = COMBO(combo_del_left, KC_BSPC),
|
||||||
|
}; |
@ -0,0 +1,44 @@ |
|||||||
|
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
enum layers { |
||||||
|
_BASE, |
||||||
|
_NUMERIC, |
||||||
|
_ARROWS, |
||||||
|
_MOUSE, |
||||||
|
_ADJUST, |
||||||
|
_FN, |
||||||
|
_LEFT_HAND, |
||||||
|
}; |
||||||
|
|
||||||
|
enum custom_keys { |
||||||
|
UNICODE = SAFE_RANGE, // Shortcut to write unicodes, see numeric layer
|
||||||
|
|
||||||
|
/* See auto-shift */ |
||||||
|
CS_E_ACUTE, |
||||||
|
|
||||||
|
CS_A_GRAVE, |
||||||
|
CS_E_GRAVE, |
||||||
|
CS_I_GRAVE, |
||||||
|
CS_O_GRAVE, |
||||||
|
CS_U_GRAVE, |
||||||
|
|
||||||
|
CS_C_CEDILLA, |
||||||
|
CS_AE, |
||||||
|
CS_OE, |
||||||
|
|
||||||
|
CS_A_CIRCUMFLEX, |
||||||
|
CS_E_CIRCUMFLEX, |
||||||
|
CS_I_CIRCUMFLEX, |
||||||
|
CS_O_CIRCUMFLEX, |
||||||
|
CS_U_CIRCUMFLEX, |
||||||
|
|
||||||
|
CS_A_DIAERESIS, |
||||||
|
CS_E_DIAERESIS, |
||||||
|
CS_I_DIAERESIS, |
||||||
|
CS_O_DIAERESIS, |
||||||
|
CS_U_DIAERESIS, |
||||||
|
CS_Y_DIAERESIS, |
||||||
|
}; |
@ -0,0 +1,133 @@ |
|||||||
|
/* Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 2 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
#include "keycodes.h" |
||||||
|
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
||||||
|
|
||||||
|
/* Macros */ |
||||||
|
switch (keycode) { |
||||||
|
|
||||||
|
case UNICODE: |
||||||
|
if (record->event.pressed) { |
||||||
|
register_code(KC_LCTL); |
||||||
|
register_code(KC_LSFT); |
||||||
|
tap_code16(KC_U); |
||||||
|
} else { |
||||||
|
unregister_code(KC_LCTL); |
||||||
|
unregister_code(KC_LSFT); |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
|
||||||
|
[_BASE] = LAYOUT( |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
GUI_T(KC_ESC) , KC_B , KC_O , KC_W , KC_BSPC , KC_J , KC_P , KC_D , KC_L , KC_F , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
KC_A , KC_I , KC_E , KC_U , KC_TAB , KC_V , KC_T , KC_S , KC_R , KC_N , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
KC_LALT , KC_X , KC_Q , KC_Y , KC_K , KC_Z , KC_C , KC_G , KC_H , KC_M , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
LT(_MOUSE, KC_COMM) , KC_LCPO , LT(_NUMERIC, KC_ENT) , LT(_ARROWS, KC_DOT) |
||||||
|
// |-------------------------+----/* Space ctl */------| |-------------------------+-------------------------|
|
||||||
|
), |
||||||
|
|
||||||
|
[_NUMERIC] = LAYOUT( |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_7 , KC_8 , KC_9 , KC_DOT , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_4 , KC_5 , KC_6 , KC_0 , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , KC_COMM , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
XXXXXXX , UNICODE , XXXXXXX , XXXXXXX |
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
), |
||||||
|
|
||||||
|
[_MOUSE] = LAYOUT( |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
KC_MS_WH_LEFT , KC_MS_WH_UP , KC_MS_WH_DOWN , KC_MS_WH_RIGHT, _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
KC_MS_LEFT , KC_MS_UP , KC_MS_DOWN , KC_MS_RIGHT , _______ , XXXXXXX , KC_MS_ACCEL0 , KC_MS_ACCEL1 , KC_MS_ACCEL2 , XXXXXXX , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
KC_MS_BTN1 , XXXXXXX , KC_MS_BTN3 , KC_MS_BTN2 , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
XXXXXXX , _______ , KC_MS_BTN1 , KC_MS_BTN2 |
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
), |
||||||
|
|
||||||
|
[_ARROWS] = LAYOUT( |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_HOME , KC_PAGE_DOWN , KC_PAGE_UP , KC_END , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , C(KC_D) , C(KC_U) , XXXXXXX , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
XXXXXXX , _______ , XXXXXXX , XXXXXXX |
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
), |
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT( |
||||||
|
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
||||||
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PRINT_SCREEN , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_UP , |
||||||
|
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
||||||
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,S(KC_PRINT_SCREEN), XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,KC_AUDIO_VOL_DOWN, |
||||||
|
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
||||||
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_MUTE , |
||||||
|
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
XXXXXXX , _______ , XXXXXXX , XXXXXXX |
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
), |
||||||
|
|
||||||
|
[_FN] = LAYOUT( |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_F7 , KC_F8 , KC_F9 , KC_F10 , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_F4 , KC_F5 , KC_F6 , KC_F11 , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_F1 , KC_F2 , KC_F3 , KC_F12 , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
XXXXXXX , _______ , XXXXXXX , XXXXXXX |
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
), |
||||||
|
|
||||||
|
[_LEFT_HAND] = LAYOUT( |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
XXXXXXX , C(KC_X) , C(KC_C) , C(KC_V) , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
_______ , XXXXXXX , XXXXXXX , C(KC_Z) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , |
||||||
|
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
XXXXXXX , _______ , XXXXXXX , XXXXXXX |
||||||
|
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||||
|
), |
||||||
|
}; |
@ -0,0 +1,232 @@ |
|||||||
|
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "progmem.h" |
||||||
|
|
||||||
|
/* Online editor: https://joric.github.io/qle/ */ |
||||||
|
static const unsigned char PROGMEM font[] = { |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, |
||||||
|
0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6, |
||||||
|
0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, |
||||||
|
0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE, |
||||||
|
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFC, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, |
||||||
|
0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, |
||||||
|
0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, |
||||||
|
0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x67, |
||||||
|
0x67, 0x67, 0x67, 0x67, 0x7F, 0x3F, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
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, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, |
||||||
|
0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE, |
||||||
|
0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, |
||||||
|
0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, |
||||||
|
0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
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, 0xFE, 0x0E, 0x06, 0x66, 0x66, |
||||||
|
0x66, 0x66, 0xE6, 0xFE, 0xFE, 0x06, |
||||||
|
0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6, |
||||||
|
0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, |
||||||
|
0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, |
||||||
|
0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, |
||||||
|
0x60, 0x60, 0x67, 0x67, 0x67, 0x67, |
||||||
|
0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, |
||||||
|
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x3F, 0x7F, 0x67, 0x66, 0x66, 0x66, |
||||||
|
0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60, |
||||||
|
0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, |
||||||
|
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, |
||||||
|
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
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, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, |
||||||
|
0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x0E, |
||||||
|
0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, |
||||||
|
0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, |
||||||
|
0x66, 0x66, 0x06, 0x0E, 0xFE, 0xFC, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
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, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, |
||||||
|
0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, |
||||||
|
0x06, 0xCE, 0x9E, 0x9E, 0xCE, 0x06, |
||||||
|
0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6, |
||||||
|
0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 0xFC, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C, |
||||||
|
0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70, |
||||||
|
0x60, 0x67, 0x67, 0x64, 0x60, 0x70, |
||||||
|
0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E, |
||||||
|
0x78, 0x70, 0x62, 0x67, 0x7F, 0x3F, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, |
||||||
|
0x67, 0x67, 0x67, 0x7F, 0x7F, 0x60, |
||||||
|
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, |
||||||
|
0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67, |
||||||
|
0x67, 0x67, 0x70, 0x78, 0x7F, 0x3F, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
}; |
@ -0,0 +1,457 @@ |
|||||||
|
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H |
||||||
|
#include "keycodes.h" |
||||||
|
|
||||||
|
/* Leader state */ |
||||||
|
static bool is_leader_active = false; |
||||||
|
void leader_start(void) { |
||||||
|
is_leader_active = true; |
||||||
|
} |
||||||
|
void leader_end(void) { |
||||||
|
is_leader_active = false; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void oled_display(void) { |
||||||
|
|
||||||
|
/* Layers */ |
||||||
|
switch (get_highest_layer(layer_state)) { |
||||||
|
|
||||||
|
case _BASE: ; |
||||||
|
if (is_keyboard_master()) { |
||||||
|
static const char PROGMEM qmk_logo_master[] = { |
||||||
|
// 'raven', 32x128px
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 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, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, |
||||||
|
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, 0x07, 0x8f, 0x5f, 0x31, 0x79, 0x33, 0x7f, |
||||||
|
0x3b, 0x71, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4c, 0x02, 0x01, 0x95, 0xff, 0xb5, 0x05, 0x02, 0x4c, 0x30, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x01, 0x01, 0x01, 0x7e, 0x40, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, 0xe0, |
||||||
|
0xf0, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9, |
||||||
|
0xfd, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00, |
||||||
|
0x00, 0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33, |
||||||
|
0x30, 0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, |
||||||
|
0xfc, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30, |
||||||
|
0x20, 0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
||||||
|
}; |
||||||
|
oled_write_raw_P(qmk_logo_master, sizeof(qmk_logo_master)); |
||||||
|
|
||||||
|
} else { |
||||||
|
static const char PROGMEM qmk_logo_slave[] = { |
||||||
|
// 'birds', 32x128px
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x40, 0xc0, 0xe0, 0xd0, 0x88, 0x84, 0x04, 0x04, 0xc4, 0xc4, 0x08, 0x08, 0x10, 0x60, 0x80, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xf8, 0x46, 0x81, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x74, 0x84, 0x06, 0x03, 0x81, |
||||||
|
0x42, 0x24, 0x18, 0x10, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x01, 0x06, 0x08, 0x11, 0x12, 0x24, 0x24, 0x48, 0xc8, 0x48, 0x48, 0xc9, 0x49, 0x4a, |
||||||
|
0x4a, 0x26, 0x25, 0x25, 0x14, 0x14, 0x14, 0x1d, 0x15, 0x2e, 0x54, 0x60, 0x40, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x05, 0x02, 0x03, 0x02, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x88, 0xc8, 0x08, 0x30, 0xc0, 0xc0, 0x80, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x04, 0x03, |
||||||
|
0x00, 0x00, 0x00, 0x80, 0x80, 0x70, 0x18, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x70, 0x50, 0x48, 0x48, 0x24, 0x24, 0x12, 0x0a, 0x05, 0x09, 0x13, 0x12, 0x22, 0x22, |
||||||
|
0xe1, 0x21, 0x21, 0x20, 0xe0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x04, 0x07, 0x04, 0x00, 0x04, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
||||||
|
}; |
||||||
|
oled_write_raw_P(qmk_logo_slave, sizeof(qmk_logo_slave)); |
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case _NUMERIC: ; |
||||||
|
static const char PROGMEM qmk_numeric[] = { |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e, |
||||||
|
0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x01, 0x03, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, |
||||||
|
0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0, |
||||||
|
0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, |
||||||
|
0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, |
||||||
|
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, |
||||||
|
0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06, |
||||||
|
0x06, 0x06, 0x0e, 0x1e, 0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, |
||||||
|
0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff, |
||||||
|
0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, |
||||||
|
0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, |
||||||
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, |
||||||
|
0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
||||||
|
}; |
||||||
|
|
||||||
|
oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric)); |
||||||
|
break; |
||||||
|
|
||||||
|
case _MOUSE: ; |
||||||
|
static const char PROGMEM qmk_mouse[] = { |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, |
||||||
|
0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, |
||||||
|
0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, |
||||||
|
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
||||||
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, |
||||||
|
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
||||||
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, |
||||||
|
0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, |
||||||
|
0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, |
||||||
|
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, |
||||||
|
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, |
||||||
|
0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, |
||||||
|
0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, |
||||||
|
0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
||||||
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
||||||
|
}; |
||||||
|
|
||||||
|
oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse)); |
||||||
|
break; |
||||||
|
|
||||||
|
case _ARROWS: ; |
||||||
|
static const char PROGMEM qmk_arrows[] = { |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 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, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, |
||||||
|
0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff, |
||||||
|
0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, |
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, |
||||||
|
0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3c, 0x1c, 0x0c, |
||||||
|
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, 0x9e, 0x1e, 0x1e, 0x1e, |
||||||
|
0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0e, 0x0c, |
||||||
|
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, |
||||||
|
0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, |
||||||
|
0x78, 0x78, 0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, |
||||||
|
0x30, 0x38, 0x3c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, |
||||||
|
0xc0, 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, 0x00, 0x00, 0x00, 0xff, 0xff, |
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff, |
||||||
|
0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, |
||||||
|
0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
||||||
|
}; |
||||||
|
|
||||||
|
oled_write_raw_P(qmk_arrows, sizeof(qmk_arrows)); |
||||||
|
break; |
||||||
|
|
||||||
|
case _ADJUST: ; |
||||||
|
static const char PROGMEM qmk_adjust[] = { |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, |
||||||
|
0x38, 0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38, |
||||||
|
0x38, 0x38, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07, |
||||||
|
0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, |
||||||
|
0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, 0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, |
||||||
|
0xe1, 0xe1, 0xe1, 0x01, 0x01, 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, 0xff, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, |
||||||
|
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, |
||||||
|
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, |
||||||
|
0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, |
||||||
|
0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, |
||||||
|
0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, |
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, |
||||||
|
0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
||||||
|
}; |
||||||
|
|
||||||
|
oled_write_raw_P(qmk_adjust, sizeof(qmk_adjust)); |
||||||
|
break; |
||||||
|
|
||||||
|
case _FN: ; |
||||||
|
static const char PROGMEM qmk_fn[] = { |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, |
||||||
|
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, |
||||||
|
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, |
||||||
|
0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
||||||
|
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, |
||||||
|
0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, |
||||||
|
0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
||||||
|
}; |
||||||
|
|
||||||
|
oled_write_raw_P(qmk_fn, sizeof(qmk_fn)); |
||||||
|
break; |
||||||
|
|
||||||
|
case _LEFT_HAND: ; |
||||||
|
static const char PROGMEM qmk_left_hand[] = { |
||||||
|
// 'layers_left_hand', 32x128px
|
||||||
|
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0xe1, 0xf1, 0xf1, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, |
||||||
|
0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1f, 0x1f, 0x1f, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1e, 0xfc, 0xf8, 0xf0, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, 0x1f, 0x0f |
||||||
|
}; |
||||||
|
|
||||||
|
oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand)); |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
/* Leader */ |
||||||
|
if (is_leader_active) { |
||||||
|
|
||||||
|
static const char PROGMEM qmk_leader[] = { |
||||||
|
0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, |
||||||
|
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, |
||||||
|
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, |
||||||
|
0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18, |
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, |
||||||
|
0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, |
||||||
|
0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e, |
||||||
|
0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70, |
||||||
|
0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, |
||||||
|
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, |
||||||
|
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, |
||||||
|
0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, |
||||||
|
0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, |
||||||
|
0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, |
||||||
|
0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00 |
||||||
|
}; |
||||||
|
|
||||||
|
oled_write_raw_P(qmk_leader, sizeof(qmk_leader)); |
||||||
|
} |
||||||
|
|
||||||
|
/* Modifier keys */ |
||||||
|
if (get_mods()) { |
||||||
|
|
||||||
|
if (get_mods() & MOD_MASK_CTRL) { |
||||||
|
|
||||||
|
oled_write_char(0x01, false); |
||||||
|
oled_write_char(0x02, false); |
||||||
|
oled_write_char(0x03, false); |
||||||
|
oled_write_char(0x04, false); |
||||||
|
oled_write_char(0x05, false); |
||||||
|
|
||||||
|
oled_write_char(0x21, false); |
||||||
|
oled_write_char(0x22, false); |
||||||
|
oled_write_char(0x23, false); |
||||||
|
oled_write_char(0x24, false); |
||||||
|
oled_write_char(0x25, false); |
||||||
|
} |
||||||
|
if (get_mods() & MOD_BIT(KC_LALT)) { |
||||||
|
|
||||||
|
oled_write_char(0x41, false); |
||||||
|
oled_write_char(0x42, false); |
||||||
|
oled_write_char(0x43, false); |
||||||
|
oled_write_char(0x44, false); |
||||||
|
oled_write_char(0x45, false); |
||||||
|
|
||||||
|
oled_write_char(0x61, false); |
||||||
|
oled_write_char(0x62, false); |
||||||
|
oled_write_char(0x63, false); |
||||||
|
oled_write_char(0x64, false); |
||||||
|
oled_write_char(0x65, false); |
||||||
|
} |
||||||
|
if (get_mods() & MOD_BIT(KC_RALT)) { |
||||||
|
|
||||||
|
oled_write_char(0x81, false); |
||||||
|
oled_write_char(0x82, false); |
||||||
|
oled_write_char(0x83, false); |
||||||
|
oled_write_char(0x84, false); |
||||||
|
oled_write_char(0x85, false); |
||||||
|
|
||||||
|
oled_write_char(0xA1, false); |
||||||
|
oled_write_char(0xA2, false); |
||||||
|
oled_write_char(0xA3, false); |
||||||
|
oled_write_char(0xA4, false); |
||||||
|
oled_write_char(0xA5, false); |
||||||
|
} |
||||||
|
if (get_mods() & MOD_MASK_SHIFT) { |
||||||
|
|
||||||
|
oled_write_char(0x4B, false); |
||||||
|
oled_write_char(0x4C, false); |
||||||
|
oled_write_char(0x4D, false); |
||||||
|
oled_write_char(0x4E, false); |
||||||
|
oled_write_char(0x4F, false); |
||||||
|
|
||||||
|
oled_write_char(0x6B, false); |
||||||
|
oled_write_char(0x6C, false); |
||||||
|
oled_write_char(0x6D, false); |
||||||
|
oled_write_char(0x6E, false); |
||||||
|
oled_write_char(0x6F, false); |
||||||
|
} |
||||||
|
if (get_mods() & MOD_MASK_GUI) { |
||||||
|
|
||||||
|
oled_write_char(0x8B, false); |
||||||
|
oled_write_char(0x8C, false); |
||||||
|
oled_write_char(0x8D, false); |
||||||
|
oled_write_char(0x8E, false); |
||||||
|
oled_write_char(0x8F, false); |
||||||
|
|
||||||
|
oled_write_char(0xAB, false); |
||||||
|
oled_write_char(0xAC, false); |
||||||
|
oled_write_char(0xAD, false); |
||||||
|
oled_write_char(0xAE, false); |
||||||
|
oled_write_char(0xAF, false); |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
bool oled_task_user(void) { |
||||||
|
oled_display(); |
||||||
|
return false; |
||||||
|
} |
@ -0,0 +1,130 @@ |
|||||||
|
### Custom aurora sweep keymap |
||||||
|
|
||||||
|
|
||||||
|
This keymap is inspired by [optimot](https://bepo.fr/) which is a French layout. |
||||||
|
Nonetheless all French characters are sent in unicode, so it works with the standard US ANSI layout. |
||||||
|
|
||||||
|
It uses the *best* qmk features : |
||||||
|
- combos ♥ |
||||||
|
- auto shift |
||||||
|
- leader |
||||||
|
|
||||||
|
I tried to optimise key positions for neovim and i3wm while limit digrams. |
||||||
|
The oled screens are used to display the current layout, the modifier keys and the leader key. |
||||||
|
|
||||||
|
 |
||||||
|
 |
||||||
|
|
||||||
|
#### Install |
||||||
|
|
||||||
|
Clone this repo in the folder : |
||||||
|
|
||||||
|
~/qmk_firmware/keyboards/splitkb/aurora/sweep/keymaps/ |
||||||
|
|
||||||
|
#### Compile and flash |
||||||
|
|
||||||
|
Navigate into the keymap folder and launch this command for both sides : |
||||||
|
|
||||||
|
qmk compile && qmk flash |
||||||
|
|
||||||
|
and : |
||||||
|
|
||||||
|
Click twice on the flash button and use nautilus for instance to clic on the keyboard. |
||||||
|
Don't forget to flash with the double tap bootloader define before soldering. |
||||||
|
|
||||||
|
#### Links |
||||||
|
|
||||||
|
[qmk](https://docs.qmk.fm/#/) |
||||||
|
[ferris sweep](https://github.com/davidphilipbarr/Sweep) |
||||||
|
[splitkb](https://splitkb.com) |
||||||
|
|
||||||
|
#### Layouts |
||||||
|
|
||||||
|
 |
||||||
|
 |
||||||
|
 |
||||||
|
 |
||||||
|
 |
||||||
|
 |
||||||
|
 |
||||||
|
 |
||||||
|
 |
||||||
|
 |
||||||
|
|
||||||
|
#### French |
||||||
|
|
||||||
|
| - | | |
||||||
|
|------------------|------------------------| |
||||||
|
| space + e | é | |
||||||
|
| space + i | ç | |
||||||
|
| space + a | æ | |
||||||
|
| space + o | œ | |
||||||
|
| comma + a | à | |
||||||
|
| comma + e | è | |
||||||
|
| comma + i | ì | |
||||||
|
| comma + o | ò | |
||||||
|
| comma + u | ù | |
||||||
|
| enter + a | â | |
||||||
|
| enter + e | ê | |
||||||
|
| enter + i | î | |
||||||
|
| enter + o | ô | |
||||||
|
| enter + u | û | |
||||||
|
| dot + a | ä | |
||||||
|
| dot + e | ë | |
||||||
|
| dot + i | ï | |
||||||
|
| dot + o | ö | |
||||||
|
| dot + u | ü | |
||||||
|
| dot + y | ÿ | |
||||||
|
|
||||||
|
|
||||||
|
#### Leader |
||||||
|
|
||||||
|
| - | | |
||||||
|
|--------------------|------------------------| |
||||||
|
| M + S | mail short | |
||||||
|
| M + L | mail long | |
||||||
|
| D + E + G | ° | |
||||||
|
| C + O + P | © | |
||||||
|
| R + E + G | ® | |
||||||
|
| D + I + A | ø | |
||||||
|
| D + I + A + M | Ø | |
||||||
|
| E + U + R | € | |
||||||
|
| P + O + U | £ | |
||||||
|
| Y + E + N | ¥ | |
||||||
|
| C + E + N | ¢ | |
||||||
|
| P + I | π | |
||||||
|
| P + I + I | Π | |
||||||
|
| O + M + E | ω | |
||||||
|
| O + M + E + G | Ω | |
||||||
|
| U + P + F | ⁰ | |
||||||
|
| D + N + F | ₀ | |
||||||
|
|
||||||
|
| - | | |
||||||
|
|--------------------|------------------------| |
||||||
|
| M + U + L | × | |
||||||
|
| D + I + V | ÷ | |
||||||
|
| P + M | ± | |
||||||
|
| I + N + E | ≠ | |
||||||
|
| A + L + M | ≈ | |
||||||
|
| S + Q + U | √ | |
||||||
|
| I + N + F | ∞ | |
||||||
|
| < + < | ≤ | |
||||||
|
| > + > | ≥ | |
||||||
|
| F + S + T | ¼ | |
||||||
|
| F + S + G | ½ | |
||||||
|
| F + H + T | ¾ | |
||||||
|
|
||||||
|
| - | | |
||||||
|
|--------------------|------------------------| |
||||||
|
| F + L + A | ⚡ | |
||||||
|
| S + P + A | ✨ | |
||||||
|
| O + W + D | ⛔ | |
||||||
|
| C + O + F | ☕ | |
||||||
|
| U + M + B | ☔ | |
||||||
|
| Y + E + S | ✅ | |
||||||
|
| N + O | ❎ | |
||||||
|
| C + R + O | ❌ | |
||||||
|
| ? | ❔ | |
||||||
|
| ! | ❕ | |
||||||
|
| ? + ? | ❓ | |
||||||
|
| ! + ! | ❗ | |
@ -0,0 +1,22 @@ |
|||||||
|
LTO_ENABLE = yes
|
||||||
|
CONVERT_TO = elite_pi
|
||||||
|
|
||||||
|
SRC += features/auto_shift.c
|
||||||
|
SRC += features/combo.c
|
||||||
|
SRC += features/leader.c
|
||||||
|
SRC += oled/oled.c
|
||||||
|
|
||||||
|
OLED_ENABLE = yes
|
||||||
|
OLED_DRIVER = SSD1306
|
||||||
|
|
||||||
|
MOUSEKEY_ENABLE = yes
|
||||||
|
AUTO_SHIFT_ENABLE = yes
|
||||||
|
AUTO_SHIFT_MODIFIERS = no
|
||||||
|
COMBO_ENABLE = yes
|
||||||
|
LEADER_ENABLE = yes
|
||||||
|
|
||||||
|
# Recommended for space cadet shift
|
||||||
|
COMMAND_ENABLE = no
|
||||||
|
|
||||||
|
UNICODE_ENABLE = yes
|
||||||
|
SEND_STRING_ENABLE = yes
|
Loading…
Reference in new issue