@ -1,4 +1,4 @@
/* Copyright 2020 Fredrik Salomonsson <plattfot@gmail.com>
/* Copyright 2020-2021 Fredrik Salomonsson <plattfot@gmail.com>
*
* 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
@ -18,19 +18,26 @@
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE , / / can always be here
/ / Macros , where | is the cursor
M_LRBRC , / / [ | ]
M_LRCBR , / / { | }
M_LRPRN , / / ( | )
M_LRABR , / / < | >
M_DQUOT , / / ' | '
/ / New keys
DBL _TAP, / / Repeat next key
CLO_TAP , / / Close the next key press
} ;
/ / Double T ap feature based on post from drashna
/ / Close tap feature based on a post from drashna
/ / https : / / www . reddit . com / r / olkb / comments / citkbx / double_key_press_modifier_qmkwould_work_like / ev9cue8 /
static bool double_tap_it = false ;
/ / Will insert the closing equivalent key and move the cursor inside .
/ / For example clo_tap and then ( will result in ( | ) , where | is the
/ / cursor . For " it will be " | " as the close equivalent key is the
/ / same key .
enum close_tap_modes {
CLO_DISABLED = 0 b000 ,
CLO_PRESSED = 0 b001 , / / Close tap key is pressed
CLO_ACTIVE = 0 b010 , / / Close tap next keypress
CLO_USED = 0 b100 , / / Turn off when close tap key is released
} ;
# define CLO_RELEASE(flag) flag & ~CLO_PRESSED
static enum close_tap_modes close_tap_it = CLO_DISABLED ;
enum layers {
_DEFAULT ,
@ -40,89 +47,97 @@ enum layers {
_ADJUST ,
} ;
# define MO_ADJT MO(_ADJUST)
# define L_RAISE OSL(_RAISE)
# define L_LOWER OSL(_LOWER)
# define L_NAV MO(_NAV)
# define EU_TDOT RSA(KC_SLSH)
# define EU_CDOT RALT(KC_EQUAL)
# define EU_DEG RALT(KC_SCLN)
/ / clang - format off
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
/*
* Base Layer : Default
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | ` | Q | W | E | R | T | | Y | U | I | O | P | Å |
* | Esc | Q | W | E | R | T | | Y | U | I | O | P | Del |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | Tab | A | S | D | F | G | | H | J | K | L | ; : | ' " |
* | Tab | A | S | D | F | G | | H | J | K | L | ; | ' |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - . , - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | LShift | Z | X | C | V | B | Lead | RAISE | | LOWER | DBLTAP | N | M | , < | . > | / ? | RShift |
* | LShift | Z | X | C | V | B | Lead | RAISE | | LOWER | BSpace | N | M | , | . | / | RShift |
* ` - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - '
* | MPlay | GUI | LCtrl | Space | LALT | | Enter | BSpace | NAV | LCTL + | Worksp |
* | | | | | | | | | | LALT | toggle |
* | MPlay | GUI | LCtrl | Space | LALT | | RCtrl | Enter | NAV | RALT | Scroll |
* | | | | | | | | | | | Lock |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
[ _DEFAULT ] = LAYOUT (
KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC ,
KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT ,
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LEAD , OSL ( _RAISE ) , OSL ( _LOWER ) , DBL_TAP , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT ,
KC_MPLY , KC_LGUI , KC_LCTL , KC_SPACE , KC_LALT , KC_ENT , KC_BSPC , MO ( _NAV ) , LCTL ( KC_LALT ) , LGUI ( KC_B )
KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_DE L ,
KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT ,
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LEAD , L_RAISE , L_LOWER , KC_BSPC , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT ,
KC_MPLY , KC_LGUI , KC_LCTL , KC_SPACE , KC_LALT , KC_RCTL , KC_ENT , L_NAV , KC_RALT , KC_SLCK
) ,
/*
* Lower Layer : S ymbols
* Lower Layer : Left s ymbols
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
* | | ! | @ | # | $ | % | | F6 | F7 | F8 | F9 | F10 | |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | | | | _ | \ | - | + | | = | { | } | [ | ] | ' ' |
* | | | | _ | \ | - | + | | F12 | | | | | |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - . , - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | | [ ] | { } | ( ) | < > | | | | | | | | | < | > | ? | |
* | | ° | : | ( | ) | × | | ADJUST | | | | CLOTAP | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - '
* | Mute | | | | | | | | | | |
* | | | | | | | | | | | |
* | | | | | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
[ _LOWER ] = LAYOUT (
KC_TILDE , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , _______ ,
_______ , KC_PIPE , KC_UNDS , KC_BSLS , KC_MINS , KC_PLUS , KC_EQUAL , KC_LCBR , KC_RCBR , KC_LBRC , KC_RBRC , M_DQUOT ,
_______ , M_LRBRC , M_LRCBR , M_LRPRN , M_LRABR , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_LT , KC_GT , KC_QUES , _______ ,
KC_MUTE , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
_______ , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______ ,
_______ , KC_PIPE , KC_UNDS , KC_BSLS , KC_MINS , KC_PLUS , KC_F12 , _______ , _______ , _______ , _______ , _______ ,
_______ , EU_DEG , KC_COLN , KC_LPRN , KC_RPRN , EU_CDOT , _______ , MO_ADJT , _______ , _______ , CLO_TAP , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
) ,
/*
* Raise Layer : Function keys
* Raise Layer : Right symbols + state
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |
* | | F1 | F2 | F3 | F4 | F5 | | ^ | & | * | ~ | ? | |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | | | | | | F11 | | F12 | | | | | |
* | | | | | | F11 | | = | { | } | [ | ] | ` |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - . , - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | | | | | | | ScLock | | | | Ins | | | | | | CapsLock |
* | | | | | | CLOTAP | | | | ADJUST | | … | " | < | > | / |CapsLock |
* ` - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - '
* | | | | | | | | | | RAlt | |
* | Mute | | | | | | | | | | Insert |
* | | | | | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
[ _RAISE ] = LAYOUT (
_______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______ ,
_______ , _______ , _______ , _______ , _______ , KC_F11 , KC_F12 , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , KC_SLCK , _______ , _______ , KC_INS , _______ , _______ , _______ , _______ , _______ , KC_CAPS ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_RALT , _______
_______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_CIRC , KC_AMPR , KC_ASTR , KC_TILDE , KC_QUES , _______ ,
_______ , _______ , _______ , _______ , _______ , KC_F11 , KC_EQUAL , KC_LCBR , KC_RCBR , KC_LBRC , KC_RBRC , KC_GRV ,
_______ , _______ , _______ , _______ , _______ , CLO_TAP , _______ , _______ , MO_ADJT , _______ , EU_TDOT , KC_DQUO , KC_LT , KC_GT , _______ , KC_CAPS ,
KC_MUTE , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_INS
) ,
/*
* Navigation Layer : Number keys , navigation , modification
* Navigation Layer : Number / Function keys , navigation
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | | | Esc | Del | | | | | Left | Up | Down | Right | |
* | | | | | | | | | Left | Up | Down | Right | |
* | - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - . , - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - |
* | | | | | | | | | | | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - '
* | | | | | | | | | | RCtrl | |
* | | | | | | | | | | | |
* | | | | | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
[ _NAV ] = LAYOUT (
_______ , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______ ,
_______ , _______ , KC_ESC , KC_DEL , _______ , _______ , _______ , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_RCTL , _______
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
) ,
/*
* Adjust Layer : RGB
@ -173,67 +188,81 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
bool process_record_user ( uint16_t keycode , keyrecord_t * record ) {
if ( record - > event . pressed ) {
switch ( keycode ) {
case M_LRPRN :
/ / Double tap gets messed up with macros , turning it off
double_tap_it = false ;
SEND_STRING ( " () " SS_TAP ( X_LEFT ) ) ;
return false ;
case M_LRCBR :
double_tap_it = false ;
SEND_STRING ( " {} " SS_TAP ( X_LEFT ) ) ;
return false ;
case M_LRBRC :
double_tap_it = false ;
SEND_STRING ( " [] " SS_TAP ( X_LEFT ) ) ;
return false ;
case M_LRABR :
double_tap_it = false ;
SEND_STRING ( " <> " SS_TAP ( X_LEFT ) ) ;
return false ;
case M_DQUOT :
double_tap_it = false ;
SEND_STRING ( " '' " SS_TAP ( X_LEFT ) ) ;
return false ;
case DBL_TAP :
double_tap_it = ! double_tap_it ;
case CLO_TAP :
close_tap_it = close_tap_it & CLO_ACTIVE ?
CLO_USED :
CLO_ACTIVE | CLO_PRESSED ;
return false ;
case KC_LEAD :
double_tap_it = false ;
close_tap_it = CLO_DISABLED ;
return true ;
}
} else if ( double_tap_it & &
keycode ! = DBL_TAP & &
} else if ( close_tap_it & CLO_ACTIVE & &
keycode ! = CLO_TAP & &
keycode ! = OSL ( _RAISE ) & &
keycode ! = OSL ( _LOWER ) & &
keycode ! = MO ( _NAV ) ) {
double_tap_it = false ;
tap_code16 ( keycode ) ;
close_tap_it = close_tap_it & CLO_PRESSED ?
close_tap_it | CLO_USED :
CLO_DISABLED ;
switch ( keycode )
{
case KC_LPRN :
tap_code16 ( KC_RPRN ) ;
tap_code16 ( KC_LEFT ) ;
break ;
case KC_RPRN :
tap_code16 ( KC_LEFT ) ;
tap_code16 ( KC_LPRN ) ;
break ;
case KC_LCBR :
tap_code16 ( KC_RCBR ) ;
tap_code16 ( KC_LEFT ) ;
break ;
case KC_RCBR :
tap_code16 ( KC_LEFT ) ;
tap_code16 ( KC_LCBR ) ;
break ;
case KC_LBRC :
tap_code16 ( KC_RBRC ) ;
tap_code16 ( KC_LEFT ) ;
break ;
case KC_RBRC :
tap_code16 ( KC_LEFT ) ;
tap_code16 ( KC_LBRC ) ;
break ;
case KC_LT :
tap_code16 ( KC_GT ) ;
tap_code16 ( KC_LEFT ) ;
break ;
case KC_GT :
tap_code16 ( KC_LEFT ) ;
tap_code16 ( KC_LT ) ;
break ;
default :
tap_code16 ( keycode ) ;
tap_code16 ( KC_LEFT ) ;
break ;
}
} else {
switch ( keycode ) {
case CLO_TAP :
close_tap_it = close_tap_it & CLO_USED ?
CLO_DISABLED :
CLO_RELEASE ( close_tap_it ) ;
}
}
return true ;
}
layer_state_t layer_state_set_user ( layer_state_t state ) { return update_tri_layer_state ( state , _LOWER , _RAISE , _ADJUST ) ; }
/ / layer_state_t layer_state_set_user ( layer_state_t state ) { return update_tri_layer_state ( state , _LOWER , _RAISE , _ADJUST ) ; }
# ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user ( oled_rotation_t rotation ) { return OLED_ROTATION_180 ; }
/ / clang - format off
static void render_kyria_logo ( void ) {
static const char PROGMEM kyria_logo [ ] = {
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 , 128 , 192 , 224 , 240 , 112 , 120 , 56 , 60 , 28 , 30 , 14 , 14 , 14 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 14 , 14 , 14 , 30 , 28 , 60 , 56 , 120 , 112 , 240 , 224 , 192 , 128 , 128 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 192 , 224 , 240 , 124 , 62 , 31 , 15 , 7 , 3 , 1 , 128 , 192 , 224 , 240 , 120 , 56 , 60 , 28 , 30 , 14 , 14 , 7 , 7 , 135 , 231 , 127 , 31 , 255 , 255 , 31 , 127 , 231 , 135 , 7 , 7 , 14 , 14 , 30 , 28 , 60 , 56 , 120 , 240 , 224 , 192 , 128 , 1 , 3 , 7 , 15 , 31 , 62 , 124 , 240 , 224 , 192 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 240 , 252 , 255 , 31 , 7 , 1 , 0 , 0 , 192 , 240 , 252 , 254 , 255 , 247 , 243 , 177 , 176 , 48 , 48 , 48 , 48 , 48 , 48 , 48 , 120 , 254 , 135 , 1 , 0 , 0 , 255 , 255 , 0 , 0 , 1 , 135 , 254 , 120 , 48 , 48 , 48 , 48 , 48 , 48 , 48 , 176 , 177 , 243 , 247 , 255 , 254 , 252 , 240 , 192 , 0 , 0 , 1 , 7 , 31 , 255 , 252 , 240 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 0 , 254 , 255 , 255 , 1 , 1 , 7 , 30 , 120 , 225 , 129 , 131 , 131 , 134 , 134 , 140 , 140 , 152 , 152 , 177 , 183 , 254 , 248 , 224 , 255 , 255 , 224 , 248 , 254 , 183 , 177 , 152 , 152 , 140 , 140 , 134 , 134 , 131 , 131 , 129 , 225 , 120 , 30 , 7 , 1 , 1 , 255 , 255 , 254 , 0 , 0 , 0 , 0 , 0 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 255 , 255 , 0 , 0 , 192 , 192 , 48 , 48 , 0 , 0 , 240 , 240 , 0 , 0 , 0 , 0 , 0 , 0 , 240 , 240 , 0 , 0 , 240 , 240 , 192 , 192 , 48 , 48 , 48 , 48 , 192 , 192 , 0 , 0 , 48 , 48 , 243 , 243 , 0 , 0 , 0 , 0 , 0 , 0 , 48 , 48 , 48 , 48 , 48 , 48 , 192 , 192 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 0 , 127 , 255 , 255 , 128 , 128 , 224 , 120 , 30 , 135 , 129 , 193 , 193 , 97 , 97 , 49 , 49 , 25 , 25 , 141 , 237 , 127 , 31 , 7 , 255 , 255 , 7 , 31 , 127 , 237 , 141 , 25 , 25 , 49 , 49 , 97 , 97 , 193 , 193 , 129 , 135 , 30 , 120 , 224 , 128 , 128 , 255 , 255 , 127 , 0 , 0 , 0 , 0 , 0 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 63 , 63 , 3 , 3 , 12 , 12 , 48 , 48 , 0 , 0 , 0 , 0 , 51 , 51 , 51 , 51 , 51 , 51 , 15 , 15 , 0 , 0 , 63 , 63 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 48 , 48 , 63 , 63 , 48 , 48 , 0 , 0 , 12 , 12 , 51 , 51 , 51 , 51 , 51 , 51 , 63 , 63 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 15 , 63 , 255 , 248 , 224 , 128 , 0 , 0 , 3 , 15 , 63 , 127 , 255 , 239 , 207 , 141 , 13 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 30 , 127 , 225 , 128 , 0 , 0 , 255 , 255 , 0 , 0 , 128 , 225 , 127 , 30 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 13 , 141 , 207 , 239 , 255 , 127 , 63 , 15 , 3 , 0 , 0 , 128 , 224 , 248 , 255 , 63 , 15 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 7 , 15 , 62 , 124 , 248 , 240 , 224 , 192 , 128 , 1 , 3 , 7 , 15 , 30 , 28 , 60 , 56 , 120 , 112 , 112 , 224 , 224 , 225 , 231 , 254 , 248 , 255 , 255 , 248 , 254 , 231 , 225 , 224 , 224 , 112 , 112 , 120 , 56 , 60 , 28 , 30 , 15 , 7 , 3 , 1 , 128 , 192 , 224 , 240 , 248 , 124 , 62 , 15 , 7 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 3 , 7 , 15 , 14 , 30 , 28 , 60 , 56 , 120 , 112 , 112 , 112 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 224 , 112 , 112 , 112 , 120 , 56 , 60 , 28 , 30 , 14 , 15 , 7 , 3 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
} ;
oled_write_raw_P ( kyria_logo , sizeof ( kyria_logo ) ) ;
}
static void render_qmk_logo ( void ) {
static const char PROGMEM qmk_logo [ ] = {
0x80 , 0x81 , 0x82 , 0x83 , 0x84 , 0x85 , 0x86 , 0x87 , 0x88 , 0x89 , 0x8a , 0x8b , 0x8c , 0x8d , 0x8e , 0x8f , 0x90 , 0x91 , 0x92 , 0x93 , 0x94 ,
@ -243,6 +272,11 @@ static void render_qmk_logo(void) {
oled_write_P ( qmk_logo , false ) ;
}
/ / clang - format on
static void render_static_info ( void ) {
render_qmk_logo ( ) ;
oled_write_P ( PSTR ( " Kyria rev1.0 \n " ) , false ) ;
oled_write_P ( PSTR ( " Keymap: plattfot v2 \n " ) , false ) ;
}
static void render_status ( void ) {
/ / QMK Logo and version information
@ -254,16 +288,16 @@ static void render_status(void) {
oled_write_P ( PSTR ( " Layer: " ) , false ) ;
switch ( get_highest_layer ( layer_state ) ) {
case _DEFAULT :
oled_write_P ( PSTR ( " plattfot \n " ) , false ) ;
oled_write_P ( PSTR ( " base \n " ) , false ) ;
break ;
case _LOWER :
oled_write_P ( PSTR ( " symbols \n " ) , false ) ;
oled_write_P ( PSTR ( " <-sym/fun-> \n " ) , false ) ;
break ;
case _RAISE :
oled_write_P ( PSTR ( " function keys \n " ) , false ) ;
oled_write_P ( PSTR ( " <-fun/sym-> \n " ) , false ) ;
break ;
case _NAV :
oled_write_P ( PSTR ( " numbers /navi \n " ) , false ) ;
oled_write_P ( PSTR ( " num/nav \n " ) , false ) ;
break ;
case _ADJUST :
oled_write_P ( PSTR ( " adjust \n " ) , false ) ;
@ -276,15 +310,15 @@ static void render_status(void) {
led_t led_state = host_keyboard_led_state ( ) ;
if ( led_state . num_lock ) {
oled_write_P ( PSTR ( " NUMLCK " ) , false ) ;
} else if ( doubl e_tap_it) {
oled_write_P ( PSTR ( " Double " ) , false ) ;
} else if ( clos e_tap_it) {
oled_write_P ( PSTR ( " Close " ) , false ) ;
} else {
oled_write_P ( PSTR ( " " ) , false ) ;
}
if ( led_state . caps_lock ) {
oled_write_P ( PSTR ( " CAPLCK " ) , false ) ;
} else if ( doubl e_tap_it) {
} else if ( clos e_tap_it) {
oled_write_P ( PSTR ( " Tap " ) , false ) ;
} else {
oled_write_P ( PSTR ( " " ) , false ) ;
@ -297,7 +331,7 @@ void oled_task_user(void) {
if ( is_keyboard_master ( ) ) {
render_status ( ) ; / / Renders the current keyboard state ( layer , lock , caps , scroll , etc )
} else {
render_kyria_log o ( ) ;
render_static_inf o ( ) ;
}
}
# endif
@ -316,6 +350,16 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
clear_oneshot_layer_state ( ONESHOT_OTHER_KEY_PRESSED ) ;
}
break ;
case _NAV :
/ / Brightness control
if ( clockwise ) {
tap_code ( KC_BRIU ) ;
clear_oneshot_layer_state ( ONESHOT_OTHER_KEY_PRESSED ) ;
} else {
tap_code ( KC_BRID ) ;
clear_oneshot_layer_state ( ONESHOT_OTHER_KEY_PRESSED ) ;
}
break ;
default :
/ / Volume control
if ( clockwise ) {
@ -330,13 +374,12 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
} else if ( index = = 1 ) {
switch ( get_highest_layer ( layer_state ) ) {
case _RAISE :
/ / Credit to Thomas Baart for this
/ / See https : / / docs . splitkb . com / hc / en - us / articles / 360010513760 - How - can - I - use - a - rotary - encoder -
/ / Scroll through the workspaces
if ( clockwise ) {
tap_code16 ( C ( KC_TAB ) ) ;
tap_code16 ( G ( KC_G T ) ) ;
clear_oneshot_layer_state ( ONESHOT_OTHER_KEY_PRESSED ) ;
} else {
tap_code16 ( S ( C ( KC_TAB ) ) ) ;
tap_code16 ( G ( KC_L T ) ) ;
clear_oneshot_layer_state ( ONESHOT_OTHER_KEY_PRESSED ) ;
}
break ;