forked from mirrors/qmk_userspace
		
	[Keymap] Various enhancements for dshields user space and keymaps. (#6816)
- Add oneshot mod/layer unlocking - Fix Planck rev 3 backlight breathing - Fix Planck rev 6 build with arm gcc 9.2.0 - General code clean up
This commit is contained in:
		
					parent
					
						
							
								0f9e2659c9
							
						
					
				
			
			
				commit
				
					
						00abe5d8ed
					
				
			
		
					 6 changed files with 54 additions and 47 deletions
				
			
		| 
						 | 
					@ -1,17 +1,13 @@
 | 
				
			||||||
#include QMK_KEYBOARD_H
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
#include "dshields.h"
 | 
					#include "dshields.h"
 | 
				
			||||||
 | 
					 | 
				
			||||||
enum { DEF, FUN };
 | 
					 | 
				
			||||||
enum { DYNAMIC_MACRO_RANGE = SAFE_RANGE };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "dynamic_macro.h"
 | 
					#include "dynamic_macro.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
[DEF] = LAYOUT(
 | 
					[DEF] = LAYOUT(
 | 
				
			||||||
    RESET  , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                      KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , _______,
 | 
					    RESET  , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                      KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , _______,
 | 
				
			||||||
    KC_GRV , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , RGB_TOG,    DM_PLAY, KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_EQL ,
 | 
					    KC_GRV , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , RGB_TOG,    _______, KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_EQL ,
 | 
				
			||||||
    KC_PGUP, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_TAB ,    KC_ENT , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT,
 | 
					    KC_PGUP, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_TAB ,    KC_ENT , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT,
 | 
				
			||||||
    KC_PGDN, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_ESC ,    _______, KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
 | 
					    KC_PGDN, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_ESC ,    DM_PLAY, KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
 | 
				
			||||||
                                           OSMLCTL,                                 KC_RCTL,
 | 
					                                           OSMLCTL,                                 KC_RCTL,
 | 
				
			||||||
                                              KC_BSPC,                           KC_SPC ,
 | 
					                                              KC_BSPC,                           KC_SPC ,
 | 
				
			||||||
                                                 KC_LGUI,                     OSMRALT,
 | 
					                                                 KC_LGUI,                     OSMRALT,
 | 
				
			||||||
| 
						 | 
					@ -19,10 +15,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
                                        OSL_FUN,                                        OSL_FUN
 | 
					                                        OSL_FUN,                                        OSL_FUN
 | 
				
			||||||
    ),
 | 
					    ),
 | 
				
			||||||
[FUN] = LAYOUT(
 | 
					[FUN] = LAYOUT(
 | 
				
			||||||
    _______, KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  ,                      KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 ,
 | 
					    EEP_RST, KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  ,                      KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 ,
 | 
				
			||||||
    KC_TAB , _______, KC_MS_U, _______, KC_BTN3, _______, RGB_MOD,    DM_STRT, _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 ,
 | 
					    KC_TAB , _______, KC_MS_U, _______, KC_BTN3, _______, RGB_MOD,    DM_STRT, _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 ,
 | 
				
			||||||
    KC_HOME, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, _______, _______,    DM_STOP, KC_LEFT, KC_DOWN, KC_UP  , KC_RGHT, _______, _______,
 | 
					    KC_HOME, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, _______, _______,    _______, KC_LEFT, KC_DOWN, KC_UP  , KC_RGHT, _______, _______,
 | 
				
			||||||
    KC_END , KC_PSCR, KC_INS , _______, KC_BTN2, _______, _______,    _______, _______, _______, _______, _______, KC_BSLS, KC_PIPE,
 | 
					    KC_END , KC_PSCR, KC_INS , _______, KC_BTN2, _______, _______,    DM_STOP, _______, _______, _______, _______, KC_BSLS, KC_PIPE,
 | 
				
			||||||
                                           _______,                                 _______,
 | 
					                                           _______,                                 _______,
 | 
				
			||||||
                                              KC_DEL ,                           KC_ENT ,
 | 
					                                              KC_DEL ,                           KC_ENT ,
 | 
				
			||||||
                                                 _______,                     _______,
 | 
					                                                 _______,                     _______,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,5 @@
 | 
				
			||||||
#include QMK_KEYBOARD_H
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
#include "dshields.h"
 | 
					#include "dshields.h"
 | 
				
			||||||
 | 
					 | 
				
			||||||
enum planck_layers { DEF, LWR, RSE, FUN };
 | 
					 | 
				
			||||||
enum planck_keycodes { DYNAMIC_MACRO_RANGE = SAFE_RANGE };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "dynamic_macro.h"
 | 
					#include "dynamic_macro.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
| 
						 | 
					@ -14,21 +10,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
        OSMLCTL, KC_LGUI, OSMLALT, OSL_FUN, OSL_LWR, MT_SPC,  MT_SPC,  OSL_RSE, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 | 
					        OSMLCTL, KC_LGUI, OSMLALT, OSL_FUN, OSL_LWR, MT_SPC,  MT_SPC,  OSL_RSE, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 | 
				
			||||||
    ),
 | 
					    ),
 | 
				
			||||||
    [LWR] = LAYOUT_planck_grid(
 | 
					    [LWR] = LAYOUT_planck_grid(
 | 
				
			||||||
        KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
 | 
					        KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, _______, KC_DEL,  KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
 | 
				
			||||||
        KC_TILD, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, _______, KC_LCBR, KC_RCBR,
 | 
					        KC_TILD, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, _______, KC_LCBR, KC_RCBR,
 | 
				
			||||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DQUO, KC_PIPE,
 | 
					        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DQUO, KC_PIPE,
 | 
				
			||||||
        _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END 
 | 
					        _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
 | 
				
			||||||
    ),
 | 
					    ),
 | 
				
			||||||
    [RSE] = LAYOUT_planck_grid(
 | 
					    [RSE] = LAYOUT_planck_grid(
 | 
				
			||||||
        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    _______, _______, KC_6,    KC_7,    KC_8,    KC_9,    KC_0   ,
 | 
					        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    _______, KC_DEL,  KC_6,    KC_7,    KC_8,    KC_9,    KC_0   ,
 | 
				
			||||||
        KC_GRV,  _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL,  _______, KC_LBRC, KC_RBRC,
 | 
					        KC_GRV,  _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL,  _______, KC_LBRC, KC_RBRC,
 | 
				
			||||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_BSLS,
 | 
					        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_BSLS,
 | 
				
			||||||
        _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END 
 | 
					        _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
 | 
				
			||||||
    ),
 | 
					    ),
 | 
				
			||||||
    [FUN] = LAYOUT_planck_grid(
 | 
					    [FUN] = LAYOUT_planck_grid(
 | 
				
			||||||
        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   RESET,   KC_DEL,  KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10 ,
 | 
					        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   RESET,   EEP_RST, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10 ,
 | 
				
			||||||
        KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R,
 | 
					        KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R,
 | 
				
			||||||
        LGT_TOG, LGT_MOD, _______, _______, _______, DM_STRT, DM_STOP, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3,
 | 
					        LGT_TOG, LGT_MOD, LGT_BRT, _______, _______, DM_STRT, DM_STOP, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3,
 | 
				
			||||||
        _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
 | 
					        _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,7 @@
 | 
				
			||||||
#define ONESHOT_TAP_TOGGLE        2
 | 
					#define ONESHOT_TAP_TOGGLE        2
 | 
				
			||||||
#define ONESHOT_TIMEOUT           3000
 | 
					#define ONESHOT_TIMEOUT           3000
 | 
				
			||||||
#define RETRO_TAPPING
 | 
					#define RETRO_TAPPING
 | 
				
			||||||
 | 
					#define BACKLIGHT_BREATHING
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MOUSEKEY_INTERVAL         20
 | 
					#define MOUSEKEY_INTERVAL         20
 | 
				
			||||||
#define MOUSEKEY_DELAY            0
 | 
					#define MOUSEKEY_DELAY            0
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,30 +1,31 @@
 | 
				
			||||||
extern keymap_config_t keymap_config;
 | 
					#include "quantum.h"
 | 
				
			||||||
 | 
					#include "dshields.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* uncomment to reset
 | 
					extern bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record);
 | 
				
			||||||
void matrix_init_user(void) {
 | 
					 | 
				
			||||||
    eeconfig_init();
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
					bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
				
			||||||
    if (!process_record_dynamic_macro(keycode, record)) {
 | 
					    if (!process_record_dynamic_macro(keycode, record)) {
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (keycode == KC_ESC && record->event.pressed) {
 | 
				
			||||||
 | 
					        bool rc = true;
 | 
				
			||||||
 | 
					        uint8_t mods = 0;
 | 
				
			||||||
 | 
					        if ((mods = get_oneshot_mods()) && !has_oneshot_mods_timed_out()) {
 | 
				
			||||||
 | 
					            clear_oneshot_mods();
 | 
				
			||||||
 | 
					            unregister_mods(mods);
 | 
				
			||||||
 | 
					            rc = false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if ((mods = get_oneshot_locked_mods())) {
 | 
				
			||||||
 | 
					            clear_oneshot_locked_mods();
 | 
				
			||||||
 | 
					            unregister_mods(mods);
 | 
				
			||||||
 | 
					            rc = false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (is_oneshot_layer_active()) {
 | 
				
			||||||
 | 
					            layer_clear();
 | 
				
			||||||
 | 
					            rc = false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return rc;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// work in progress
 | 
					 | 
				
			||||||
uint32_t layer_state_set_user(uint32_t state) {
 | 
					 | 
				
			||||||
    switch (biton32(state)) {
 | 
					 | 
				
			||||||
        case DEF:
 | 
					 | 
				
			||||||
            set_all_leds_to(0,0,0);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        case FUN:
 | 
					 | 
				
			||||||
            // TODO light the fn keys
 | 
					 | 
				
			||||||
            // set_led_to(?, 0, 128, 0);
 | 
					 | 
				
			||||||
            // set_led_to(?, 0, 128, 0);
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return state;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,8 +24,18 @@
 | 
				
			||||||
#ifdef KEYBOARD_planck_light
 | 
					#ifdef KEYBOARD_planck_light
 | 
				
			||||||
    #define LGT_TOG RGB_TOG
 | 
					    #define LGT_TOG RGB_TOG
 | 
				
			||||||
    #define LGT_MOD RGB_MOD
 | 
					    #define LGT_MOD RGB_MOD
 | 
				
			||||||
#else
 | 
					    #define LGT_BRT _______
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef KEYBOARD_planck_rev3
 | 
				
			||||||
    #define LGT_TOG BL_TOGG
 | 
					    #define LGT_TOG BL_TOGG
 | 
				
			||||||
    #define LGT_MOD BL_STEP
 | 
					    #define LGT_MOD BL_STEP
 | 
				
			||||||
 | 
					    #define LGT_BRT BL_BRTG
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef KEYBOARD_planck_rev6
 | 
				
			||||||
 | 
					    #define LGT_TOG _______
 | 
				
			||||||
 | 
					    #define LGT_MOD _______
 | 
				
			||||||
 | 
					    #define LGT_BRT _______
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum layers   { DEF, LWR, RSE, FUN };
 | 
				
			||||||
 | 
					enum keycodes { DYNAMIC_MACRO_RANGE = SAFE_RANGE };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,11 @@
 | 
				
			||||||
MOUSEKEY_ENABLE  = yes # Mouse keys(+4700)
 | 
					SRC += dshields.c
 | 
				
			||||||
COMMAND_ENABLE   = no  # Commands for debug and configuration
 | 
					
 | 
				
			||||||
CONSOLE_ENABLE   = no  # Console for debug(+400)
 | 
					MOUSEKEY_ENABLE       = yes # Mouse keys(+4700)
 | 
				
			||||||
EXTRAKEY_ENABLE  = no
 | 
					COMMAND_ENABLE        = no  # Commands for debug and configuration
 | 
				
			||||||
SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
 | 
					CONSOLE_ENABLE        = no  # Console for debug(+400)
 | 
				
			||||||
API_SYSEX_ENABLE = no
 | 
					EXTRAKEY_ENABLE       = no
 | 
				
			||||||
 | 
					SLEEP_LED_ENABLE      = no  # Breathing sleep LED during USB suspend
 | 
				
			||||||
 | 
					API_SYSEX_ENABLE      = no
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(strip $(KEYBOARD)), planck/rev3)
 | 
					ifeq ($(strip $(KEYBOARD)), planck/rev3)
 | 
				
			||||||
	AUDIO_ENABLE	  = no
 | 
						AUDIO_ENABLE	  = no
 | 
				
			||||||
| 
						 | 
					@ -11,6 +13,7 @@ ifeq ($(strip $(KEYBOARD)), planck/rev3)
 | 
				
			||||||
	RGB_MATRIX_ENABLE = no
 | 
						RGB_MATRIX_ENABLE = no
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
ifeq ($(strip $(KEYBOARD)), planck/rev6)
 | 
					ifeq ($(strip $(KEYBOARD)), planck/rev6)
 | 
				
			||||||
 | 
						CFLAGS           += -Wno-error=deprecated
 | 
				
			||||||
	EXTRALDFLAGS	  = -Wl,--build-id=none
 | 
						EXTRALDFLAGS	  = -Wl,--build-id=none
 | 
				
			||||||
	AUDIO_ENABLE	  = no
 | 
						AUDIO_ENABLE	  = no
 | 
				
			||||||
	BACKLIGHT_ENABLE  = no
 | 
						BACKLIGHT_ENABLE  = no
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue