mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 05:12:33 +01:00 
			
		
		
		
	Ninjonas userspace (#8070)
* [keymap(kyria)] moved OLED & encoder implementation to separate classes * [feat] created logic to cycle through hue wheel when starting keyboard * [feat] created logic to cycle through hue wheel and return to user's default color * [refactor] updating OLED layout for crkbd & lily58 * [refactor] updating OLED layout for crkbd & lily58 * [fix(8070)] updating encoder.c logic based off drashna's code review * [refactor(8070)] added key to send  + Shift + M
This commit is contained in:
		
							parent
							
								
									c6f389b527
								
							
						
					
					
						commit
						50554ca270
					
				| @ -20,13 +20,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| //#define USE_MATRIX_I2C
 | #define TAPPING_TERM 200 | ||||||
| 
 |  | ||||||
| /* Select hand configuration */ |  | ||||||
| 
 | 
 | ||||||
| #define MASTER_LEFT | #define MASTER_LEFT | ||||||
| // #define MASTER_RIGHT
 |  | ||||||
| // #define EE_HANDS
 |  | ||||||
| 
 | 
 | ||||||
| #define USE_SERIAL_PD2 | #define USE_SERIAL_PD2 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -20,7 +20,7 @@ | |||||||
| 
 | 
 | ||||||
| #ifdef OLED_DRIVER_ENABLE | #ifdef OLED_DRIVER_ENABLE | ||||||
|   #define OLED_DISPLAY_128X64 |   #define OLED_DISPLAY_128X64 | ||||||
|   #define OLED_TIMEOUT 30000 |   #define OLED_TIMEOUT 15000 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifdef RGBLIGHT_ENABLE | #ifdef RGBLIGHT_ENABLE | ||||||
| @ -32,10 +32,6 @@ | |||||||
| #    define RGBLIGHT_SPLIT | #    define RGBLIGHT_SPLIT | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| // Allows to use either side as the master. Look at the documentation for info:
 |  | ||||||
| // https://docs.qmk.fm/#/config_options?id=setting-handedness
 |  | ||||||
| #define EE_HANDS |  | ||||||
| 
 |  | ||||||
| // If you are using an Elite C rev3 on the slave side, uncomment the lines below:
 | // If you are using an Elite C rev3 on the slave side, uncomment the lines below:
 | ||||||
| #define SPLIT_USB_DETECT | #define SPLIT_USB_DETECT | ||||||
| #define SPLIT_USB_TIMEOUT 1000 | #define SPLIT_USB_TIMEOUT 1000 | ||||||
|  | |||||||
							
								
								
									
										84
									
								
								keyboards/kyria/keymaps/ninjonas/encoder.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								keyboards/kyria/keymaps/ninjonas/encoder.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,84 @@ | |||||||
|  | /* Copyright 2020 ninjonas
 | ||||||
|  |  * | ||||||
|  |  * 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 "ninjonas.h" | ||||||
|  | 
 | ||||||
|  | #ifdef ENCODER_ENABLE | ||||||
|  | void encoder_update_user(uint8_t index, bool clockwise) { | ||||||
|  |     if (index == 0) { | ||||||
|  |         switch (get_highest_layer(layer_state)) { | ||||||
|  |             case _LOWER: | ||||||
|  |                 if (clockwise) { | ||||||
|  |                     tap_code16(SGUI(KC_TAB)); | ||||||
|  |                 } else { | ||||||
|  |                     tap_code16(LGUI(KC_TAB)); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |             case _RAISE: | ||||||
|  |                 if (clockwise) { | ||||||
|  |                     tap_code(KC_PGUP); | ||||||
|  |                 } else { | ||||||
|  |                     tap_code(KC_PGDN); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |             case _ADJUST: | ||||||
|  |                 if (clockwise) { | ||||||
|  |                     rgblight_increase_hue(); | ||||||
|  |                 } else { | ||||||
|  |                     rgblight_decrease_hue(); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |             default: | ||||||
|  |                 if (clockwise) { | ||||||
|  |                     tap_code(KC_BRIU); | ||||||
|  |                 } else { | ||||||
|  |                     tap_code(KC_BRID); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |     } else if (index == 1) { | ||||||
|  |         switch (get_highest_layer(layer_state)) { | ||||||
|  |             case _LOWER: | ||||||
|  |                 if (clockwise) { | ||||||
|  |                     tap_code(KC_UP); | ||||||
|  |                 } else { | ||||||
|  |                     tap_code(KC_DOWN); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |             case _RAISE: | ||||||
|  |                 if (clockwise) { | ||||||
|  |                     tap_code16(LCTL(KC_TAB)); | ||||||
|  |                 } else { | ||||||
|  |                     tap_code16(LCTL(LSFT(KC_TAB))); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |             case _ADJUST: | ||||||
|  |                 if (clockwise) { | ||||||
|  |                     rgblight_increase_val(); | ||||||
|  |                 } else { | ||||||
|  |                     rgblight_decrease_val(); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |             default: | ||||||
|  |                 if (clockwise) { | ||||||
|  |                     tap_code(KC_VOLU); | ||||||
|  |                 } else { | ||||||
|  |                     tap_code(KC_VOLD); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | #endif | ||||||
| @ -60,9 +60,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
| //  |--------+-----——-+——------+-——-----+——------+——-----|                                |------—+——------+——------+——------+——------+--------|
 | //  |--------+-----——-+——------+-——-----+——------+——-----|                                |------—+——------+——------+——------+——------+--------|
 | ||||||
|      _____________________LOWER_L2_______________________,                                 _____________________LOWER_R2_______________________, |      _____________________LOWER_L2_______________________,                                 _____________________LOWER_R2_______________________, | ||||||
| //  |--------+-----——-+——------+-——-----+——------+——-----+———-----------.  ,——————————————+------—+——------+——------+——------+——------+--------|
 | //  |--------+-----——-+——------+-——-----+——------+——-----+———-----------.  ,——————————————+------—+——------+——------+——------+——------+--------|
 | ||||||
|      _____________________LOWER_L3_______________________,_______,_______, _______,_______,_____________________LOWER_R3_______________________, |      _____________________LOWER_L3_______________________,_______,_______,  _______,_______,_____________________LOWER_R3_______________________, | ||||||
| //  `--------------------------+--------+--------+-------+-------+------|  |------+-------+-------+--------+--------+--------+--------+--------'
 | //  `--------------------------+--------+--------+-------+-------+------|  |------+-------+-------+--------+--------+--------+--------+--------'
 | ||||||
|                                 _______,_______,_______,_______,_______,   _______,_______,_______,_______,_______ |                                 _______,_______,_______,_______,_______,    _______,_______,_______,_______,_______ | ||||||
| //                             `----------------------------------------'  `----------------------------------------'
 | //                             `----------------------------------------'  `----------------------------------------'
 | ||||||
|   ), |   ), | ||||||
| 
 | 
 | ||||||
| @ -72,9 +72,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
| //  |--------+-----——-+——------+-——-----+——------+——-----|                                |------—+——------+——------+——------+——------+--------|
 | //  |--------+-----——-+——------+-——-----+——------+——-----|                                |------—+——------+——------+——------+——------+--------|
 | ||||||
|      _____________________SYM_LEFT_______________________,                                 _____________________SYM_RIGHT______________________, |      _____________________SYM_LEFT_______________________,                                 _____________________SYM_RIGHT______________________, | ||||||
| //  |--------+-----——-+——------+-——-----+——------+——-----+———-----------.  ,——————————————+------—+——------+——------+——------+——------+--------|
 | //  |--------+-----——-+——------+-——-----+——------+——-----+———-----------.  ,——————————————+------—+——------+——------+——------+——------+--------|
 | ||||||
|      _____________________FUNC_LEFT______________________,_______,_______, _______,_______,_____________________FUNC_RIGHT_____________________, |      _____________________FUNC_LEFT______________________,_______,_______,  K_CPRF,_______,_____________________FUNC_RIGHT_____________________, | ||||||
| //  `--------------------------+--------+--------+-------+-------+------|  |------+-------+-------+--------+--------+--------+--------+--------'
 | //  `--------------------------+--------+--------+-------+-------+------|  |------+-------+-------+--------+--------+--------+--------+--------'
 | ||||||
|                                 _______,_______,_______,_______,_______,   _______,_______,_______,_______,_______ |                                 _______,_______,_______,_______,_______,    _______,_______,_______,_______,_______ | ||||||
| //                             `----------------------------------------'  `----------------------------------------'
 | //                             `----------------------------------------'  `----------------------------------------'
 | ||||||
|   ), |   ), | ||||||
| 
 | 
 | ||||||
| @ -84,9 +84,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
| //  |--------+-----——-+——------+-——-----+——------+——-----|                                |------—+——------+——------+——------+——------+--------|
 | //  |--------+-----——-+——------+-——-----+——------+——-----|                                |------—+——------+——------+——------+——------+--------|
 | ||||||
|      _____________________ADJUST_L2______________________,                                 _____________________ADJUST_R2______________________, |      _____________________ADJUST_L2______________________,                                 _____________________ADJUST_R2______________________, | ||||||
| //  |--------+-----——-+——------+-——-----+——------+——-----+———-----------.  ,——————————————+------—+——------+——------+——------+——------+--------|
 | //  |--------+-----——-+——------+-——-----+——------+——-----+———-----------.  ,——————————————+------—+——------+——------+——------+——------+--------|
 | ||||||
|      _____________________ADJUST_L3______________________,_______,_______, _______,_______,_____________________ADJUST_R3______________________, |      _____________________ADJUST_L3______________________,_______,_______,  _______,_______,_____________________ADJUST_R3______________________, | ||||||
| //  `--------------------------+--------+--------+-------+-------+------|  |------+-------+-------+--------+--------+--------+--------+--------'
 | //  `--------------------------+--------+--------+-------+-------+------|  |------+-------+-------+--------+--------+--------+--------+--------'
 | ||||||
|                                 _______,_______,_______,_______,_______,   _______,_______,_______,_______,_______ |                                 _______,_______,_______,_______,_______,    _______,_______,_______,_______,_______ | ||||||
| //                             `----------------------------------------'  `----------------------------------------'
 | //                             `----------------------------------------'  `----------------------------------------'
 | ||||||
|   ), |   ), | ||||||
| /*
 | /*
 | ||||||
| @ -102,214 +102,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
| //                             `----------------------------------------'  `----------------------------------------'
 | //                             `----------------------------------------'  `----------------------------------------'
 | ||||||
|   ), |   ), | ||||||
| */ | */ | ||||||
| }; | }; | ||||||
| 
 |  | ||||||
| #ifdef OLED_DRIVER_ENABLE |  | ||||||
| oled_rotation_t oled_init_user(oled_rotation_t rotation) { |  | ||||||
| 	return OLED_ROTATION_180; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void render_logo(void) { |  | ||||||
|     static const char PROGMEM logo[] = { |  | ||||||
|     // Converter: https://javl.github.io/image2cpp/
 |  | ||||||
|     // Image Dimensions: 128x64
 |  | ||||||
|     // Code Output Format: Plain Bytes
 |  | ||||||
|     // Draw Mode: Vertical, 1 bit per pixel
 |  | ||||||
| 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0xe0,  |  | ||||||
| 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0xe0, 0xe0, 0xe0,  |  | ||||||
| 0xe0, 0x00, 0x60, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00,  |  | ||||||
| 0xc0, 0xe0, 0xe0, 0xe0, 0x20, 0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0,  |  | ||||||
| 0xe0, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0x00,  |  | ||||||
| 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xe0, 0xe0, 0xfc, 0xfe,  |  | ||||||
| 0xfe, 0xfe, 0xee, 0xee, 0x0e, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80,  |  | ||||||
| 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,  |  | ||||||
| 0x00, 0x00, 0x79, 0xfd, 0xfd, 0xfd, 0xec, 0xee, 0x76, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,  |  | ||||||
| 0x07, 0x3f, 0xff, 0xfc, 0xf8, 0xff, 0x7f, 0x07, 0x0f, 0x7f, 0xff, 0xf8, 0xfc, 0xff, 0x3f, 0x07,  |  | ||||||
| 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xfe, 0xf0, 0xff, 0x7f, 0x0f, 0x07, 0x3f, 0xff, 0xfc, 0xf8,  |  | ||||||
| 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0xff, 0xfe, 0xf8, 0xff, 0xff, 0x1f, 0x03,  |  | ||||||
| 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xff, 0xf6, 0xe6, 0xe6, 0xf7, 0xf7, 0x77, 0x37, 0x17, 0x00, 0x30,  |  | ||||||
| 0x79, 0xfd, 0xfd, 0xfd, 0xee, 0xee, 0x76, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,  |  | ||||||
| 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x7f, 0xff, 0xf1, 0xe0, 0xe0, 0xff, 0xff, 0x7f, 0x3f,  |  | ||||||
| 0x0e, 0x00, 0x0e, 0x3f, 0x7f, 0xff, 0xff, 0xe0, 0xe0, 0xe1, 0xff, 0x7f, 0x7f, 0x3f, 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, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,  |  | ||||||
| 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00,  |  | ||||||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  |  | ||||||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  |  | ||||||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  |  | ||||||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  |  | ||||||
| 0x00, 0x0c, 0x3c, 0xfc, 0xfc, 0xfc, 0xc0, 0x00, 0xe0, 0xfc, 0xfc, 0x7c, 0x1c, 0x00, 0xf0, 0xf8,  |  | ||||||
| 0xf8, 0xfc, 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x30, 0xb8, 0xbc, 0xbc,  |  | ||||||
| 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x1d,  |  | ||||||
| 0x00, 0xf0, 0xf8, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0xe0, 0xf0,  |  | ||||||
| 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x20, 0xb8, 0xbc, 0xbc,  |  | ||||||
| 0xbc, 0xdc, 0xdc, 0xfc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x0c, 0x7c, 0xfc, 0xfc, 0xc0, 0x00, 0xe0,  |  | ||||||
| 0xfc, 0xfc, 0xfc, 0xfc, 0xf0, 0x80, 0x00, 0xf8, 0xfc, 0xfc, 0x3c, 0x04, 0x0c, 0x7c, 0xfc, 0xfc,  |  | ||||||
| 0xf0, 0x00, 0xc0, 0xfc, 0xfc, 0x7c, 0xfc, 0xf8, 0xc0, 0x00, 0xf0, 0xfc, 0xfc, 0x7c, 0x0c, 0x00,  |  | ||||||
| 0x00, 0x00, 0xc0, 0xc1, 0xc7, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x07, 0x0f,  |  | ||||||
| 0x1f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x1f, 0x1f,  |  | ||||||
| 0x1d, 0x1d, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00,  |  | ||||||
| 0x00, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x03, 0x07,  |  | ||||||
| 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1f,  |  | ||||||
| 0x1d, 0x1d, 0x0c, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f,  |  | ||||||
| 0x0f, 0x01, 0x00, 0x07, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f,  |  | ||||||
| 0x1f, 0x1e, 0x1f, 0x1f, 0x03, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00,  |  | ||||||
| 0x00, 0x80, 0xc1, 0xf1, 0xf9, 0xf9, 0xf9, 0xb8, 0xb8, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,  |  | ||||||
| 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,  |  | ||||||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,  |  | ||||||
| 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,  |  | ||||||
| 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,  |  | ||||||
| 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,  |  | ||||||
| 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,  |  | ||||||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,  |  | ||||||
| 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x7c, 0xfe, 0xff, 0xff, 0xc7, 0x83, 0x83,  |  | ||||||
| 0xc7, 0xff, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xc7, 0x83, 0x83, 0xc7, 0xff,  |  | ||||||
| 0xff, 0xfe, 0x7c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe,  |  | ||||||
| 0x00, 0x00, 0x03, 0x1f, 0xff, 0xff, 0xf0, 0xe0, 0xfe, 0xff, 0x1f, 0x3f, 0xff, 0xfe, 0xe0, 0xf0,  |  | ||||||
| 0xff, 0xff, 0x1f, 0x03, 0x00, 0x01, 0x0f, 0x7f, 0xff, 0xf8, 0xc0, 0xfc, 0xff, 0x3f, 0x1f, 0xff,  |  | ||||||
| 0xfe, 0xf0, 0xe0, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x01, 0x07, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xfc,  |  | ||||||
| 0xff, 0x7f, 0x0f, 0x03, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xdb, 0x9b, 0x9b, 0xdf, 0xdf, 0xdf, 0xde,  |  | ||||||
| 0x1c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,  |  | ||||||
| 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03,  |  | ||||||
| 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,  |  | ||||||
| 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03,  |  | ||||||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03,  |  | ||||||
| 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,  |  | ||||||
| 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x1f, 0x0f,  |  | ||||||
| 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00,  |  | ||||||
| 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00 |  | ||||||
|     }; |  | ||||||
|     oled_write_raw_P(logo, sizeof(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, |  | ||||||
|     0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, |  | ||||||
|     0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; |  | ||||||
| 
 |  | ||||||
|   oled_write_P(qmk_logo, false); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void oled_white_space(void){ |  | ||||||
|   oled_write_P(PSTR(" "), false); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void render_status(void) { |  | ||||||
|      oled_write_P(PSTR("\nLayer: "), false); |  | ||||||
|      oled_write_P(PSTR("LOW"), (layer_state_is(_LOWER) & !layer_state_is(_ADJUST))); |  | ||||||
|      oled_white_space(); |  | ||||||
|      oled_write_P(PSTR("RAI"), (layer_state_is(_RAISE) & !layer_state_is(_ADJUST))); |  | ||||||
|      oled_white_space(); |  | ||||||
|      oled_write_P(PSTR("ADJ"), layer_state_is(_ADJUST)); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void render_default_layer_state(void) { |  | ||||||
|   oled_write_P(PSTR("\nLayout: "), false); |  | ||||||
|   switch (biton32(default_layer_state)) { |  | ||||||
|       case _COLEMAK: |  | ||||||
|         oled_write_P(PSTR("Colemak"), false); |  | ||||||
|         break; |  | ||||||
|       case _DVORAK: |  | ||||||
|         oled_write_P(PSTR("Dvorak"), false); |  | ||||||
|         break; |  | ||||||
|       case _QWERTY: |  | ||||||
|         oled_write_P(PSTR("Qwerty"), false); |  | ||||||
|         break; |  | ||||||
|       default: |  | ||||||
|         oled_write_ln_P(PSTR("Undefined"), false); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void render_mod_status(uint8_t modifiers) { |  | ||||||
|   oled_write_P(PSTR("\nMods: "), false); |  | ||||||
|   oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT)); |  | ||||||
|   oled_white_space(); |  | ||||||
|   oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL)); |  | ||||||
|   oled_white_space(); |  | ||||||
|   oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); |  | ||||||
|   oled_white_space(); |  | ||||||
|   oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void oled_task_user(void) { |  | ||||||
|     if (is_keyboard_master()) { |  | ||||||
|         render_qmk_logo(); |  | ||||||
|         render_default_layer_state(); |  | ||||||
|         render_status(); |  | ||||||
|         render_mod_status(get_mods()|get_oneshot_mods()); |  | ||||||
|     } else { |  | ||||||
|         render_logo(); |  | ||||||
|         oled_scroll_left(); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #ifdef ENCODER_ENABLE |  | ||||||
| void encoder_update_user(uint8_t index, bool clockwise) { |  | ||||||
|     if (index == 0) { |  | ||||||
|         switch (biton32(layer_state)) { |  | ||||||
|             case _LOWER: |  | ||||||
|                 if (clockwise) { |  | ||||||
|                     tap_code16(SGUI(KC_TAB)); |  | ||||||
|                 } else { |  | ||||||
|                     tap_code16(LGUI(KC_TAB)); |  | ||||||
|                 } |  | ||||||
|                 break; |  | ||||||
|             case _RAISE: |  | ||||||
|                 if (clockwise) { |  | ||||||
|                     tap_code(KC_PGUP); |  | ||||||
|                 } else { |  | ||||||
|                     tap_code(KC_PGDN); |  | ||||||
|                 } |  | ||||||
|                 break; |  | ||||||
|             case _ADJUST: |  | ||||||
|                 if (clockwise) { |  | ||||||
|                     rgblight_increase_hue(); |  | ||||||
|                 } else { |  | ||||||
|                     rgblight_decrease_hue(); |  | ||||||
|                 } |  | ||||||
|                 break; |  | ||||||
|             default: |  | ||||||
|                 if (clockwise) { |  | ||||||
|                     tap_code(KC_BRIU); |  | ||||||
|                 } else { |  | ||||||
|                     tap_code(KC_BRID); |  | ||||||
|                 } |  | ||||||
|                 break; |  | ||||||
|         } |  | ||||||
|     } else if (index == 1) { |  | ||||||
|         switch (biton32(layer_state)) { |  | ||||||
|             case _LOWER: |  | ||||||
|                 if (!clockwise) { |  | ||||||
|                     tap_code(KC_UP); |  | ||||||
|                 } else { |  | ||||||
|                     tap_code(KC_DOWN); |  | ||||||
|                 } |  | ||||||
|                 break; |  | ||||||
|             case _RAISE: |  | ||||||
|                 if (!clockwise) { |  | ||||||
|                     tap_code16(LCTL(KC_TAB)); |  | ||||||
|                 } else { |  | ||||||
|                     tap_code16(LCTL(LSFT(KC_TAB))); |  | ||||||
|                 } |  | ||||||
|                 break; |  | ||||||
|             case _ADJUST: |  | ||||||
|                 if (!clockwise) { |  | ||||||
|                     rgblight_increase_val(); |  | ||||||
|                 } else { |  | ||||||
|                     rgblight_decrease_val(); |  | ||||||
|                 } |  | ||||||
|                 break; |  | ||||||
|             default: |  | ||||||
|                 if (!clockwise) { |  | ||||||
|                     tap_code(KC_VOLU); |  | ||||||
|                 } else { |  | ||||||
|                     tap_code(KC_VOLD); |  | ||||||
|                 } |  | ||||||
|                 break; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
							
								
								
									
										168
									
								
								keyboards/kyria/keymaps/ninjonas/oled.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								keyboards/kyria/keymaps/ninjonas/oled.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,168 @@ | |||||||
|  | /* Copyright 2020 ninjonas
 | ||||||
|  |  * | ||||||
|  |  * 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 "ninjonas.h" | ||||||
|  | 
 | ||||||
|  | #ifdef OLED_DRIVER_ENABLE | ||||||
|  | oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; } | ||||||
|  | 
 | ||||||
|  | static void render_logo(void) { | ||||||
|  |     static const char PROGMEM logo[] = { | ||||||
|  |     // Converter: https://javl.github.io/image2cpp/
 | ||||||
|  |     // Image Dimensions: 128x64
 | ||||||
|  |     // Code Output Format: Plain Bytes
 | ||||||
|  |     // Draw Mode: Vertical, 1 bit per pixel
 | ||||||
|  | 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0xe0,  | ||||||
|  | 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0xe0, 0xe0, 0xe0,  | ||||||
|  | 0xe0, 0x00, 0x60, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00,  | ||||||
|  | 0xc0, 0xe0, 0xe0, 0xe0, 0x20, 0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0,  | ||||||
|  | 0xe0, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0x00,  | ||||||
|  | 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xe0, 0xe0, 0xfc, 0xfe,  | ||||||
|  | 0xfe, 0xfe, 0xee, 0xee, 0x0e, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80,  | ||||||
|  | 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,  | ||||||
|  | 0x00, 0x00, 0x79, 0xfd, 0xfd, 0xfd, 0xec, 0xee, 0x76, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,  | ||||||
|  | 0x07, 0x3f, 0xff, 0xfc, 0xf8, 0xff, 0x7f, 0x07, 0x0f, 0x7f, 0xff, 0xf8, 0xfc, 0xff, 0x3f, 0x07,  | ||||||
|  | 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xfe, 0xf0, 0xff, 0x7f, 0x0f, 0x07, 0x3f, 0xff, 0xfc, 0xf8,  | ||||||
|  | 0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0xff, 0xfe, 0xf8, 0xff, 0xff, 0x1f, 0x03,  | ||||||
|  | 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xff, 0xf6, 0xe6, 0xe6, 0xf7, 0xf7, 0x77, 0x37, 0x17, 0x00, 0x30,  | ||||||
|  | 0x79, 0xfd, 0xfd, 0xfd, 0xee, 0xee, 0x76, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,  | ||||||
|  | 0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x7f, 0xff, 0xf1, 0xe0, 0xe0, 0xff, 0xff, 0x7f, 0x3f,  | ||||||
|  | 0x0e, 0x00, 0x0e, 0x3f, 0x7f, 0xff, 0xff, 0xe0, 0xe0, 0xe1, 0xff, 0x7f, 0x7f, 0x3f, 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, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,  | ||||||
|  | 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00,  | ||||||
|  | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  | ||||||
|  | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  | ||||||
|  | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  | ||||||
|  | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  | ||||||
|  | 0x00, 0x0c, 0x3c, 0xfc, 0xfc, 0xfc, 0xc0, 0x00, 0xe0, 0xfc, 0xfc, 0x7c, 0x1c, 0x00, 0xf0, 0xf8,  | ||||||
|  | 0xf8, 0xfc, 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x30, 0xb8, 0xbc, 0xbc,  | ||||||
|  | 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x1d,  | ||||||
|  | 0x00, 0xf0, 0xf8, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0xe0, 0xf0,  | ||||||
|  | 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x20, 0xb8, 0xbc, 0xbc,  | ||||||
|  | 0xbc, 0xdc, 0xdc, 0xfc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x0c, 0x7c, 0xfc, 0xfc, 0xc0, 0x00, 0xe0,  | ||||||
|  | 0xfc, 0xfc, 0xfc, 0xfc, 0xf0, 0x80, 0x00, 0xf8, 0xfc, 0xfc, 0x3c, 0x04, 0x0c, 0x7c, 0xfc, 0xfc,  | ||||||
|  | 0xf0, 0x00, 0xc0, 0xfc, 0xfc, 0x7c, 0xfc, 0xf8, 0xc0, 0x00, 0xf0, 0xfc, 0xfc, 0x7c, 0x0c, 0x00,  | ||||||
|  | 0x00, 0x00, 0xc0, 0xc1, 0xc7, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x07, 0x0f,  | ||||||
|  | 0x1f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x1f, 0x1f,  | ||||||
|  | 0x1d, 0x1d, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00,  | ||||||
|  | 0x00, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x03, 0x07,  | ||||||
|  | 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1f,  | ||||||
|  | 0x1d, 0x1d, 0x0c, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f,  | ||||||
|  | 0x0f, 0x01, 0x00, 0x07, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f,  | ||||||
|  | 0x1f, 0x1e, 0x1f, 0x1f, 0x03, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00,  | ||||||
|  | 0x00, 0x80, 0xc1, 0xf1, 0xf9, 0xf9, 0xf9, 0xb8, 0xb8, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,  | ||||||
|  | 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,  | ||||||
|  | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,  | ||||||
|  | 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,  | ||||||
|  | 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,  | ||||||
|  | 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,  | ||||||
|  | 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,  | ||||||
|  | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,  | ||||||
|  | 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x7c, 0xfe, 0xff, 0xff, 0xc7, 0x83, 0x83,  | ||||||
|  | 0xc7, 0xff, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xc7, 0x83, 0x83, 0xc7, 0xff,  | ||||||
|  | 0xff, 0xfe, 0x7c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe,  | ||||||
|  | 0x00, 0x00, 0x03, 0x1f, 0xff, 0xff, 0xf0, 0xe0, 0xfe, 0xff, 0x1f, 0x3f, 0xff, 0xfe, 0xe0, 0xf0,  | ||||||
|  | 0xff, 0xff, 0x1f, 0x03, 0x00, 0x01, 0x0f, 0x7f, 0xff, 0xf8, 0xc0, 0xfc, 0xff, 0x3f, 0x1f, 0xff,  | ||||||
|  | 0xfe, 0xf0, 0xe0, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x01, 0x07, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xfc,  | ||||||
|  | 0xff, 0x7f, 0x0f, 0x03, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xdb, 0x9b, 0x9b, 0xdf, 0xdf, 0xdf, 0xde,  | ||||||
|  | 0x1c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,  | ||||||
|  | 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03,  | ||||||
|  | 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,  | ||||||
|  | 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03,  | ||||||
|  | 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03,  | ||||||
|  | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,  | ||||||
|  | 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x1f, 0x0f,  | ||||||
|  | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00,  | ||||||
|  | 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00 | ||||||
|  |     }; | ||||||
|  |     oled_write_raw_P(logo, sizeof(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, | ||||||
|  |     0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, | ||||||
|  |     0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; | ||||||
|  | 
 | ||||||
|  |   oled_write_P(qmk_logo, false); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void oled_white_space(void){ | ||||||
|  |   oled_write_P(PSTR(" "), false); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void render_layout_state(void) { | ||||||
|  |   oled_write_P(PSTR("\nLayout: "), false); | ||||||
|  |   switch (biton32(default_layer_state)) { | ||||||
|  |       case _COLEMAK: | ||||||
|  |         oled_write_P(PSTR("Colemak"), false); | ||||||
|  |         break; | ||||||
|  |       case _DVORAK: | ||||||
|  |         oled_write_P(PSTR("Dvorak"), false); | ||||||
|  |         break; | ||||||
|  |       case _QWERTY: | ||||||
|  |         oled_write_P(PSTR("Qwerty"), false); | ||||||
|  |         break; | ||||||
|  |       default: | ||||||
|  |         oled_write_ln_P(PSTR("Undefined"), false); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static void render_layer_state(void) { | ||||||
|  |     oled_write_P(PSTR("\nLayer:"), false); | ||||||
|  |     bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST); | ||||||
|  |     bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST); | ||||||
|  |     bool adjust = layer_state_is(_ADJUST); | ||||||
|  | 
 | ||||||
|  |     if(lower){  | ||||||
|  |       oled_write_P(PSTR(" Lower "), true);  | ||||||
|  |     } else if(raise){  | ||||||
|  |       oled_write_P(PSTR(" Raise "), true);  | ||||||
|  |     } else if(adjust){  | ||||||
|  |       oled_write_P(PSTR(" Adjust "), true);  | ||||||
|  |     } else {  | ||||||
|  |       oled_write_P(PSTR(" Default"), false);  | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void render_mod_state(uint8_t modifiers) { | ||||||
|  |   oled_write_P(PSTR("\nMods: "), false); | ||||||
|  |   oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT)); | ||||||
|  |   oled_white_space(); | ||||||
|  |   oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL)); | ||||||
|  |   oled_white_space(); | ||||||
|  |   oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); | ||||||
|  |   oled_white_space(); | ||||||
|  |   oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static void render_status(void) { | ||||||
|  |   render_qmk_logo(); | ||||||
|  |   render_layout_state(); | ||||||
|  |   render_layer_state(); | ||||||
|  |   render_mod_state(get_mods()|get_oneshot_mods()); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void oled_task_user(void) { | ||||||
|  |     if (is_keyboard_master()) { | ||||||
|  |         render_status(); | ||||||
|  |     } else { | ||||||
|  |         render_logo(); | ||||||
|  |         oled_scroll_left(); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | #endif | ||||||
| @ -1,4 +1,7 @@ | |||||||
| OLED_DRIVER_ENABLE = yes   # Enables the use of OLED displays | OLED_DRIVER_ENABLE = yes   # Enables the use of OLED displays | ||||||
| ENCODER_ENABLE = yes       # Enables the use of one or more encoders | ENCODER_ENABLE = yes       # Enables the use of one or more encoders | ||||||
| RGBLIGHT_ENABLE = yes      # Enable keyboard RGB underglow | RGBLIGHT_ENABLE = yes      # Enable keyboard RGB underglow | ||||||
| LINK_TIME_OPTIMIZATION_ENABLE = yes | LINK_TIME_OPTIMIZATION_ENABLE = yes | ||||||
|  | 
 | ||||||
|  | SRC += encoder.c \
 | ||||||
|  |        oled.c | ||||||
| @ -25,6 +25,7 @@ See: https://docs.qmk.fm/#/feature_userspace | |||||||
| |K_MDSH | MacOS shortcut to get em-dash `–` | | |K_MDSH | MacOS shortcut to get em-dash `–` | | ||||||
| |K_RAPP | MacOS shortcut to switch apps to the right | | |K_RAPP | MacOS shortcut to switch apps to the right | | ||||||
| |K_LAPP | MacOS shortcut to switch apps to the left | | |K_LAPP | MacOS shortcut to switch apps to the left | | ||||||
|  | |K_CPRF |  + Shift + M. Used for switching Google Chrome profiles |  | ||||||
| 
 | 
 | ||||||
| ### [Layers](ninjonas.h#L44) | ### [Layers](ninjonas.h#L44) | ||||||
| |Code | Description | | |Code | Description | | ||||||
|  | |||||||
| @ -17,4 +17,23 @@ | |||||||
| 
 | 
 | ||||||
| layer_state_t layer_state_set_user (layer_state_t state) { | layer_state_t layer_state_set_user (layer_state_t state) { | ||||||
|   return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); |   return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #ifdef RGBLIGHT_ENABLE | ||||||
|  | extern rgblight_config_t rgblight_config; | ||||||
|  | #endif | ||||||
|  | void keyboard_post_init_user() { | ||||||
|  |   #ifdef RGBLIGHT_ENABLE | ||||||
|  |      // Cycles through the entire hue wheel and resetting to default color
 | ||||||
|  |      uint16_t default_hue = rgblight_config.hue; | ||||||
|  |      rgblight_enable_noeeprom();  | ||||||
|  |      layer_state_set_user(layer_state); | ||||||
|  |      rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | ||||||
|  |      for (uint16_t i = 255; i > 0; i--) { | ||||||
|  |           rgblight_sethsv_noeeprom((i + default_hue) % 255, rgblight_config.sat, rgblight_config.val); | ||||||
|  |           matrix_scan(); | ||||||
|  |           wait_ms(10); | ||||||
|  |      } | ||||||
|  |   #endif | ||||||
|  |   layer_state_set_user(layer_state); | ||||||
| } | } | ||||||
| @ -37,6 +37,7 @@ | |||||||
| // Shortcut Keys
 | // Shortcut Keys
 | ||||||
| #define K_LOCK LGUI(LCTL(KC_Q)) // Locks screen on MacOS
 | #define K_LOCK LGUI(LCTL(KC_Q)) // Locks screen on MacOS
 | ||||||
| #define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard
 | #define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard
 | ||||||
|  | #define K_CPRF LGUI(LSFT(KC_M)) //   + Shift + M. Used for switching Google Chrome profiles
 | ||||||
| #define K_MDSH LSFT(LALT(KC_MINS)) | #define K_MDSH LSFT(LALT(KC_MINS)) | ||||||
| #define K_LAPP SGUI(KC_TAB) //  + Shift + Tab
 | #define K_LAPP SGUI(KC_TAB) //  + Shift + Tab
 | ||||||
| #define K_RAPP LGUI(KC_TAB) //  + Tab
 | #define K_RAPP LGUI(KC_TAB) //  + Tab
 | ||||||
|  | |||||||
| @ -21,7 +21,7 @@ bool process_record_oled(uint16_t keycode, keyrecord_t *record) { | |||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void render_default_layer_state(void) { | void render_layout_state(void) { | ||||||
|   oled_write_P(PSTR("Layout: "), false); |   oled_write_P(PSTR("Layout: "), false); | ||||||
|   switch (biton32(default_layer_state)) { |   switch (biton32(default_layer_state)) { | ||||||
|       case _COLEMAK: |       case _COLEMAK: | ||||||
| @ -43,15 +43,23 @@ void oled_white_space(void){ | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void render_layer_state(void) { | void render_layer_state(void) { | ||||||
|   oled_write_P(PSTR("\nLayer: "), false); |   oled_write_P(PSTR("\nLayer:"), false); | ||||||
|   oled_write_P(PSTR("LOW"), (layer_state_is(_LOWER) & !layer_state_is(_ADJUST))); |   bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST); | ||||||
|   oled_white_space(); |   bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST); | ||||||
|   oled_write_P(PSTR("RAI"), (layer_state_is(_RAISE) & !layer_state_is(_ADJUST))); |   bool adjust = layer_state_is(_ADJUST); | ||||||
|   oled_white_space(); | 
 | ||||||
|   oled_write_P(PSTR("ADJ"), layer_state_is(_ADJUST)); |   if(lower){  | ||||||
|  |     oled_write_P(PSTR(" Lower "), true);  | ||||||
|  |   } else if(raise){  | ||||||
|  |     oled_write_P(PSTR(" Raise "), true);  | ||||||
|  |   } else if(adjust){  | ||||||
|  |     oled_write_P(PSTR(" Adjust "), true);  | ||||||
|  |   } else {  | ||||||
|  |     oled_write_P(PSTR(" Default"), false);  | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void render_mod_status(uint8_t modifiers) { | void render_mod_state(uint8_t modifiers) { | ||||||
|   oled_write_P(PSTR("\nMods: "), false); |   oled_write_P(PSTR("\nMods: "), false); | ||||||
|   oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT)); |   oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT)); | ||||||
|   oled_white_space(); |   oled_white_space(); | ||||||
| @ -63,10 +71,10 @@ void render_mod_status(uint8_t modifiers) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void render_status(void){ | void render_status(void){ | ||||||
|   render_default_layer_state(); |   render_layout_state(); | ||||||
|   oled_write_P(PSTR("\n"), false); |   oled_write_P(PSTR("\n"), false); | ||||||
|   render_layer_state(); |   render_layer_state(); | ||||||
|   render_mod_status(get_mods()|get_oneshot_mods()); |   render_mod_state(get_mods()|get_oneshot_mods()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void render_logo(void) { | static void render_logo(void) { | ||||||
| @ -80,7 +88,7 @@ static void render_logo(void) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void oled_task_user(void) { | void oled_task_user(void) { | ||||||
|     if (timer_elapsed32(oled_timer) > 30000) { |     if (timer_elapsed32(oled_timer) > 15000) { | ||||||
|         oled_off(); |         oled_off(); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jonas Avellana
						Jonas Avellana