diff options
| author | DaneEvans <[email protected]> | 2021-05-27 15:30:34 +1000 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2021-05-26 22:30:34 -0700 | 
| commit | 9da95bc3abc2d5682aea917e56abfeae30a7980f (patch) | |
| tree | 8da651a066b4fb878e605d097ae13942ec453e7f | |
| parent | 088c71b4ea6e083f01d6c5d7248555972c4125a4 (diff) | |
| download | qmk_firmware-9da95bc3abc2d5682aea917e56abfeae30a7980f.tar.gz qmk_firmware-9da95bc3abc2d5682aea917e56abfeae30a7980f.zip | |
[Keymap] add personal keymap files, and sofle_rgb default maps, (#12267)
| -rw-r--r-- | keyboards/crkbd/keymaps/devdev/config.h | 117 | ||||
| -rw-r--r-- | keyboards/crkbd/keymaps/devdev/keymap.c | 410 | ||||
| -rw-r--r-- | keyboards/crkbd/keymaps/devdev/rules.mk | 4 | ||||
| -rw-r--r-- | keyboards/minimacro5/keymaps/devdev/keymap.c | 126 | ||||
| -rw-r--r-- | keyboards/minimacro5/keymaps/devdev/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/navi10/keymaps/devdev/config.h | 35 | ||||
| -rw-r--r-- | keyboards/navi10/keymaps/devdev/keymap.c | 263 | ||||
| -rw-r--r-- | keyboards/navi10/keymaps/devdev/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/sofle/keymaps/devdev/config.h | 130 | ||||
| -rw-r--r-- | keyboards/sofle/keymaps/devdev/keymap.c | 571 | ||||
| -rw-r--r-- | keyboards/sofle/keymaps/devdev/rules.mk | 7 | ||||
| -rw-r--r-- | keyboards/sofle/keymaps/rgb_default/config.h | 130 | ||||
| -rw-r--r-- | keyboards/sofle/keymaps/rgb_default/keymap.c | 571 | ||||
| -rw-r--r-- | keyboards/sofle/keymaps/rgb_default/rules.mk | 7 | ||||
| -rw-r--r-- | users/devdev/config.h | 30 | ||||
| -rw-r--r-- | users/devdev/glcdfont.c | 465 | 
16 files changed, 2870 insertions, 0 deletions
| diff --git a/keyboards/crkbd/keymaps/devdev/config.h b/keyboards/crkbd/keymaps/devdev/config.h new file mode 100644 index 0000000000..793c7b020b --- /dev/null +++ b/keyboards/crkbd/keymaps/devdev/config.h @@ -0,0 +1,117 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako <[email protected]> +Copyright 2015 Jack Humbert +Copyright 2021 Dane Evans + + +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 + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define CUSTOM_FONT + +#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding  + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 200 + +#define RGBLIGHT_SLEEP +// +#define RGBLIGHT_LAYERS + +#ifdef RGBLIGHT_ENABLE +    #undef RGBLED_NUM +	 +    //#define RGBLIGHT_ANIMATIONS +	#define RGBLIGHT_EFFECT_BREATHING +	#define RGBLIGHT_EFFECT_RAINBOW_MOOD +	#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +	#define RGBLIGHT_EFFECT_SNAKE +	#define RGBLIGHT_EFFECT_KNIGHT +	//#define RGBLIGHT_EFFECT_CHRISTMAS +	//#define RGBLIGHT_EFFECT_STATIC_GRADIENT +	//#define RGBLIGHT_EFFECT_RGB_TEST +	//#define RGBLIGHT_EFFECT_ALTERNATING +	//#define RGBLIGHT_EFFECT_TWINKLE +	 +    //#define RGBLED_NUM 54 +	//#define RGBLED_SPLIT 27 +	//#define RGBLED_SPLIT { 27, 27 } // haven't figured out how to use this yet  +	 +	#define RGBLED_NUM 27 +    #define RGBLIGHT_LIMIT_VAL 120 +    #define RGBLIGHT_HUE_STEP 10 +    #define RGBLIGHT_SAT_STEP 17 +    #define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGB_MATRIX_ENABLE +#   define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// #   define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// #   define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#   define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +#   define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// #   define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #   define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.  + +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT + +#    define RGB_MATRIX_HUE_STEP 8 +#    define RGB_MATRIX_SAT_STEP 8 +#    define RGB_MATRIX_VAL_STEP 8 +#    define RGB_MATRIX_SPD_STEP 10 + +/* Disable the animations you don't want/need.  You will need to disable a good number of these    * + * because they take up a lot of space.  Disable until you can successfully compile your firmware. */ + #   define DISABLE_RGB_MATRIX_ALPHAS_MODS +// #   define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #   define DISABLE_RGB_MATRIX_BREATHING +// #   define DISABLE_RGB_MATRIX_CYCLE_ALL +// #   define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +// #   define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +// #   define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +// #   define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +// #   define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +// #   define DISABLE_RGB_MATRIX_DUAL_BEACON +// #   define DISABLE_RGB_MATRIX_RAINBOW_BEACON +// #   define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +// #   define DISABLE_RGB_MATRIX_RAINDROPS +// #   define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #   define DISABLE_RGB_MATRIX_TYPING_HEATMAP +// #   define DISABLE_RGB_MATRIX_DIGITAL_RAIN +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// #   define DISABLE_RGB_MATRIX_SPLASH +// #   define DISABLE_RGB_MATRIX_MULTISPLASH +// #   define DISABLE_RGB_MATRIX_SOLID_SPLASH +// #   define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/crkbd/keymaps/devdev/keymap.c b/keyboards/crkbd/keymaps/devdev/keymap.c new file mode 100644 index 0000000000..4da3fcaa64 --- /dev/null +++ b/keyboards/crkbd/keymaps/devdev/keymap.c @@ -0,0 +1,410 @@ +/* Copyright 2020 Dane Evans +  *  +  * 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/>.  +  */  + +// CRKBD + +#include QMK_KEYBOARD_H + + +char layer_state_str[24]; +  +  +  enum userspace_layers { +    _DEFAULTS = 0, +	_COLEMAK = 0, +	_COLEMAKDH,  +    _QWERTY, +    _NUM, +    _SYM, +    _COMMAND, +    _NUMPAD, +	_SWITCH, +    _MOVE, +     +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +	 +		// colemak  +	[_COLEMAK] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	    LT(_NUMPAD,KC_TAB), 	KC_Q, 	 KC_W, 	  KC_F,    KC_P,    KC_G, 		 LT(_SWITCH,KC_J),    KC_L,    KC_U,    KC_Y, KC_SCLN, KC_BSPC, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	    KC_LSFT,    KC_A,    KC_R,    KC_S,    KC_T,    KC_D, 						  KC_H,    KC_N,    KC_E,    KC_I,LT(_NUMPAD,KC_O),KC_QUOT, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|		 +		KC_LCTL,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B, 						  KC_K,    KC_M, KC_COMM,  KC_DOT, KC_SLSH, KC_RSFT, +	//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +										 KC_LGUI,   MO(_NUM),  KC_SPC, 	KC_ENT,    MO(_SYM), KC_LALT +										//`--------------------------'  `--------------------------' +	), +	 +			// colemak DH +	[_COLEMAKDH] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	    LT(_NUMPAD,KC_TAB), 	KC_Q, 	 KC_W, 	  KC_F,    KC_P,    KC_B, 					LT(_SWITCH,KC_J),    KC_L,    KC_U,    KC_Y, KC_SCLN, KC_BSPC, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	    KC_LSFT,    KC_A,    KC_R,    KC_S,    KC_T,    KC_G, 						  KC_M,    KC_N,    KC_E,    KC_I,LT(_NUMPAD,KC_O),KC_QUOT, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|		 +		KC_LCTL,    KC_Z,    KC_X,    KC_C,    KC_D,    KC_V, 						  KC_K,    KC_H, KC_COMM,  KC_DOT, KC_SLSH, KC_RSFT, +	//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +										 KC_LGUI,   MO(_NUM),  KC_SPC, 	KC_ENT,    MO(_SYM), KC_LALT  +										//`--------------------------'  `--------------------------' +	), +	 +	// qwerty +	[_QWERTY] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	KC_TRNS, 	KC_Q, 	KC_W, 	KC_E, 	KC_R, 	KC_T, 							LT(_SWITCH,KC_Y), KC_U, 	KC_I, 	 KC_O, 	 KC_P, 	KC_TRNS, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	KC_TRNS, 		KC_A, 	KC_S, 	KC_D, 	KC_F, 	KC_G, 							KC_H, 	  KC_J, 	KC_K, 	 KC_L, LT(_NUMPAD,KC_SCLN), KC_TRNS, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	KC_TRNS, 		KC_Z, 	KC_X, 	KC_C, 	KC_V, 	KC_B, 							KC_N, 	  KC_M, KC_COMM,  KC_DOT, KC_SLSH, KC_TRNS, +    //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +										 KC_TRNS,   KC_TRNS,  KC_TRNS, 	KC_TRNS,    KC_TRNS, KC_TRNS +									   //`--------------------------'  `--------------------------' +	), + +										    +										    +	// numbers  - L thumb  +	[_NUM] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	     KC_ESC,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5, 					      KC_6,    KC_7,    KC_8,    KC_9,    KC_0, KC_BSPC, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	    KC_TRNS,   KC_NO,   KC_NO,   KC_NO,   KC_WH_U,   KC_PGUP, 				   KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT,   KC_NO,  KC_DEL, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +		KC_TRNS,   KC_NO,   KC_NO,   KC_NO,   KC_WH_D,   KC_PGDN,					     KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, +	//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +											KC_TRNS, KC_TRNS,  KC_TRNS,     KC_TRNS,   MO(_COMMAND), KC_TRNS +										//`--------------------------'  `--------------------------' +	), +	 +	// symbols  - R thumb  +	[_SYM] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	     KC_ESC, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC, 					   KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, +    //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	    KC_TRNS,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, 					   KC_MINS,  KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +		KC_TRNS,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, 					   KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, +	//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +											KC_TRNS,   MO(_COMMAND),  KC_TRNS,     KC_TRNS, KC_TRNS, KC_TRNS +										//`--------------------------'  `--------------------------' +	), +	 +	// commands - both thumbs  +	[_COMMAND] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	      RESET,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5, 						 KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,   KC_NO, +    //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	    RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,   DF(1),   DF(0), 					 C(G(KC_LEFT)),   KC_NO,   KC_NO,   C(G(KC_RGHT)),   KC_NO,   KC_NO, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +		RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,   KC_NO,   DF(2), 					     KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, +	//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +										    KC_TRNS, KC_TRNS,  KC_TRNS,     KC_TRNS, KC_TRNS, KC_TRNS  +										//`--------------------------'  `--------------------------' +	), +	 +	// numpad  +	[_NUMPAD] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	LT(0,KC_NO),   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO, 					   KC_CIRC,   KC_P7,   KC_P8,   KC_P9, KC_ASTR, KC_BSPC, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	      KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, 					   KC_MINS,   KC_P4,   KC_P5,   KC_P6,  KC_EQL,  KC_DEL, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|	   +		  KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, 					   KC_PLUS,   KC_P1,   KC_P2,   KC_P3, KC_SLSH,   KC_NO, +	//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|		   +									   OSM(MOD_MEH),   KC_NO,   KC_TRNS,     KC_ENT,   KC_P0,  KC_PDOT +										//`--------------------------'  `--------------------------' +	),	   +		   +	// layer switcher  +	[_SWITCH] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	      TO(0),   TO(1),   TO(2),   TO(3),   TO(4),   TO(5), 					     KC_NO,   TO(7),   KC_NO,   KC_NO,   KC_NO,   RESET, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	      KC_NO,   KC_NO, KC_BRIU,   KC_NO,   KC_NO,   KC_NO, 						 KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, EEP_RST, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +		KC_SYSTEM_SLEEP,   KC_NO, KC_BRID,   KC_NO,   KC_NO,   KC_NO, 						 KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, +	//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|		  		 +											  KC_NO,   KC_NO,   KC_NO,      KC_NO,   KC_NO,   KC_NO +										//`--------------------------'  `--------------------------' +	 +	),		   +		   +	// amovement  +	[_MOVE] = LAYOUT( +	//,-----------------------------------------------------.                    ,-----------------------------------------------------. +	LT(0,KC_NO),   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, 					   KC_HOME,  KC_UP,  KC_PGUP,   KC_NO,   KC_NO,   KC_NO, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +	      KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, 					   KC_LEFT,  KC_ENT, KC_RGHT,   KC_NO,   KC_NO,   KC_NO, +	//|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------|	  		  +		 KC_APP,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, 						KC_END, KC_DOWN, KC_PGDN,  KC_DEL,   KC_NO,   KC_NO, +	//|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------|		   +		                                      KC_NO,   KC_NO,   KC_NO,    KC_TRNS,   KC_NO,   KC_NO  +										//`--------------------------'  `--------------------------' +	) + +}; + + +// it appears that these are different to the board numbering.  +// when you specify n here, it lightss up n+1 on the board diagram - actually may be an entirely different pattern  + +// _QWERTY, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS( +    {0, 10, HSV_AZURE} +); + +// _COLEMAKDH, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS( +    {0, 10, HSV_RED} +); + +// _NUM, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS( +    {0, 10, HSV_TEAL} +); +// _SYMBOL, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS( +    {0, 10, HSV_BLUE} +); +// _COMMAND, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS( +    {0, 10, HSV_PURPLE} +); + + +//_NUMPAD +//havent worked out how to do each side individually either  +const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS( +{0, 10, HSV_ORANGE} +); +const rgblight_segment_t PROGMEM layer_numpad_rh_lights[] = RGBLIGHT_LAYER_SEGMENTS( +	{0, 10, HSV_ORANGE}, +	{10, 5, HSV_BLUE}, +    {15, 3, HSV_BLUE}, +	{18, 3, HSV_BLUE} +); + +// _MOVE, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_move_lights[] = RGBLIGHT_LAYER_SEGMENTS( +    {0, 10, HSV_PINK} +); + +// _SWITCHER   // light up top row +const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(  +    {0, 6, HSV_GREEN}, +	{9, 2, HSV_GREEN}, +	{17, 2, HSV_GREEN}, +	{23, 2, HSV_GREEN} +); + + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( +    layer_qwerty_lights,  +	layer_colemakdh_lights, +	layer_num_lights,// overrides layer 1 +	layer_symbol_lights, +    layer_command_lights,        +	layer_numpad_lights,  +	layer_numpad_rh_lights, +	layer_move_lights, +	layer_switcher_lights  // Overrides other layers +); + +void keyboard_post_init_user(void) { +    // Enable the LED layers +    rgblight_layers = my_rgb_layers; +	rgblight_mode(10);// haven't found a way to set this in a more useful way  + +} + + +layer_state_t layer_state_set_user(layer_state_t state) { +	rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); +	rgblight_set_layer_state(1, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); +	 +	rgblight_set_layer_state(2, layer_state_cmp(state, _NUM)); +	rgblight_set_layer_state(3, layer_state_cmp(state, _SYM)); +	rgblight_set_layer_state(4, layer_state_cmp(state, _COMMAND)); +	rgblight_set_layer_state(5, layer_state_cmp(state, _NUMPAD)); +	if (!is_keyboard_master()) +		rgblight_set_layer_state(6, layer_state_cmp(state, _NUMPAD)); +	rgblight_set_layer_state(7, layer_state_cmp(state, _MOVE)); +	rgblight_set_layer_state(8, layer_state_cmp(state, _SWITCH)); +    return state; +} + +/* +bool led_update_user(led_t led_state) { +    rgblight_set_layer_state(0, led_state.caps_lock); +    return true; +} +*/ + + + +//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { +  if (!is_keyboard_master()) { +    return OLED_ROTATION_180;  // flips the display 180 degrees if offhand +  } +  return rotation; +} +// When add source files to SRC in rules.mk, you can use functions. +const char *read_layer_state(void); +const char *read_logo(void); +void set_keylog(uint16_t keycode, keyrecord_t *record); +const char *read_keylog(void); +const char *read_keylogs(void); + + +const char *read_mode_icon(bool swap); +// const char *read_host_led_state(void); +// void set_timelog(void); +// const char *read_timelog(void); + + +void oled_render_layer_state(void) { +  char string [24];  +  switch (get_highest_layer(default_layer_state|layer_state)) +  { +      case _QWERTY: +        oled_write_ln_P(PSTR("Layer: QWERTY"),false); +        break; +      case _COLEMAK: +        oled_write_ln_P(PSTR("Layer: COLEMAK"),false); +        break;     +      case _COLEMAKDH: +        oled_write_ln_P(PSTR("Layer: COLEMAKDH"),false); +        break;     +      case _NUM: +        oled_write_ln_P(PSTR("Layer: Numbers"),false); +        break; +      case _SYM: +        oled_write_ln_P(PSTR("Layer: Symbols"),false); +        break; +      case _COMMAND: +        oled_write_ln_P(PSTR("Layer: Command"),false); +        break; +      case _NUMPAD: +        oled_write_ln_P(PSTR("Layer: Numpad"),false); +        break;	 +      case _MOVE: +        oled_write_ln_P(PSTR("Layer: Movement"),false); +        break; +      case _SWITCH: +        oled_write_ln_P(PSTR("Layer: Layer Switch"),false); +        break;		 +      default: +        snprintf(string, sizeof(string), "%ld",layer_state); +        oled_write_P(PSTR("Layer: Undef-"),false); +        oled_write_ln(string, false); +    } + } + +/* +void matrix_render_user(struct CharacterMatrix *matrix) { +  if (has_usb()) { +    // If you want to change the display of OLED, you need to change here +    matrix_write_ln(matrix, read_layer_state()); +    matrix_write_ln(matrix, read_keylog()); +    //matrix_write_ln(matrix, read_keylogs()); +    //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); +    //matrix_write_ln(matrix, read_host_led_state()); +    //matrix_write_ln(matrix, read_timelog()); +  } else { +    matrix_write(matrix, read_logo()); +  } +} +*/ + +char keylog_str[24] = {}; +const char code_to_name[60] = { +    ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', +    'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', +    'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', +    '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', +    'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', +    '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { +  char name = ' '; +    if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || +        (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } +  if (keycode < 60) { +    name = code_to_name[keycode]; +  } + +  // update keylog +  snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", +           record->event.key.row, record->event.key.col, +           keycode, name); +} + +void oled_render_keylog(void) { +    oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { +    /* Show Ctrl-Gui Swap options */ +    static const char PROGMEM logo[][2][3] = { +        {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, +        {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, +    }; +    if (status) { +        oled_write_ln_P(logo[0][0], false); +        oled_write_ln_P(logo[0][1], false); +    } else { +        oled_write_ln_P(logo[1][0], false); +        oled_write_ln_P(logo[1][1], false); +    } +} + +void oled_render_logo(void) { +    static const char PROGMEM crkbd_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(crkbd_logo, false); +} + +void oled_task_user(void) { +    if (is_master) { +        oled_render_layer_state(); +        oled_render_keylog(); +    } else { +        oled_render_logo(); +    } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +  if (record->event.pressed) { +    set_keylog(keycode, record); +  } +  return true; +} +#endif // OLED_DRIVER_ENABLE
\ No newline at end of file diff --git a/keyboards/crkbd/keymaps/devdev/rules.mk b/keyboards/crkbd/keymaps/devdev/rules.mk new file mode 100644 index 0000000000..58e90c8116 --- /dev/null +++ b/keyboards/crkbd/keymaps/devdev/rules.mk @@ -0,0 +1,4 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +RGBLIGHT_ENABLE = yes +OLED_DRIVER_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/minimacro5/keymaps/devdev/keymap.c b/keyboards/minimacro5/keymaps/devdev/keymap.c new file mode 100644 index 0000000000..dc5a9b0de8 --- /dev/null +++ b/keyboards/minimacro5/keymaps/devdev/keymap.c @@ -0,0 +1,126 @@ +/* Copyright 2020 Dane Evans +  *  +  * 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/>.  +  */  +// MINI MACRO 5 + +#include QMK_KEYBOARD_H + +enum layers { +    _MAIN, +	_MEDIA, +	_DISCORD, +	_PHOTOSHOP +}; + +// Tap Dance declarations +enum tap_dances{ +    TD_TO_DISCORD, +	TD_TO_PHOTOSHOP, +	TD_TO_MEDIA, +	TD_TO_MAIN, +	TD_RESET_SLIDER +	 +}; + + +void encoder_update_user(uint8_t index, bool clockwise) { +  if (index == 0) { /* First encoder*/ +    switch(biton32(layer_state)){ +		case _MAIN: +			if (clockwise) { +			  tap_code(KC_VOLU); +			} else { +			  tap_code(KC_VOLD); +			} +			break; +		case _MEDIA: +			if (clockwise) { +			  tap_code(KC_VOLU); +			} else { +			  tap_code(KC_VOLD); +			} +			break; +		case _DISCORD: +			if (clockwise) { +			  tap_code(KC_VOLU); +			} else { +			  tap_code(KC_VOLD); +			} +			break; +		case _PHOTOSHOP: +			if (clockwise) { +			  tap_code(KC_UP); +			} else { +			  tap_code(KC_DOWN); +			} +			break; +		default: +			if (clockwise) { +			  tap_code(KC_VOLU); +			} else { +			  tap_code(KC_VOLD); +			} +			break; +	} +  } +} + +// +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //buttion closest to usb is first +  [_MAIN] = LAYOUT_ortho_1x5( +     TD(TD_TO_DISCORD), 	TO(_DISCORD), 	KC_C, 	RGB_TOG, 	TD(TD_TO_PHOTOSHOP) +  ), +  [_MEDIA] = LAYOUT_ortho_1x5( +     TD(TD_TO_MAIN), 	KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_STOP +  ), +  [_DISCORD] = LAYOUT_ortho_1x5( +     TD(TD_TO_MAIN), 	TD(TD_TO_MEDIA), 	KC_Q, 		KC_R, 		MEH(KC_UP) +  ) +  , +  [_PHOTOSHOP] = LAYOUT_ortho_1x5( +     TD(TD_RESET_SLIDER) , C(KC_Z),			C(KC_Y), 	KC_P, 		KC_G +  ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { +	 +	if (layer_state_cmp(state, _MAIN)) // this one not working  +		rgblight_sethsv_at(HSV_GREEN, 0); +	if (layer_state_cmp(state, _MEDIA)) +		rgblight_sethsv_at(HSV_RED, 0); +	if (layer_state_cmp(state, _DISCORD)) +		rgblight_sethsv_at(HSV_BLUE, 0); +	if (layer_state_cmp(state, _PHOTOSHOP)) +		rgblight_sethsv_at(HSV_PURPLE, 0); +    return state; +} + +void keyboard_post_init_user(void) { +	//rgblight_mode(1); +	rgblight_sethsv_at(HSV_GREEN, 0); +} + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { +    // Tap once for Escape, twice for Caps Lock +    [TD_TO_DISCORD] = ACTION_TAP_DANCE_LAYER_MOVE(KC_MUTE, _DISCORD), +	[TD_TO_PHOTOSHOP] = ACTION_TAP_DANCE_LAYER_MOVE(KC_E, _PHOTOSHOP), +	[TD_TO_MEDIA] = ACTION_TAP_DANCE_LAYER_MOVE(KC_E, _MEDIA), +	[TD_TO_MAIN] = ACTION_TAP_DANCE_LAYER_MOVE(KC_MUTE, _MAIN), +	[TD_RESET_SLIDER] = ACTION_TAP_DANCE_LAYER_MOVE(KC_0, _MAIN) +}; + + + diff --git a/keyboards/minimacro5/keymaps/devdev/rules.mk b/keyboards/minimacro5/keymaps/devdev/rules.mk new file mode 100644 index 0000000000..1c1ed316a0 --- /dev/null +++ b/keyboards/minimacro5/keymaps/devdev/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = yes +TAP_DANCE_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/navi10/keymaps/devdev/config.h b/keyboards/navi10/keymaps/devdev/config.h new file mode 100644 index 0000000000..dba45a5f24 --- /dev/null +++ b/keyboards/navi10/keymaps/devdev/config.h @@ -0,0 +1,35 @@ +/* +Copyright 2019 Ethan Durrant (emdarcher) + +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 +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#undef DEBOUNCE +#define DEBOUNCE 1 + +#define TAPPING_TERM 220 + +#ifdef RGBLIGHT_ENABLE +    #define RGB_DI_PIN D3 +    #define RGBLED_NUM 3 +	 +    #define RGBLIGHT_LIMIT_VAL 120 +    #define RGBLIGHT_HUE_STEP 10 +    #define RGBLIGHT_SAT_STEP 17 +    #define RGBLIGHT_VAL_STEP 17 +	 + +#endif diff --git a/keyboards/navi10/keymaps/devdev/keymap.c b/keyboards/navi10/keymaps/devdev/keymap.c new file mode 100644 index 0000000000..b0d43ebc69 --- /dev/null +++ b/keyboards/navi10/keymaps/devdev/keymap.c @@ -0,0 +1,263 @@ +/* Copyright 2019 Ethan Durrant (emdarcher) + * + * 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/>. + */ +  + // NAVI 10 +#include QMK_KEYBOARD_H + +#define INDICATOR_LED   B5 + + +#define _ML1    2 +#define _FN2    3 +#define _PR3    4 +#define _GI4    4 + + +#define HS_RED  	0,255  +#define HS_WHITE 	0, 0 +#define HS_ORANGE  28, 255 +#define HS_GREEN   85, 255 +#define HS_TURQUOISE 123, 90 +#define HS_CYAN    128, 255 +#define HS_AZURE   132, 102 +#define HS_BLUE    170, 255 +#define HS_PURPLE  191, 255 +#define HS_MAGENTA 213, 255 + + +//create the tap type +typedef struct { +    bool is_press_action; +    int state; +} tap; + +//tap dance states +enum { +    // uses https://beta.docs.qmk.fm/using-qmk/software-features/feature_tap_dance +    SINGLE_TAP = 1, +    SINGLE_HOLD = 2, +    DOUBLE_TAP = 3, +    TRIPLE_TAP = 4,  +}; + +//tap dance keys +enum { +    TAPPY_KEY = 0 +}; + +enum custom_keycodes { // git macros  +    M_G_HERE = SAFE_RANGE, +    M_G_PUSH, +    M_G_PULL, +    M_G_ADD,  +    M_G_COMM  +}; + +//function to handle all the tap dances +int cur_dance(qk_tap_dance_state_t *state); + +//functions for each tap dance +void tk_finished(qk_tap_dance_state_t *state, void *user_data); +void tk_reset(qk_tap_dance_state_t *state, void *user_data); + +// define the macros in here  +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +	// open git bash here 	 +    case M_G_HERE:   +        if (record->event.pressed) { +            SEND_STRING(SS_TAP(X_APP)"s"); +        } else { +            // when keycode M_G_HERE is released +        } +        break; + +	//git push +    case M_G_PUSH: +        if (record->event.pressed) { +            // when keycode M_G_PUSH is pressed +            SEND_STRING("git push"SS_TAP(X_ENTER)); +        } else { +            // when keycode M_G_PUSH is released +        } +        break; +	 +	// git pull  +    case M_G_PULL: +        if (record->event.pressed) { +           SEND_STRING("git pull"SS_TAP(X_ENTER)); +        } +        break; +		 +	// git add  +	case M_G_ADD: +        if (record->event.pressed) { +           SEND_STRING("git add "); +        } +        break; +		 +	// git commit 	 +    case M_G_COMM: // git commit  +        if (record->event.pressed) { +           SEND_STRING("git commit -m ' "); +        } +        break; +    } +    return true; +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +	// Base +    [0] = LAYOUT( +                 TD(TAPPY_KEY),KC_HOME, KC_PGUP, +                 KC_DEL,    KC_END,     KC_PGDN, +                  +                            KC_UP, +                 KC_LEFT,   KC_DOWN,    KC_RIGHT), +	 +	// media function layer, toggled on a single tap +    [_ML1] = LAYOUT( +                 KC_TRNS,   KC_BSPC,    KC_VOLU,  +                 KC_MUTE,   KC_ENTER,    KC_VOLD, +                  +                            KC_SPC, +                 KC_MRWD,   KC_MPLY,    KC_MFFD), +                  +    // F keys, double tap to get here     +    [_FN2] = LAYOUT(  +                 TO(0),     KC_F3,    KC_F5,  +                 KC_F2,     KC_F4,    KC_F6, +                  +                            KC_F7, +                 KC_F9,     KC_F8,    KC_F10), +				  +    // programming, triple tap to get here       +    [_PR3] = LAYOUT( +                 TO(0),     A(KC_F7), S(KC_F10),    //atmel, segger, pycharm  +                 KC_F2,     KC_F4,    S(KC_F9), +                  +                            KC_UP, +                 KC_LEFT,   KC_DOWN,    KC_RIGHT), + +	// git function layer, hold to get here		  +    [_GI4] = LAYOUT( +                 KC_TRNS,   M_G_PUSH,    M_G_ADD,  +                 M_G_HERE,   M_G_PULL,    M_G_COMM, +                  +                            RGB_VAI, +                 RGB_TOG,   RGB_VAD,    RGB_MOD), +		 + +                  +}; + +//determine the current tap dance state +int cur_dance (qk_tap_dance_state_t *state){ +    if(state->count == 1) +    { +        //if a tap was registered +        if(!state->pressed) +        { +            //if not still pressed, then was a single tap +            return SINGLE_TAP; +        } else  +        { +            //if still pressed/held down, then it's a single hold +            return SINGLE_HOLD; +        } +    }  +   else if (state->count == 2) +   { +       return DOUBLE_TAP; +   } +    +   else if (state->count == 3)  +   { +       return TRIPLE_TAP; +   } +   else  +   { +        return 8; +   } +} + +//initialize the tap structure for the tap key +static tap tk_tap_state = { +    .is_press_action = true, +    .state = 0 +}; + +//functions that control what our tap dance key does +void tk_finished(qk_tap_dance_state_t *state, void *user_data){ +    tk_tap_state.state = cur_dance(state); +	uint8_t val = rgblight_get_val(); +    switch(tk_tap_state.state){ +        case SINGLE_TAP: +            //send desired key when tapped: +            //setting to the media layer +            if(layer_state_is(_ML1)){ +                //if already active, toggle it to off +                layer_off(_ML1); +                rgblight_sethsv(HS_PURPLE, val); +            } else { +                //turn on the media layer +                layer_on(_ML1); +                rgblight_sethsv_at(HS_RED, 0, 0); +                rgblight_sethsv_at(HS_GREEN, 0, 1); +                rgblight_sethsv_at(HS_BLUE, val, 2); +            } +            break; + +        case DOUBLE_TAP: +            layer_on(_FN2); +            rgblight_sethsv_at(HS_RED, 0, 0); +            rgblight_sethsv_at(HS_GREEN, val, 1); +            rgblight_sethsv_at(HS_BLUE, 0, 2); +            break; +        case TRIPLE_TAP: +            layer_on(_PR3); +            rgblight_sethsv_at(HS_RED, 0, 0); +            rgblight_sethsv_at(HS_GREEN, val, 1); +            rgblight_sethsv_at(HS_BLUE, val, 2); +            break; +        case SINGLE_HOLD: +            //set to desired layer when held: +            //setting to the function layer +            layer_on(_GI4); +            rgblight_sethsv_at(HS_RED, val, 0); +            rgblight_sethsv_at(HS_GREEN, val, 1); +            rgblight_sethsv_at(HS_BLUE, val, 2); +            break; +    } +} + +void tk_reset(qk_tap_dance_state_t *state, void *user_data){ +    //if held and released, leave the layer +    if(tk_tap_state.state == SINGLE_HOLD){ +        layer_off(_GI4); +	uint8_t val = rgblight_get_val(); +        rgblight_sethsv(HS_PURPLE, val); +    } +    //reset the state +    tk_tap_state.state = 0;  +} + +//associate the tap dance key with its functionality +qk_tap_dance_action_t tap_dance_actions[] = { +    [TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, tk_finished, tk_reset, TAPPING_TERM) +}; diff --git a/keyboards/navi10/keymaps/devdev/rules.mk b/keyboards/navi10/keymaps/devdev/rules.mk new file mode 100644 index 0000000000..1c1ed316a0 --- /dev/null +++ b/keyboards/navi10/keymaps/devdev/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = yes +TAP_DANCE_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/sofle/keymaps/devdev/config.h b/keyboards/sofle/keymaps/devdev/config.h new file mode 100644 index 0000000000..7d597d991a --- /dev/null +++ b/keyboards/sofle/keymaps/devdev/config.h @@ -0,0 +1,130 @@ + /* Copyright 2021 Dane Evans +  *  +  * 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 + + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +///https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ + + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define CUSTOM_FONT + +#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding  + + +#define TAPPING_FORCE_HOLD +#ifdef TAPPING_TERM +    #undef TAPPING_TERM +    #define TAPPING_TERM 200 +#endif +#define ENCODER_DIRECTION_FLIP + + +#define RGBLIGHT_SLEEP +// +#define RGBLIGHT_LAYERS + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + + +#ifdef RGB_MATRIX_ENABLE +#define RGBLED_NUM 35    // Number of LEDs +#define RGBLED_NUM 35    // Number of LEDs +#define DRIVER_LED_TOTAL RGBLED_NUM +#endif + +#ifdef RGBLIGHT_ENABLE +    #undef RGBLED_NUM +	 +    //#define RGBLIGHT_ANIMATIONS +	//#define RGBLIGHT_EFFECT_BREATHING +	#define RGBLIGHT_EFFECT_RAINBOW_MOOD +	//#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +	//#define RGBLIGHT_EFFECT_SNAKE +	//#define RGBLIGHT_EFFECT_KNIGHT +	//#define RGBLIGHT_EFFECT_CHRISTMAS +	//#define RGBLIGHT_EFFECT_STATIC_GRADIENT +	//#define RGBLIGHT_EFFECT_RGB_TEST +	//#define RGBLIGHT_EFFECT_ALTERNATING +	//#define RGBLIGHT_EFFECT_TWINKLE +	 +    #define RGBLED_NUM 70 +	//#define RGBLED_SPLIT +	#define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet  +	 +	//#define RGBLED_NUM 30 +    #define RGBLIGHT_LIMIT_VAL 120 +    #define RGBLIGHT_HUE_STEP 10 +    #define RGBLIGHT_SAT_STEP 17 +    #define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGB_MATRIX_ENABLE +#   define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// #   define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// #   define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#   define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +#   define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// #   define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #   define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.  + +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT + +#    define RGB_MATRIX_HUE_STEP 8 +#    define RGB_MATRIX_SAT_STEP 8 +#    define RGB_MATRIX_VAL_STEP 8 +#    define RGB_MATRIX_SPD_STEP 10 + +/* Disable the animations you don't want/need.  You will need to disable a good number of these    * + * because they take up a lot of space.  Disable until you can successfully compile your firmware. */ +// #   define DISABLE_RGB_MATRIX_ALPHAS_MODS +// #   define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #   define DISABLE_RGB_MATRIX_BREATHING +// #   define DISABLE_RGB_MATRIX_CYCLE_ALL +// #   define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +// #   define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +// #   define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +// #   define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +// #   define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +// #   define DISABLE_RGB_MATRIX_DUAL_BEACON +// #   define DISABLE_RGB_MATRIX_RAINBOW_BEACON +// #   define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +// #   define DISABLE_RGB_MATRIX_RAINDROPS +// #   define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #   define DISABLE_RGB_MATRIX_TYPING_HEATMAP +// #   define DISABLE_RGB_MATRIX_DIGITAL_RAIN +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// #   define DISABLE_RGB_MATRIX_SPLASH +// #   define DISABLE_RGB_MATRIX_MULTISPLASH +// #   define DISABLE_RGB_MATRIX_SOLID_SPLASH +// #   define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif
\ No newline at end of file diff --git a/keyboards/sofle/keymaps/devdev/keymap.c b/keyboards/sofle/keymaps/devdev/keymap.c new file mode 100644 index 0000000000..7d100abb65 --- /dev/null +++ b/keyboards/sofle/keymaps/devdev/keymap.c @@ -0,0 +1,571 @@ + + /* Copyright 2021 Dane Evans +  *  +  * 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/>.  +  */  +  // SOFLE RGB +#include <stdio.h> + +#include QMK_KEYBOARD_H + +#define INDICATOR_BRIGHTNESS 30 + +#define HSV_OVERRIDE_HELP(h, s, v, Override) h, s , Override  +#define HSV_OVERRIDE(hsv, Override) HSV_OVERRIDE_HELP(hsv,Override) + +// Light combinations  +#define SET_INDICATORS(hsv) \ +		{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ +     {35+0, 1, hsv}  +#define SET_UNDERGLOW(hsv) \ +		{1, 5, hsv}, \ +     {35+1, 5,hsv} 		   +#define SET_NUMPAD(hsv)     \ +	{35+15, 5, hsv},\ +	{35+22, 3, hsv},\ +	{35+27, 3, hsv} +#define SET_NUMROW(hsv) \ +		{10, 2, hsv}, \ +		{20, 2, hsv}, \ +		{30, 2, hsv}, \ +	{35+ 10, 2, hsv}, \ +	{35+ 20, 2, hsv}, \ +	{35+ 30, 2, hsv} +#define SET_INNER_COL(hsv)	\ +		{33, 4, hsv}, \ +	{35+ 33, 4, hsv}	 + +#define SET_OUTER_COL(hsv) \ +		{7, 4, hsv}, \ +	{35+ 7, 4, hsv} +#define SET_THUMB_CLUSTER(hsv) 	\ +		{25, 2, hsv}, \ +	{35+ 25, 2, hsv}		 +#define SET_LAYER_ID(hsv) 	\ +		{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ +     {35+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ +		{1, 5, hsv}, \ +     {35+1, 5, hsv}, \ +		{7, 4, hsv}, \ +	{35+ 7, 4, hsv}, \ +		{25, 2, hsv}, \ +	{35+ 25, 2, hsv}					  + + +enum sofle_layers { +    _DEFAULTS = 0, +    _QWERTY = 0, +    _COLEMAK, +	_COLEMAKDH,  +    _LOWER, +    _RAISE, +    _ADJUST, +    _NUMPAD, +    _SWITCH +}; + +enum custom_keycodes { +    KC_QWERTY = SAFE_RANGE, +    KC_COLEMAK, +	KC_COLEMAKDH, +    KC_LOWER, +    KC_RAISE, +    KC_ADJUST, +    KC_D_MUTE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------.                    ,-----------------------------------------. + * | ESC  |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |  `   | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | TAB  |   Q  |   W  |   E  |   R  |   T  |                    |   Y  |   U  |   I  |   O  |   P  | Bspc | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |LShift|   A  |   S  |   D  |   F  |   G  |-------.    ,-------|   H  |   J  |   K  |   L  |   ;  |  '   | + * |------+------+------+------+------+------| MUTE  |    |DISCORD|------+------+------+------+------+------| + * | LCTR |   Z  |   X  |   C  |   V  |   B  |-------|    |-------|   N  |   M  |   ,  |   .  |   /  |LShift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE |RAISE | RCTR | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +  [_QWERTY] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  KC_ESC,   KC_1,   KC_2,    KC_3,    KC_4,    KC_5,             LT(_SWITCH,KC_6), KC_7,   KC_8,    KC_9,    KC_0,    KC_GRV, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  LT(_NUMPAD,KC_TAB),KC_Q,KC_W,KC_E,  KC_R,    KC_T,                      KC_Y,    KC_U,   KC_I,    KC_O,    KC_P,    KC_BSPC, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_LSFT,  KC_A,   KC_S,    KC_D,    KC_F,    KC_G,                      KC_H,    KC_J,   KC_K,    KC_L,    KC_SCLN, KC_QUOT, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  KC_LCTRL, KC_Z,   KC_X,    KC_C,    KC_V,    KC_B,  KC_MUTE,  KC_D_MUTE,KC_N,    KC_M,   KC_COMM, KC_DOT,  KC_SLSH, KC_LSFT, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC,  KC_ENT   ,     KC_SPC, KC_ENT ,  KC_RAISE, KC_RCTRL, KC_RALT +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), + +/* + * COLEMAK + * ,-----------------------------------------.                    ,-----------------------------------------. + * | ESC  |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |  `   | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | TAB  |   Q  |   W  |   F  |   P  |   G  |                    |   J  |   L  |   U  |   Y  |   ;  | Bspc | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |LShift|   A  |   R  |   S  |   T  |   D  |-------.    ,-------|   H  |   N  |   E  |   I  |   O  |  '   | + * |------+------+------+------+------+------|  MUTE |    |DISCORD|------+------+------+------+------+------| + * | LCTR |   Z  |   X  |   C  |   V  |   B  |-------|    |-------|   K  |   M  |   ,  |   .  |   /  |LShift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE |RAISE | RCTR | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_COLEMAK] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  KC_TRNS,  KC_1,   KC_2,    KC_3,    KC_4,    KC_5,                      LT(_SWITCH,KC_6),    KC_7,   KC_8,    KC_9,    KC_0,    KC_TRNS, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_Q,   KC_W,    KC_F,    KC_P,    KC_G,                      KC_J,    KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_TRNS, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_A,   KC_R,    KC_S,    KC_T,    KC_D,                      KC_H,    KC_N,   KC_E,    KC_I,    KC_O,    KC_TRNS, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_Z,   KC_X,    KC_C,    KC_V,    KC_B,  KC_TRNS,    KC_TRNS,KC_K,    KC_M,   KC_COMM, KC_DOT,  KC_SLSH, KC_TRNS, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), + +/* + * COLEMAK-DH + * ,-----------------------------------------.                    ,-----------------------------------------. + * | ESC  |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |  `   | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | TAB  |   Q  |   W  |   F  |   P  |   B  |                    |   J  |   L  |   U  |   Y  |   ;  | Bspc | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |LShift|   A  |   R  |   S  |   T  |   G  |-------.    ,-------|   M  |   N  |   E  |   I  |   O  |  '   | + * |------+------+------+------+------+------|  MUTE |    |DISCORD|------+------+------+------+------+------| + * | LCTR |   Z  |   X  |   C  |   D  |   V  |-------|    |-------|   K  |   H  |   ,  |   .  |   /  |LShift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE |RAISE | RCTR | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_COLEMAKDH] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  KC_TRNS,  KC_1,   KC_2,    KC_3,    KC_4,    KC_5,                      LT(_SWITCH,KC_6),    KC_7,   KC_8,    KC_9,    KC_0,    KC_TRNS, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_Q,   KC_W,    KC_F,    KC_P,    KC_B,                      KC_J,    KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_TRNS, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_A,   KC_R,    KC_S,    KC_T,    KC_G,                      KC_M,    KC_N,   KC_E,    KC_I,    KC_O,    KC_TRNS, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------| +  KC_TRNS,  KC_Z,   KC_X,    KC_C,    KC_D,    KC_V,  KC_TRNS,    KC_TRNS,KC_K,    KC_H,   KC_COMM, KC_DOT,  KC_SLSH, KC_TRNS, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), + +/* LOWER + * ,-----------------------------------------.                    ,-----------------------------------------. + * | trans|  F1  |  F2  |  F3  |  F4  |  F5  |                    |  F6  |  F7  |  F8  |  F9  | F10  | F11  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |  `   |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  | F12  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | trans|   !  |   @  |   #  |   $  |   %  |-------.    ,-------|   ^  |   &  |   *  |   (  |   )  |   |  | + * |------+------+------+------+------+------|  MUTE |    |       |------+------+------+------+------+------| + * | trans|  =   |  -   |  +   |   {  |   }  |-------|    |-------|   [  |   ]  |   ;  |   :  |   \  | Shift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE |RAISE | RCTR | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_LOWER] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  _______,  KC_F1,  KC_F2,   KC_F3,   KC_F4,   KC_F5,                     KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10,  KC_F11, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_GRV,   KC_1,   KC_2,    KC_3,    KC_4,    KC_5,                      KC_6,    KC_7,    KC_8,    KC_9,    KC_0,   KC_BSPC, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  _______,  KC_NO,  KC_NO,   KC_NO,   KC_WH_U, KC_PGUP,                   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT, KC_NO,   KC_DEL, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  _______,  KC_NO,  KC_NO,   KC_NO,   KC_WH_D, KC_PGDN,_______,    _______,KC_NO,  KC_NO,  KC_NO,   KC_NO,   KC_NO,    _______, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______ +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), +/* RAISE + * ,----------------------------------------.                    ,-----------------------------------------. + * |      |      |      |      |      |      |                    |      |      |      |      |      |      | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | Esc  | Ins  | Pscr | Menu |      |      |                    |      | PWrd |  Up  | NWrd | DLine| Bspc | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | Tab  | LAt  | LCtl |LShift|      | Caps |-------.    ,-------|      | Left | Down | Rigth|  Del | Bspc | + * |------+------+------+------+------+------|  MUTE  |    |       |------+------+------+------+------+------| + * |Shift | Undo |  Cut | Copy | Paste|      |-------|    |-------|      | LStr |      | LEnd |      | Shift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | LGUI | LAlt | LCTR |LOWER | /Enter  /       \Space \  |RAISE | RCTR | RAlt | RGUI | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_RAISE] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  _______, _______ , _______ , _______ , _______ , _______,               _______,  _______  , _______,  _______ ,  _______ ,_______, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  _______,  KC_INS,  KC_PSCR,   KC_APP,  XXXXXXX, XXXXXXX,                KC_CIRC, KC_AMPR,KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  _______, KC_LALT,  KC_LCTL,  KC_LSFT,  XXXXXXX, KC_CAPS,                KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX,_______,    _______,KC_UNDS, KC_PLUS,KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______ +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), +/* ADJUST  + * ,-----------------------------------------.                    ,-----------------------------------------. + * |      |      |      |      |      |      |                    |      |      |      |      |      |      | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | RESET|      |      |      |      |      |                    |      |      |      |      |      |      | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |RGB_TOG|hue^ |sat ^ | bri ^|      |COLEMAK|-------.   ,-------|desk <|      |      |desk >|      |      | + * |------+------+------+------+------+------|  MUTE |    |       |------+------+------+------+------+------| + * | mode | hue dn|sat d|bri dn|      |QWERTY|-------|    |-------|      | PREV | PLAY | NEXT |      |      | + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | LGUI | LAlt | LCTR |LOWER | /Enter  /       \Space \  |RAISE | RCTR | RAlt | RGUI | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +  [_ADJUST] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  RESET,   XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  RGB_TOG, RGB_HUI,RGB_SAI, RGB_VAI, KC_COLEMAKDH,KC_COLEMAK,             C(G(KC_LEFT)),KC_NO,KC_NO,C(G(KC_RGHT)),XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  RGB_MOD, RGB_HUD,RGB_SAD, RGB_VAD, XXXXXXX,KC_QWERTY,XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                   _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______ +    //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), +/* NUMPAD + * ,-----------------------------------------.                    ,-----------------------------------------. + * | trans|      |      |      |      |      |                    |  F6  |  F7  |  F8  |  F9  | F10  | F11  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |  `   |      |      |      |      |      |                    |      |   7  |   8  |   9  |   *  | F12  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | trans|      |      |      |      |      |-------.    ,-------|   -  |   4  |   5  |   6  |      |   |  | + * |------+------+------+------+------+------|  MUTE |    |       |------+------+------+------+------+------| + * | trans|      |      |      |      |      |-------|    |-------|   +  |   1  |   2  |   3  |   \  | Shift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE | 0    |  .   | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_NUMPAD] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   KC_CIRC, KC_P7,  KC_P8,   KC_P9,   KC_ASTR, _______, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   KC_MINS, KC_P4,  KC_P5,   KC_P6,   KC_EQL,  KC_PIPE, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______,    _______,KC_PLUS, KC_P1, KC_P2,   KC_P3,   KC_SLSH, _______, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 _______, OSM(MOD_MEH), _______, _______, _______,     _______, _______, KC_P0, KC_PDOT, _______ +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), + +/* SWITCH + * ,-----------------------------------------.                    ,-----------------------------------------. + * | cole | qwer | low  |raise | adj  |numpd |                    |      |  F7  |  F8  |  F9  | F10  | F11  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |  `   |      |      |      |      |      |                    |      |   7  |   8  |   9  |   *  | F12  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | trans|      |      |      |      |      |-------.    ,-------|   -  |   4  |   5  |   6  |      |   |  | + * |------+------+------+------+------+------|  MUTE |    |       |------+------+------+------+------+------| + * | trans|      |      |      |      |      |-------|    |-------|   +  |   1  |   2  |   3  |   \  | Shift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE | 0    |  .   | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +  // layer switcher  +[_SWITCH] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  TO(0),   TO(1),   TO(2),   TO(3),   TO(4),   TO(5), 					          KC_NO,   TO(7),   KC_NO,   KC_NO,   KC_NO,   RESET,  +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_NO,   KC_NO, KC_BRIU,   KC_NO,   KC_NO,   KC_NO, 					         KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, EEP_RST, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  KC_SYSTEM_SLEEP,KC_NO,KC_BRID,KC_NO,KC_NO,   KC_NO, KC_NO,	     KC_NO,  KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +				        KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,         KC_NO,   KC_NO,    KC_NO,   KC_NO,   KC_NO  +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +	 +	),	 +};  + +#ifdef RGBLIGHT_ENABLE +char layer_state_str[70]; +// Now define the array of layers. Later layers take precedence + +// QWERTY, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS( +  SET_LAYER_ID(HSV_RED) +   +); +const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS( +  SET_LAYER_ID(HSV_PINK) +); + +// _NUM, +// Light on outer column and underglow  +const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS( +	SET_LAYER_ID(HSV_TEAL) +  +); +// _SYMBOL, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS( +	SET_LAYER_ID(HSV_BLUE) +     +    ); +// _COMMAND, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS( +  SET_LAYER_ID(HSV_PURPLE) +); + +//_NUMPAD +const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS( +	SET_INDICATORS(HSV_ORANGE), +    SET_UNDERGLOW(HSV_ORANGE), +	SET_NUMPAD(HSV_BLUE), +    {7, 4, HSV_ORANGE}, +    {25, 2, HSV_ORANGE}, +    {35+6, 4, HSV_ORANGE}, +    {35+25, 2, HSV_ORANGE} +    ); +// _SWITCHER   // light up top row +const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(  +	SET_LAYER_ID(HSV_GREEN),  +	SET_NUMROW(HSV_GREEN) +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + +    layer_qwerty_lights,  +	layer_num_lights,// overrides layer 1 +	layer_symbol_lights, +    layer_command_lights,        +	layer_numpad_lights,  +	layer_switcher_lights,  // Overrides other layers +	layer_colemakdh_lights +); + +layer_state_t layer_state_set_user(layer_state_t state) { +	rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); +	rgblight_set_layer_state(7, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_COLEMAKDH)); + +     +	rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER)); +	rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE)); +	rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST)); +	rgblight_set_layer_state(4, layer_state_cmp(state, _NUMPAD)); +	rgblight_set_layer_state(5, layer_state_cmp(state, _SWITCH)); +    return state; +} +void keyboard_post_init_user(void) { +    // Enable the LED layers +    rgblight_layers = my_rgb_layers; +	 +	rgblight_mode(10);// haven't found a way to set this in a more useful way  + +} +#endif + +#ifdef OLED_DRIVER_ENABLE + +static void render_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, 0x00 +    }; + +    oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { +    // Print current mode +    oled_write_P(PSTR("\n\n"), false); +    oled_write_ln_P(PSTR("Dane\nEvans"), false); + +    oled_write_ln_P(PSTR(""), false); +	 +	//snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state) +	 + +    switch (get_highest_layer(default_layer_state)) { +        case _QWERTY: +            oled_write_ln_P(PSTR("Qwrt"), false); +            break; +        case _COLEMAK: +            oled_write_ln_P(PSTR("Clmk"), false); +            break; +        case _COLEMAKDH: +            oled_write_ln_P(PSTR("CmkDH"), false); +            break;			 +			 +        default: +            oled_write_ln_P(PSTR("Undef"), false); +    } +    oled_write_P(PSTR("\n\n"), false); +    // Print current layer +    oled_write_ln_P(PSTR("LAYER"), false); +    switch (get_highest_layer(layer_state)) { +        case _COLEMAK: +        case _QWERTY: +        case _COLEMAKDH: +            oled_write_P(PSTR("Base\n"), false); +            break; +        case _RAISE: +            oled_write_P(PSTR("Raise"), false); +            break; +        case _LOWER: +            oled_write_P(PSTR("Lower"), false); +            break; +        case _ADJUST: +            oled_write_P(PSTR("Adj\n"), false); +            break; +        case _NUMPAD: +            oled_write_P(PSTR("Nump\n"), false); +            break; +        case _SWITCH: +            oled_write_P(PSTR("Swit\n"), false); +            break; +        default: +            oled_write_ln_P(PSTR("Undef"), false); +    } +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { +    if (is_keyboard_master()) { +        return OLED_ROTATION_270; +    } +    return rotation; +} + +void oled_task_user(void) { +    if (is_keyboard_master()) { +        print_status_narrow(); +    } else { +        render_logo(); +    } +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +        case KC_QWERTY: +            if (record->event.pressed) { +                set_single_persistent_default_layer(_QWERTY); +            } +            return false; +        case KC_COLEMAK: +            if (record->event.pressed) { +                set_single_persistent_default_layer(_COLEMAK); +            } +            return false;  +        case KC_COLEMAKDH: +            if (record->event.pressed) { +                set_single_persistent_default_layer(_COLEMAKDH); +            } +            return false;  +        case KC_LOWER: +            if (record->event.pressed) { +                layer_on(_LOWER); +                update_tri_layer(_LOWER, _RAISE, _ADJUST); +            } else { +                layer_off(_LOWER); +                update_tri_layer(_LOWER, _RAISE, _ADJUST); +            } +            return false; +        case KC_RAISE: +            if (record->event.pressed) { +                layer_on(_RAISE); +                update_tri_layer(_LOWER, _RAISE, _ADJUST); +            } else { +                layer_off(_RAISE); +                update_tri_layer(_LOWER, _RAISE, _ADJUST); +            } +            return false; +        case KC_ADJUST: +            if (record->event.pressed) { +                layer_on(_ADJUST); +            } else { +                layer_off(_ADJUST); +            } +            return false; +        case KC_D_MUTE: +            if (record->event.pressed) { +                register_mods(mod_config(MOD_MEH)); +                register_code(KC_UP); +            } else { +                unregister_mods(mod_config(MOD_MEH)); +                unregister_code(KC_UP); +            } +    } +    return true; +} + +#ifdef ENCODER_ENABLE + +void encoder_update_user(uint8_t index, bool clockwise) { +    if (index == 0) { +        if (clockwise) { +            tap_code(KC_VOLU); +        } else { +            tap_code(KC_VOLD); +        } +		} else if (index == 1) { +			switch (get_highest_layer(layer_state)) { +				case _COLEMAK: +				case _QWERTY: +				case _COLEMAKDH: +					if (clockwise) { +						tap_code(KC_PGDOWN); +					} else { +						tap_code(KC_PGUP); +					} +				break; +			case _RAISE: +			case _LOWER: +					if (clockwise) { +						tap_code(KC_DOWN); +					} else { +						tap_code(KC_UP); +					} +				break; +			default: +					if (clockwise) { +						tap_code(KC_WH_D); +					} else { +						tap_code(KC_WH_U); +					} +				break; +		} +    } +} + +#endif diff --git a/keyboards/sofle/keymaps/devdev/rules.mk b/keyboards/sofle/keymaps/devdev/rules.mk new file mode 100644 index 0000000000..3dffb03689 --- /dev/null +++ b/keyboards/sofle/keymaps/devdev/rules.mk @@ -0,0 +1,7 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = yes +RGBLIGHT_ENABLE = yes +ENCODER_ENABLE = yes +LTO_ENABLE = yes +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/sofle/keymaps/rgb_default/config.h b/keyboards/sofle/keymaps/rgb_default/config.h new file mode 100644 index 0000000000..7d597d991a --- /dev/null +++ b/keyboards/sofle/keymaps/rgb_default/config.h @@ -0,0 +1,130 @@ + /* Copyright 2021 Dane Evans +  *  +  * 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 + + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +///https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ + + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define CUSTOM_FONT + +#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding  + + +#define TAPPING_FORCE_HOLD +#ifdef TAPPING_TERM +    #undef TAPPING_TERM +    #define TAPPING_TERM 200 +#endif +#define ENCODER_DIRECTION_FLIP + + +#define RGBLIGHT_SLEEP +// +#define RGBLIGHT_LAYERS + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + + +#ifdef RGB_MATRIX_ENABLE +#define RGBLED_NUM 35    // Number of LEDs +#define RGBLED_NUM 35    // Number of LEDs +#define DRIVER_LED_TOTAL RGBLED_NUM +#endif + +#ifdef RGBLIGHT_ENABLE +    #undef RGBLED_NUM +	 +    //#define RGBLIGHT_ANIMATIONS +	//#define RGBLIGHT_EFFECT_BREATHING +	#define RGBLIGHT_EFFECT_RAINBOW_MOOD +	//#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +	//#define RGBLIGHT_EFFECT_SNAKE +	//#define RGBLIGHT_EFFECT_KNIGHT +	//#define RGBLIGHT_EFFECT_CHRISTMAS +	//#define RGBLIGHT_EFFECT_STATIC_GRADIENT +	//#define RGBLIGHT_EFFECT_RGB_TEST +	//#define RGBLIGHT_EFFECT_ALTERNATING +	//#define RGBLIGHT_EFFECT_TWINKLE +	 +    #define RGBLED_NUM 70 +	//#define RGBLED_SPLIT +	#define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet  +	 +	//#define RGBLED_NUM 30 +    #define RGBLIGHT_LIMIT_VAL 120 +    #define RGBLIGHT_HUE_STEP 10 +    #define RGBLIGHT_SAT_STEP 17 +    #define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGB_MATRIX_ENABLE +#   define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// #   define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// #   define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#   define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +#   define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// #   define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #   define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.  + +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT + +#    define RGB_MATRIX_HUE_STEP 8 +#    define RGB_MATRIX_SAT_STEP 8 +#    define RGB_MATRIX_VAL_STEP 8 +#    define RGB_MATRIX_SPD_STEP 10 + +/* Disable the animations you don't want/need.  You will need to disable a good number of these    * + * because they take up a lot of space.  Disable until you can successfully compile your firmware. */ +// #   define DISABLE_RGB_MATRIX_ALPHAS_MODS +// #   define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #   define DISABLE_RGB_MATRIX_BREATHING +// #   define DISABLE_RGB_MATRIX_CYCLE_ALL +// #   define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +// #   define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +// #   define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +// #   define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +// #   define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +// #   define DISABLE_RGB_MATRIX_DUAL_BEACON +// #   define DISABLE_RGB_MATRIX_RAINBOW_BEACON +// #   define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +// #   define DISABLE_RGB_MATRIX_RAINDROPS +// #   define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #   define DISABLE_RGB_MATRIX_TYPING_HEATMAP +// #   define DISABLE_RGB_MATRIX_DIGITAL_RAIN +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// #   define DISABLE_RGB_MATRIX_SPLASH +// #   define DISABLE_RGB_MATRIX_MULTISPLASH +// #   define DISABLE_RGB_MATRIX_SOLID_SPLASH +// #   define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif
\ No newline at end of file diff --git a/keyboards/sofle/keymaps/rgb_default/keymap.c b/keyboards/sofle/keymaps/rgb_default/keymap.c new file mode 100644 index 0000000000..6b7486c1b4 --- /dev/null +++ b/keyboards/sofle/keymaps/rgb_default/keymap.c @@ -0,0 +1,571 @@ + + /* Copyright 2021 Dane Evans +  *  +  * 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/>.  +  */  +  // SOFLE RGB +#include <stdio.h> + +#include QMK_KEYBOARD_H + +#define INDICATOR_BRIGHTNESS 30 + +#define HSV_OVERRIDE_HELP(h, s, v, Override) h, s , Override  +#define HSV_OVERRIDE(hsv, Override) HSV_OVERRIDE_HELP(hsv,Override) + +// Light combinations  +#define SET_INDICATORS(hsv) \ +	{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ +    {35+0, 1, hsv}  +#define SET_UNDERGLOW(hsv) \ +	{1, 6, hsv}, \ +    {35+1, 6,hsv} 		   +#define SET_NUMPAD(hsv)     \ +	{35+15, 5, hsv},\ +	  {35+22, 3, hsv},\ +	  {35+27, 3, hsv} +#define SET_NUMROW(hsv) \ +	{10, 2, hsv}, \ +		{20, 2, hsv}, \ +		{30, 2, hsv}, \ +	  {35+ 10, 2, hsv}, \ +	  {35+ 20, 2, hsv}, \ +	  {35+ 30, 2, hsv} +#define SET_INNER_COL(hsv)	\ +	{33, 4, hsv}, \ +	  {35+ 33, 4, hsv}	 + +#define SET_OUTER_COL(hsv) \ +	{7, 4, hsv}, \ +	  {35+ 7, 4, hsv} +#define SET_THUMB_CLUSTER(hsv) 	\ +	{25, 2, hsv}, \ +	  {35+ 25, 2, hsv}		 +#define SET_LAYER_ID(hsv) 	\ +	{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ +    {35+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ +		{1, 6, hsv}, \ +    {35+1, 6, hsv}, \ +		{7, 4, hsv}, \ +	  {35+ 7, 4, hsv}, \ +		{25, 2, hsv}, \ +	  {35+ 25, 2, hsv}					  + + +enum sofle_layers { +    _DEFAULTS = 0, +    _QWERTY = 0, +    _COLEMAK, +	  _COLEMAKDH,  +    _LOWER, +    _RAISE, +    _ADJUST, +    _NUMPAD, +    _SWITCH +}; + +enum custom_keycodes { +    KC_QWERTY = SAFE_RANGE, +    KC_COLEMAK, +	  KC_COLEMAKDH, +    KC_LOWER, +    KC_RAISE, +    KC_ADJUST, +    KC_D_MUTE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------.                    ,-----------------------------------------. + * | ESC  |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |  `   | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | TAB  |   Q  |   W  |   E  |   R  |   T  |                    |   Y  |   U  |   I  |   O  |   P  | Bspc | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |LShift|   A  |   S  |   D  |   F  |   G  |-------.    ,-------|   H  |   J  |   K  |   L  |   ;  |  '   | + * |------+------+------+------+------+------| MUTE  |    |DISCORD|------+------+------+------+------+------| + * | LCTR |   Z  |   X  |   C  |   V  |   B  |-------|    |-------|   N  |   M  |   ,  |   .  |   /  |LShift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE |RAISE | RCTR | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +  [_QWERTY] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  KC_ESC,   KC_1,   KC_2,    KC_3,    KC_4,    KC_5,             LT(_SWITCH,KC_6), KC_7,   KC_8,    KC_9,    KC_0,    KC_GRV, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  LT(_NUMPAD,KC_TAB),KC_Q,KC_W,KC_E,  KC_R,    KC_T,                      KC_Y,    KC_U,   KC_I,    KC_O,    KC_P,    KC_BSPC, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_LSFT,  KC_A,   KC_S,    KC_D,    KC_F,    KC_G,                      KC_H,    KC_J,   KC_K,    KC_L,    KC_SCLN, KC_QUOT, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  KC_LCTRL, KC_Z,   KC_X,    KC_C,    KC_V,    KC_B,  KC_MUTE,  KC_D_MUTE,KC_N,    KC_M,   KC_COMM, KC_DOT,  KC_SLSH, KC_LSFT, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC,  KC_ENT   ,     KC_SPC, KC_ENT ,  KC_RAISE, KC_RCTRL, KC_RALT +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), + +/* + * COLEMAK + * ,-----------------------------------------.                    ,-----------------------------------------. + * | ESC  |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |  `   | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | TAB  |   Q  |   W  |   F  |   P  |   G  |                    |   J  |   L  |   U  |   Y  |   ;  | Bspc | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |LShift|   A  |   R  |   S  |   T  |   D  |-------.    ,-------|   H  |   N  |   E  |   I  |   O  |  '   | + * |------+------+------+------+------+------|  MUTE |    |DISCORD|------+------+------+------+------+------| + * | LCTR |   Z  |   X  |   C  |   V  |   B  |-------|    |-------|   K  |   M  |   ,  |   .  |   /  |LShift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE |RAISE | RCTR | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_COLEMAK] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  KC_TRNS,  KC_1,   KC_2,    KC_3,    KC_4,    KC_5,                      LT(_SWITCH,KC_6),    KC_7,   KC_8,    KC_9,    KC_0,    KC_TRNS, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_Q,   KC_W,    KC_F,    KC_P,    KC_G,                      KC_J,    KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_TRNS, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_A,   KC_R,    KC_S,    KC_T,    KC_D,                      KC_H,    KC_N,   KC_E,    KC_I,    KC_O,    KC_TRNS, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_Z,   KC_X,    KC_C,    KC_V,    KC_B,  KC_TRNS,    KC_TRNS,KC_K,    KC_M,   KC_COMM, KC_DOT,  KC_SLSH, KC_TRNS, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), + +/* + * COLEMAK-DH + * ,-----------------------------------------.                    ,-----------------------------------------. + * | ESC  |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |  `   | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | TAB  |   Q  |   W  |   F  |   P  |   B  |                    |   J  |   L  |   U  |   Y  |   ;  | Bspc | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |LShift|   A  |   R  |   S  |   T  |   G  |-------.    ,-------|   M  |   N  |   E  |   I  |   O  |  '   | + * |------+------+------+------+------+------|  MUTE |    |DISCORD|------+------+------+------+------+------| + * | LCTR |   Z  |   X  |   C  |   D  |   V  |-------|    |-------|   K  |   H  |   ,  |   .  |   /  |LShift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE |RAISE | RCTR | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_COLEMAKDH] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  KC_TRNS,  KC_1,   KC_2,    KC_3,    KC_4,    KC_5,                      LT(_SWITCH,KC_6),    KC_7,   KC_8,    KC_9,    KC_0,    KC_TRNS, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_Q,   KC_W,    KC_F,    KC_P,    KC_B,                      KC_J,    KC_L,   KC_U,    KC_Y,    KC_SCLN, KC_TRNS, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_A,   KC_R,    KC_S,    KC_T,    KC_G,                      KC_M,    KC_N,   KC_E,    KC_I,    KC_O,    KC_TRNS, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  KC_TRNS,  KC_Z,   KC_X,    KC_C,    KC_D,    KC_V,  KC_TRNS,    KC_TRNS,KC_K,    KC_H,   KC_COMM, KC_DOT,  KC_SLSH, KC_TRNS, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), + +/* LOWER + * ,-----------------------------------------.                    ,-----------------------------------------. + * | trans|  F1  |  F2  |  F3  |  F4  |  F5  |                    |  F6  |  F7  |  F8  |  F9  | F10  | F11  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |  `   |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  | F12  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | trans|   !  |   @  |   #  |   $  |   %  |-------.    ,-------|   ^  |   &  |   *  |   (  |   )  |   |  | + * |------+------+------+------+------+------|  MUTE |    |       |------+------+------+------+------+------| + * | trans|  =   |  -   |  +   |   {  |   }  |-------|    |-------|   [  |   ]  |   ;  |   :  |   \  | Shift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE |RAISE | RCTR | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_LOWER] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  _______,  KC_F1,  KC_F2,   KC_F3,   KC_F4,   KC_F5,                     KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10,  KC_F11, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_GRV,   KC_1,   KC_2,    KC_3,    KC_4,    KC_5,                      KC_6,    KC_7,    KC_8,    KC_9,    KC_0,   KC_BSPC, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  _______,  KC_NO,  KC_NO,   KC_NO,   KC_WH_U, KC_PGUP,                   KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT, KC_NO,   KC_DEL, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  _______,  KC_NO,  KC_NO,   KC_NO,   KC_WH_D, KC_PGDN,_______,    _______,KC_NO,  KC_NO,  KC_NO,   KC_NO,   KC_NO,    _______, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______ +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), +/* RAISE + * ,----------------------------------------.                    ,-----------------------------------------. + * |      |      |      |      |      |      |                    |      |      |      |      |      |      | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | Esc  | Ins  | Pscr | Menu |      |      |                    |      | PWrd |  Up  | NWrd | DLine| Bspc | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | Tab  | LAt  | LCtl |LShift|      | Caps |-------.    ,-------|      | Left | Down | Rigth|  Del | Bspc | + * |------+------+------+------+------+------|  MUTE  |    |       |------+------+------+------+------+------| + * |Shift | Undo |  Cut | Copy | Paste|      |-------|    |-------|      | LStr |      | LEnd |      | Shift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | LGUI | LAlt | LCTR |LOWER | /Enter  /       \Space \  |RAISE | RCTR | RAlt | RGUI | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_RAISE] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  _______, _______ , _______ , _______ , _______ , _______,               _______,  _______  , _______,  _______ ,  _______ ,_______, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  _______,  KC_INS,  KC_PSCR,   KC_APP,  XXXXXXX, XXXXXXX,                KC_CIRC, KC_AMPR,KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  _______, KC_LALT,  KC_LCTL,  KC_LSFT,  XXXXXXX, KC_CAPS,                KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX,_______,    _______,KC_UNDS, KC_PLUS,KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                 _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______ +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), +/* ADJUST  + * ,-----------------------------------------.                    ,-----------------------------------------. + * |      |      |      |      |      |      |                    |      |      |      |      |      |      | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | RESET|      |      |      |      |      |                    |      |      |      |      |      |      | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |RGB_TOG|hue^ |sat ^ | bri ^|      |COLEMAK|-------.   ,-------|desk <|      |      |desk >|      |      | + * |------+------+------+------+------+------|  MUTE |    |       |------+------+------+------+------+------| + * | mode | hue dn|sat d|bri dn|      |QWERTY|-------|    |-------|      | PREV | PLAY | NEXT |      |      | + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | LGUI | LAlt | LCTR |LOWER | /Enter  /       \Space \  |RAISE | RCTR | RAlt | RGUI | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +  [_ADJUST] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  RESET,   XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  RGB_TOG, RGB_HUI,RGB_SAI, RGB_VAI, KC_COLEMAKDH,KC_COLEMAK,             C(G(KC_LEFT)),KC_NO,KC_NO,C(G(KC_RGHT)),XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  RGB_MOD, RGB_HUD,RGB_SAD, RGB_VAD, XXXXXXX,KC_QWERTY,XXXXXXX,   XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +                   _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______ +    //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), +/* NUMPAD + * ,-----------------------------------------.                    ,-----------------------------------------. + * | trans|      |      |      |      |      |                    |  F6  |  F7  |  F8  |  F9  | F10  | F11  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |  `   |      |      |      |      |      |                    |      |   7  |   8  |   9  |   *  | F12  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | trans|      |      |      |      |      |-------.    ,-------|   -  |   4  |   5  |   6  |      |   |  | + * |------+------+------+------+------+------|  MUTE |    |       |------+------+------+------+------+------| + * | trans|      |      |      |      |      |-------|    |-------|   +  |   1  |   2  |   3  |   \  | Shift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE | 0    |  .   | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +[_NUMPAD] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   KC_CIRC, KC_P7,  KC_P8,   KC_P9,   KC_ASTR, _______, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   KC_MINS, KC_P4,  KC_P5,   KC_P6,   KC_EQL,  KC_PIPE, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______,    _______,KC_PLUS, KC_P1, KC_P2,   KC_P3,   KC_SLSH, _______, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +              _______, OSM(MOD_MEH), _______, _______, _______,    _______, _______, KC_P0, KC_PDOT, _______ +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +), + +/* SWITCH + * ,-----------------------------------------.                    ,-----------------------------------------. + * | cole | qwer | low  |raise | adj  |numpd |                    |      |  F7  |  F8  |  F9  | F10  | F11  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * |  `   |      |      |      |      |      |                    |      |   7  |   8  |   9  |   *  | F12  | + * |------+------+------+------+------+------|                    |------+------+------+------+------+------| + * | trans|      |      |      |      |      |-------.    ,-------|   -  |   4  |   5  |   6  |      |   |  | + * |------+------+------+------+------+------|  MUTE |    |       |------+------+------+------+------+------| + * | trans|      |      |      |      |      |-------|    |-------|   +  |   1  |   2  |   3  |   \  | Shift| + * `-----------------------------------------/       /     \      \-----------------------------------------' + *            | Bspc | WIN  |LOWER | Enter| /Space  /       \Enter \  |SPACE | 0    |  .   | RAlt | + *            |      |      |      |      |/       /         \      \ |      |      |      |      | + *            `----------------------------------'           '------''---------------------------' + */ +  // layer switcher  +[_SWITCH] = LAYOUT( +  //,------------------------------------------------.                    ,---------------------------------------------------. +  _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  TO(0),   TO(1),   TO(2),   TO(3),   TO(4),   TO(5), 					         KC_NO,   TO(7),   KC_NO,   KC_NO,   KC_NO,   RESET, +  //|------+-------+--------+--------+--------+------|                   |--------+-------+--------+--------+--------+---------|  +  KC_NO,   KC_NO, KC_BRIU,   KC_NO,   KC_NO,   KC_NO, 					         KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, EEP_RST, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +  KC_SYSTEM_SLEEP,KC_NO,KC_BRID,KC_NO,KC_NO,   KC_NO, KC_NO,	     KC_NO,  KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, +  //|------+-------+--------+--------+--------+------|  ===  |   |  ===  |--------+-------+--------+--------+--------+---------|  +				        KC_NO,    KC_NO,   KC_NO,   KC_NO,   KC_NO,        KC_NO,   KC_NO,    KC_NO,   KC_NO,   KC_NO  +  //            \--------+--------+--------+---------+-------|   |--------+---------+--------+---------+-------/   +	 +	),	 +};  + +#ifdef RGBLIGHT_ENABLE +char layer_state_str[70]; +// Now define the array of layers. Later layers take precedence + +// QWERTY, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS( +  SET_LAYER_ID(HSV_RED) +   +); +const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS( +  SET_LAYER_ID(HSV_PINK) +); + +// _NUM, +// Light on outer column and underglow  +const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS( +	SET_LAYER_ID(HSV_TEAL) +  +); +// _SYMBOL, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS( +	SET_LAYER_ID(HSV_BLUE) +     +    ); +// _COMMAND, +// Light on inner column and underglow  +const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS( +  SET_LAYER_ID(HSV_PURPLE) +); + +//_NUMPAD +const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS( +	SET_INDICATORS(HSV_ORANGE), +    SET_UNDERGLOW(HSV_ORANGE), +	SET_NUMPAD(HSV_BLUE), +    {7, 4, HSV_ORANGE}, +    {25, 2, HSV_ORANGE}, +    {35+6, 4, HSV_ORANGE}, +    {35+25, 2, HSV_ORANGE} +    ); +// _SWITCHER   // light up top row +const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(  +	SET_LAYER_ID(HSV_GREEN),  +	SET_NUMROW(HSV_GREEN) +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + +    layer_qwerty_lights,  +	layer_num_lights,// overrides layer 1 +	layer_symbol_lights, +    layer_command_lights,        +	layer_numpad_lights,  +	layer_switcher_lights,  // Overrides other layers +	layer_colemakdh_lights +); + +layer_state_t layer_state_set_user(layer_state_t state) { +	rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); +	rgblight_set_layer_state(7, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_COLEMAKDH)); + +     +	rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER)); +	rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE)); +	rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST)); +	rgblight_set_layer_state(4, layer_state_cmp(state, _NUMPAD)); +	rgblight_set_layer_state(5, layer_state_cmp(state, _SWITCH)); +    return state; +} +void keyboard_post_init_user(void) { +    // Enable the LED layers +    rgblight_layers = my_rgb_layers; +	 +	rgblight_mode(10);// haven't found a way to set this in a more useful way  + +} +#endif + +#ifdef OLED_DRIVER_ENABLE + +static void render_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, 0x00 +    }; + +    oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { +    // Print current mode +    oled_write_P(PSTR("\n\n"), false); +    oled_write_ln_P(PSTR("Dane\nEvans"), false); + +    oled_write_ln_P(PSTR(""), false); +	 +	//snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state) +	 + +    switch (get_highest_layer(default_layer_state)) { +        case _QWERTY: +            oled_write_ln_P(PSTR("Qwrt"), false); +            break; +        case _COLEMAK: +            oled_write_ln_P(PSTR("Clmk"), false); +            break; +        case _COLEMAKDH: +            oled_write_ln_P(PSTR("CmkDH"), false); +            break;			 +			 +        default: +            oled_write_ln_P(PSTR("Undef"), false); +    } +    oled_write_P(PSTR("\n\n"), false); +    // Print current layer +    oled_write_ln_P(PSTR("LAYER"), false); +    switch (get_highest_layer(layer_state)) { +        case _COLEMAK: +        case _QWERTY: +        case _COLEMAKDH: +            oled_write_P(PSTR("Base\n"), false); +            break; +        case _RAISE: +            oled_write_P(PSTR("Raise"), false); +            break; +        case _LOWER: +            oled_write_P(PSTR("Lower"), false); +            break; +        case _ADJUST: +            oled_write_P(PSTR("Adj\n"), false); +            break; +        case _NUMPAD: +            oled_write_P(PSTR("Nump\n"), false); +            break; +        case _SWITCH: +            oled_write_P(PSTR("Swit\n"), false); +            break; +        default: +            oled_write_ln_P(PSTR("Undef"), false); +    } +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { +    if (is_keyboard_master()) { +        return OLED_ROTATION_270; +    } +    return rotation; +} + +void oled_task_user(void) { +    if (is_keyboard_master()) { +        print_status_narrow(); +    } else { +        render_logo(); +    } +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +        case KC_QWERTY: +            if (record->event.pressed) { +                set_single_persistent_default_layer(_QWERTY); +            } +            return false; +        case KC_COLEMAK: +            if (record->event.pressed) { +                set_single_persistent_default_layer(_COLEMAK); +            } +            return false;  +        case KC_COLEMAKDH: +            if (record->event.pressed) { +                set_single_persistent_default_layer(_COLEMAKDH); +            } +            return false;  +        case KC_LOWER: +            if (record->event.pressed) { +                layer_on(_LOWER); +                update_tri_layer(_LOWER, _RAISE, _ADJUST); +            } else { +                layer_off(_LOWER); +                update_tri_layer(_LOWER, _RAISE, _ADJUST); +            } +            return false; +        case KC_RAISE: +            if (record->event.pressed) { +                layer_on(_RAISE); +                update_tri_layer(_LOWER, _RAISE, _ADJUST); +            } else { +                layer_off(_RAISE); +                update_tri_layer(_LOWER, _RAISE, _ADJUST); +            } +            return false; +        case KC_ADJUST: +            if (record->event.pressed) { +                layer_on(_ADJUST); +            } else { +                layer_off(_ADJUST); +            } +            return false; +        case KC_D_MUTE: +            if (record->event.pressed) { +                register_mods(mod_config(MOD_MEH)); +                register_code(KC_UP); +            } else { +                unregister_mods(mod_config(MOD_MEH)); +                unregister_code(KC_UP); +            } +    } +    return true; +} + +#ifdef ENCODER_ENABLE + +void encoder_update_user(uint8_t index, bool clockwise) { +    if (index == 0) { +        if (clockwise) { +            tap_code(KC_VOLU); +        } else { +            tap_code(KC_VOLD); +        } +		} else if (index == 1) { +			switch (get_highest_layer(layer_state)) { +				case _COLEMAK: +				case _QWERTY: +				case _COLEMAKDH: +					if (clockwise) { +						tap_code(KC_PGDOWN); +					} else { +						tap_code(KC_PGUP); +					} +				break; +			case _RAISE: +			case _LOWER: +					if (clockwise) { +						tap_code(KC_DOWN); +					} else { +						tap_code(KC_UP); +					} +				break; +			default: +					if (clockwise) { +						tap_code(KC_WH_D); +					} else { +						tap_code(KC_WH_U); +					} +				break; +		} +    } +} + +#endif diff --git a/keyboards/sofle/keymaps/rgb_default/rules.mk b/keyboards/sofle/keymaps/rgb_default/rules.mk new file mode 100644 index 0000000000..3dffb03689 --- /dev/null +++ b/keyboards/sofle/keymaps/rgb_default/rules.mk @@ -0,0 +1,7 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = yes +RGBLIGHT_ENABLE = yes +ENCODER_ENABLE = yes +LTO_ENABLE = yes +OLED_DRIVER_ENABLE = yes diff --git a/users/devdev/config.h b/users/devdev/config.h new file mode 100644 index 0000000000..c5a30fe8e2 --- /dev/null +++ b/users/devdev/config.h @@ -0,0 +1,30 @@ + /* Copyright 2021 Dane Evans +  *  +  * 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 + +/* Disable unused and unneeded features to reduce on firmware size */ +#if defined(LOCKING_SUPPORT_ENABLE) +#    undef LOCKING_SUPPORT_ENABLE +#endif + +#if defined(OLED_FONT_H) +#    undef OLED_FONT_H +#endif + + +#define OLED_FONT_H "users/devdev/glcdfont.c" diff --git a/users/devdev/glcdfont.c b/users/devdev/glcdfont.c new file mode 100644 index 0000000000..a95afa3e07 --- /dev/null +++ b/users/devdev/glcdfont.c @@ -0,0 +1,465 @@ +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#include "progmem.h" + +#ifndef CUSTOM_FONT +// Standard ASCII 5x7 font +const unsigned char font[] PROGMEM = { +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, +    0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, +    0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, +    0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, +    0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, +    0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, +    0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, +    0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, +    0x00, 0x18, 0x24, 0x18, 0x00, 0x00, +    0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, +    0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, +    0x26, 0x29, 0x79, 0x29, 0x26, 0x00, +    0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, +    0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, +    0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, +    0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +    0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, +    0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, +    0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, +    0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, +    0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, +    0x60, 0x60, 0x60, 0x60, 0x60, 0x00, +    0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, +    0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, +    0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, +    0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, +    0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, +    0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, +    0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, +    0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, +    0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, +    0x00, 0x07, 0x00, 0x07, 0x00, 0x00, +    0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, +    0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, +    0x23, 0x13, 0x08, 0x64, 0x62, 0x00, +    0x36, 0x49, 0x56, 0x20, 0x50, 0x00, +    0x00, 0x08, 0x07, 0x03, 0x00, 0x00, +    0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, +    0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, +    0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, +    0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, +    0x00, 0x80, 0x70, 0x30, 0x00, 0x00, +    0x08, 0x08, 0x08, 0x08, 0x08, 0x00, +    0x00, 0x00, 0x60, 0x60, 0x00, 0x00, +    0x20, 0x10, 0x08, 0x04, 0x02, 0x00, +    0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, +    0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, +    0x72, 0x49, 0x49, 0x49, 0x46, 0x00, +    0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, +    0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, +    0x27, 0x45, 0x45, 0x45, 0x39, 0x00, +    0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, +    0x41, 0x21, 0x11, 0x09, 0x07, 0x00, +    0x36, 0x49, 0x49, 0x49, 0x36, 0x00, +    0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, +    0x00, 0x00, 0x14, 0x00, 0x00, 0x00, +    0x00, 0x40, 0x34, 0x00, 0x00, 0x00, +    0x00, 0x08, 0x14, 0x22, 0x41, 0x00, +    0x14, 0x14, 0x14, 0x14, 0x14, 0x00, +    0x00, 0x41, 0x22, 0x14, 0x08, 0x00, +    0x02, 0x01, 0x59, 0x09, 0x06, 0x00, +    0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, +    0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, +    0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, +    0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, +    0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, +    0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, +    0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, +    0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, +    0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, +    0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, +    0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, +    0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, +    0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, +    0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, +    0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, +    0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, +    0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, +    0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, +    0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, +    0x26, 0x49, 0x49, 0x49, 0x32, 0x00, +    0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, +    0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, +    0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, +    0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, +    0x63, 0x14, 0x08, 0x14, 0x63, 0x00, +    0x03, 0x04, 0x78, 0x04, 0x03, 0x00, +    0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, +    0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, +    0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +    0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, +    0x04, 0x02, 0x01, 0x02, 0x04, 0x00, +    0x40, 0x40, 0x40, 0x40, 0x40, 0x00, +    0x00, 0x03, 0x07, 0x08, 0x00, 0x00, +    0x20, 0x54, 0x54, 0x78, 0x40, 0x00, +    0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, +    0x38, 0x44, 0x44, 0x44, 0x28, 0x00, +    0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, +    0x38, 0x54, 0x54, 0x54, 0x18, 0x00, +    0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, +    0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, +    0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, +    0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, +    0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, +    0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, +    0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, +    0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, +    0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, +    0x38, 0x44, 0x44, 0x44, 0x38, 0x00, +    0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, +    0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, +    0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, +    0x48, 0x54, 0x54, 0x54, 0x24, 0x00, +    0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, +    0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, +    0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, +    0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, +    0x44, 0x28, 0x10, 0x28, 0x44, 0x00, +    0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, +    0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, +    0x00, 0x08, 0x36, 0x41, 0x00, 0x00, +    0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +    0x00, 0x41, 0x36, 0x08, 0x00, 0x00, +    0x02, 0x01, 0x02, 0x04, 0x02, 0x00, +    0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, +    0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, +    0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, +    0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, +    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +    0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, +    0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, +    0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, +    0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0, +    0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, +    0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, +    0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, +    0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, +    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +    0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, +    0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, +    0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, +    0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, +    0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, +    0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, +    0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, +    0xDE, 0xD7, 0xDC, 0x00, 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, 0xF8, 0xFC, 0xFE, +    0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, +    0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, +    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +    0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x81, +    0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF, +    0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, +    0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, +    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, +    0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, +    0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, +    0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, +    0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, +    0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, +    0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, +    0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, +    0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, +    0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, +    0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, +    0x0F, 0x7F, 0x0F, 0x00, 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, 0x03, 0x0F, 0x1F, +    0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, +    0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, +    0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, +    0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, +    0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x01, 0x03, 0x07, 0x07, +    0x07, 0x07, 0x07, 0x07, 0x07, 0x07, +    0x03, 0x01, 0x00, 0x00, 0x00, 0x00, +    0x01, 0x03, 0x07, 0x07, 0x07, 0x07, +    0x07, 0x07, 0x07, 0x07, 0x03, 0x01, +    0x00, 0x00, 0x00, 0x07, 0x07, 0x07, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x07, 0x07, 0x07, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x07, 0x07, +    0x07, 0x00, 0x00, 0x00, 0x01, 0x03, +    0x07, 0x07, 0x07, 0x07, 0x07, 0x07, +    0x07, 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, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +#else  +     +// use https://joric.github.io/qle/ to generate these.  +// You can copy the image into the logo section, then copy the byte array out of the font one . +const unsigned char  font[] PROGMEM= { +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, +    0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, +    0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, +    0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, +    0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, +    0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, +    0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, +    0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, +    0x00, 0x18, 0x24, 0x18, 0x00, 0x00, +    0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, +    0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, +    0x26, 0x29, 0x79, 0x29, 0x26, 0x00, +    0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, +    0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, +    0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, +    0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +    0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, +    0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, +    0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, +    0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, +    0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, +    0x60, 0x60, 0x60, 0x60, 0x60, 0x00, +    0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, +    0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, +    0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, +    0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, +    0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, +    0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, +    0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, +    0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, +    0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, +    0x00, 0x07, 0x00, 0x07, 0x00, 0x00, +    0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, +    0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, +    0x23, 0x13, 0x08, 0x64, 0x62, 0x00, +    0x36, 0x49, 0x56, 0x20, 0x50, 0x00, +    0x00, 0x08, 0x07, 0x03, 0x00, 0x00, +    0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, +    0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, +    0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, +    0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, +    0x00, 0x80, 0x70, 0x30, 0x00, 0x00, +    0x08, 0x08, 0x08, 0x08, 0x08, 0x00, +    0x00, 0x00, 0x60, 0x60, 0x00, 0x00, +    0x20, 0x10, 0x08, 0x04, 0x02, 0x00, +    0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, +    0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, +    0x72, 0x49, 0x49, 0x49, 0x46, 0x00, +    0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, +    0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, +    0x27, 0x45, 0x45, 0x45, 0x39, 0x00, +    0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, +    0x41, 0x21, 0x11, 0x09, 0x07, 0x00, +    0x36, 0x49, 0x49, 0x49, 0x36, 0x00, +    0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, +    0x00, 0x00, 0x14, 0x00, 0x00, 0x00, +    0x00, 0x40, 0x34, 0x00, 0x00, 0x00, +    0x00, 0x08, 0x14, 0x22, 0x41, 0x00, +    0x14, 0x14, 0x14, 0x14, 0x14, 0x00, +    0x00, 0x41, 0x22, 0x14, 0x08, 0x00, +    0x02, 0x01, 0x59, 0x09, 0x06, 0x00, +    0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, +    0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, +    0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, +    0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, +    0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, +    0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, +    0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, +    0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, +    0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, +    0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, +    0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, +    0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, +    0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, +    0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, +    0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, +    0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, +    0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, +    0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, +    0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, +    0x26, 0x49, 0x49, 0x49, 0x32, 0x00, +    0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, +    0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, +    0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, +    0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, +    0x63, 0x14, 0x08, 0x14, 0x63, 0x00, +    0x03, 0x04, 0x78, 0x04, 0x03, 0x00, +    0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, +    0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, +    0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +    0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, +    0x04, 0x02, 0x01, 0x02, 0x04, 0x00, +    0x40, 0x40, 0x40, 0x40, 0x40, 0x00, +    0x00, 0x03, 0x07, 0x08, 0x00, 0x00, +    0x20, 0x54, 0x54, 0x78, 0x40, 0x00, +    0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, +    0x38, 0x44, 0x44, 0x44, 0x28, 0x00, +    0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, +    0x38, 0x54, 0x54, 0x54, 0x18, 0x00, +    0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, +    0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, +    0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, +    0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, +    0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, +    0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, +    0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, +    0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, +    0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, +    0x38, 0x44, 0x44, 0x44, 0x38, 0x00, +    0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, +    0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, +    0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, +    0x48, 0x54, 0x54, 0x54, 0x24, 0x00, +    0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, +    0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, +    0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, +    0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, +    0x44, 0x28, 0x10, 0x28, 0x44, 0x00, +    0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, +    0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, +    0x00, 0x08, 0x36, 0x41, 0x00, 0x00, +    0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +    0x00, 0x41, 0x36, 0x08, 0x00, 0x00, +    0x02, 0x01, 0x02, 0x04, 0x02, 0x00, +    0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x7C, 0xFC, +    0xFC, 0xF8, 0xF0, 0x00, 0x20, 0xF0, +    0x20, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x80, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x08, 0x3C, +    0xA8, 0xE0, 0xE0, 0xE0, 0xF0, 0x78, +    0x7C, 0x7C, 0x7C, 0x3C, 0x1C, 0x00, +    0x00, 0x00, 0xF8, 0xFC, 0x8C, 0x04, +    0x04, 0x0C, 0x08, 0x10, 0x80, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x40, 0x60, 0xC0, 0x80, +    0x80, 0xE0, 0xF0, 0xF8, 0x7C, 0x1C, +    0x0C, 0x0C, 0x0C, 0x9C, 0xF8, 0x00, +    0x00, 0x00, 0xF8, 0xFC, 0x8C, 0x04, +    0x04, 0x0C, 0x08, 0x10, 0x80, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, +    0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, +    0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, +    0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, +    0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, +    0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, +    0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, +    0xDE, 0xD7, 0xDC, 0x00, 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, 0x00, 0x20, 0x70, +    0x21, 0x3F, 0x0F, 0x1F, 0x3D, 0x3D, +    0x3C, 0xBC, 0xBC, 0xFC, 0x7E, 0x7E, +    0xF3, 0xF1, 0xE0, 0xC0, 0x80, 0x00, +    0x00, 0x00, 0x00, 0x80, 0xC0, 0x20, +    0x00, 0x00, 0x10, 0x38, 0xE0, 0xFF, +    0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0x02, +    0x02, 0x07, 0x02, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x01, 0x03, 0x07, 0x8F, +    0xCF, 0x7E, 0x7E, 0x3F, 0x3D, 0x3D, +    0x3C, 0xBC, 0xBC, 0xF8, 0xF0, 0xFC, +    0x84, 0x0E, 0x04, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x20, +    0x70, 0x20, 0x20, 0xE0, 0x81, 0xFF, +    0xFF, 0xFF, 0x7F, 0x03, 0x0E, 0x04, +    0x00, 0x00, 0x02, 0x01, 0x00, 0x00, +    0x00, 0x00, 0x01, 0x03, 0x07, 0x8F, +    0xCF, 0x7E, 0x7E, 0x3F, 0x3D, 0x3D, +    0x3C, 0xBC, 0xBC, 0xF8, 0xF0, 0xFC, +    0x84, 0x0E, 0x04, 0x00, 0x00, 0x00, +    0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, +    0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, +    0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, +    0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, +    0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, +    0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, +    0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, +    0x0F, 0x7F, 0x0F, 0x00, 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, 0x01, 0x08, 0x10, 0x30, +    0x20, 0x20, 0x31, 0x3F, 0x1F, 0x00, +    0x00, 0x00, 0x00, 0x0F, 0x1C, 0x18, +    0x18, 0x18, 0x1C, 0x1F, 0x0F, 0x07, +    0x03, 0x00, 0x00, 0x01, 0x03, 0x01, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x04, 0x0F, 0x04, 0x00, 0x0F, 0x1F, +    0x3F, 0x3F, 0x3E, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x1C, 0x1E, 0x1F, +    0x1F, 0x1F, 0x0F, 0x07, 0x03, 0x03, +    0x03, 0x0A, 0x1e, 0x08, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +    0x04, 0x0F, 0x04, 0x00, 0x0f, 0x1F, +    0x3F, 0x3F, 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, +}; +#endif
\ No newline at end of file | 
