Add draculad keyboard and some 3x5 tweaks
This commit is contained in:
		
							parent
							
								
									2c433a2114
								
							
						
					
					
						commit
						4607d8ea55
					
				
					 5 changed files with 207 additions and 12 deletions
				
			
		
							
								
								
									
										33
									
								
								keyboards/draculad/keymaps/struckmb/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								keyboards/draculad/keymaps/struckmb/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2021 @mangoiv
 | 
			
		||||
 | 
			
		||||
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/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// comment that out if your trackball is on the left side
 | 
			
		||||
#define TRACKBALL_RIGHT
 | 
			
		||||
 | 
			
		||||
#ifdef TRACKBALL_RIGHT
 | 
			
		||||
#    define PIMORONI_TRACKBALL_INVERT_X
 | 
			
		||||
#    define PIMORONI_TRACKBALL_INVERT_Y
 | 
			
		||||
#endif // TRACKBALL_RIGHT
 | 
			
		||||
#define POINTING_DEVICE_ROTATION_90
 | 
			
		||||
 | 
			
		||||
#define QWERTY_ENABLE
 | 
			
		||||
// #define BONE_ENABLE
 | 
			
		||||
 | 
			
		||||
#ifdef COMBO_ENABLE
 | 
			
		||||
#    define EXTRA_SHORT_COMBOS
 | 
			
		||||
// #    define COMBO_SHOULD_TRIGGER
 | 
			
		||||
#endif // COMBO_ENABLE
 | 
			
		||||
							
								
								
									
										144
									
								
								keyboards/draculad/keymaps/struckmb/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								keyboards/draculad/keymaps/struckmb/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,144 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2021 @mangoiv
 | 
			
		||||
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include "struckmb.h"
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
#ifdef QWERTY_ENABLE
 | 
			
		||||
    [LAYER_QWERTY] = LAYOUT_wrapper(_QWERTY_3x5_, KC_MUTE, KC_MUTE, _0L4_3_, KC_BTN1, SFT_SPC, LT(LAYER_RAISE, RSE_BSP)),
 | 
			
		||||
    [LAYER_X]      = LAYOUT_wrapper(_QWERTY_L_X_, KC_MUTE, KC_MUTE, _0L4_3_, KC_BTN1, SFT_SPC, LT(LAYER_RAISE, RSE_BSP)),
 | 
			
		||||
#endif // ifdef QWERTY_ENABLE
 | 
			
		||||
#ifdef BONE_ENABLE
 | 
			
		||||
    [LAYER_BONE] = LAYOUT_wrapper(_BONE_3x5_, KC_MUTE, KC_MUTE, _0L4_3_, KC_BTN1, SFT_SPC, LT(LAYER_RAISE, RSE_BSP)),
 | 
			
		||||
#endif // ifdef BONE_ENABLE
 | 
			
		||||
#ifdef COLEMAK_DH_ENABLE
 | 
			
		||||
    [LAYER_COLEMAK_DH] = LAYOUT_wrapper(_COLEMAK_DH_3x5_, KC_MUTE, KC_MUTE, _0L4_3_, KC_BTN1, SFT_SPC, LT(LAYER_RAISE, RSE_BSP)),
 | 
			
		||||
#endif /* ifdef COLEMAK_DH_ENABLE */
 | 
			
		||||
 | 
			
		||||
    [LAYER_SYMBL] = LAYOUT_wrapper(_SYMBL_3x5_, KC_MUTE, KC_MUTE, _SL4_3_, KC_BTN1, SFT_SPC, KC_RALT),
 | 
			
		||||
    [LAYER_LOWER] = LAYOUT_wrapper(_LOWER_3x5_, KC_MUTE, KC_MUTE, _LL4_3_, KC_BTN1, SFT_SPC, ATT(KC_BSPC)),
 | 
			
		||||
    [LAYER_RAISE] = LAYOUT_wrapper(_RAISE_3x5_, KC_MUTE, KC_MUTE, _RL4_3_, KC_BTN1, RSFT_T(KC_VOLU), KC_TRNS),
 | 
			
		||||
    [LAYER_ATTIC] = LAYOUT_wrapper(_ATTIC_3x5_, KC_MUTE, KC_MUTE, _AL4_3_, KC_BTN1, RSFT_T(KC_BRIU), KC_TRNS),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef OLED_ENABLE
 | 
			
		||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		||||
    if (is_keyboard_master()) {
 | 
			
		||||
        if (is_keyboard_left()) {
 | 
			
		||||
            return OLED_ROTATION_270;
 | 
			
		||||
        } else {
 | 
			
		||||
            return OLED_ROTATION_90;
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        return OLED_ROTATION_0;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef X__OLED_ENABLE
 | 
			
		||||
static void render_logo(void) {
 | 
			
		||||
    static const char PROGMEM drac_logo[] = {// drac_logo, 128x64px
 | 
			
		||||
                                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x0c, 0x18, 0x78, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x3e, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x60, 0x30, 0x30, 0x30, 0x00, 0x00, 0xe0, 0xe0, 0x30, 0x30, 0x30, 0x30, 0x30, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x30, 0x30, 0x30, 0x70, 0xe0, 0xc0, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xf0, 0x80, 0xc0, 0xe0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xe0, 0x7c, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf8, 0xcc, 0x8c, 0x84, 0x86, 0x86, 0xc6, 0xff, 0xff, 0x80, 0x80, 0x00, 0x3f, 0x7f, 0xe0, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xf0, 0x71, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x1f, 0x7f, 0x7f, 0x3e, 0x3e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0x7e, 0x7c, 0x78, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
 | 
			
		||||
                                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                             0xc0, 0xc0, 0x60, 0x60, 0x60, 0x60, 0x60, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0x60, 0x60, 0x60, 0xc0, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x3e, 0x7c, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf1, 0x99, 0x18, 0x08, 0x0c, 0x0c, 0x8c, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc1, 0x80, 0x00, 0x00, 0x00,
 | 
			
		||||
                                             0x80, 0xc3, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
                                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
 | 
			
		||||
    oled_write_raw_P(drac_logo, sizeof(drac_logo));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void render_status(void) {
 | 
			
		||||
    oled_write_P(PSTR("This is\n~~~~~~~~~\nDracu\nLad\n~~~~~~~~~\nv1.0\n~~~~~~~~~\n"), false);
 | 
			
		||||
    uint8_t n = get_current_wpm();
 | 
			
		||||
    char    wpm_counter[4];
 | 
			
		||||
    wpm_counter[3] = '\0';
 | 
			
		||||
    wpm_counter[2] = '0' + n % 10;
 | 
			
		||||
    wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
 | 
			
		||||
    wpm_counter[0] = n / 10 ? '0' + n / 10 : ' ';
 | 
			
		||||
    oled_write_P(PSTR("WPM:"), false);
 | 
			
		||||
    oled_write(wpm_counter, false);
 | 
			
		||||
    led_t led_state = host_keyboard_led_state();
 | 
			
		||||
    oled_write_P(PSTR("\nCaps: "), false);
 | 
			
		||||
    oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false);
 | 
			
		||||
    oled_write_P(PSTR("\n"), false);
 | 
			
		||||
    // switch (get_highest_layer(layer_state)) {
 | 
			
		||||
    //     case _BASE:
 | 
			
		||||
    //         oled_write_P(PSTR("Base   "), false);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     case _NUM:
 | 
			
		||||
    //         oled_write_P(PSTR("Numbers"), false);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     case _SYMB:
 | 
			
		||||
    //         oled_write_P(PSTR("Symbols"), false);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     case _ADJ:
 | 
			
		||||
    //         oled_write_P(PSTR("Adjust "), false);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     case _MUS:
 | 
			
		||||
    //         oled_write_P(PSTR("Mouse  "), false);
 | 
			
		||||
    //         break;
 | 
			
		||||
    //     default:
 | 
			
		||||
    //         oled_write_P(PSTR("Unkn "), false);
 | 
			
		||||
    //         break;
 | 
			
		||||
    // }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool oled_task_user(void) {
 | 
			
		||||
    if (is_keyboard_master()) {
 | 
			
		||||
        render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
 | 
			
		||||
    } else {
 | 
			
		||||
        render_logo();
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef ENCODER_ENABLE
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (index == 0) {
 | 
			
		||||
        // Volume control
 | 
			
		||||
        tap_code(clockwise ? KC_VOLU : KC_VOLD);
 | 
			
		||||
    }
 | 
			
		||||
    // Page up/Page down
 | 
			
		||||
    tap_code(clockwise ? KC_PGUP : KC_PGDN);
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef X__COMBO_ENABLE
 | 
			
		||||
#    ifdef QWERTY_ENABLE
 | 
			
		||||
const uint16_t PROGMEM combo_qwerty_ue[] = {DE_Q, DE_P, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM combo_qwerty_ae[] = {DE_Q, DE_OE, COMBO_END};
 | 
			
		||||
 | 
			
		||||
combo_t key_combos[] = {
 | 
			
		||||
    COMBO(combo_qwerty_ue, DE_UDIA),
 | 
			
		||||
    COMBO(combo_qwerty_ae, DE_ADIA),
 | 
			
		||||
};
 | 
			
		||||
#    endif // QWERTY_ENABLE
 | 
			
		||||
 | 
			
		||||
#    ifdef COMBO_SHOULD_TRIGGER
 | 
			
		||||
bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
#        ifdef QWERTY_ENABLE
 | 
			
		||||
    /* Trigger qwerty umlaut combos only on qwerty layer */
 | 
			
		||||
    return layer_state_is(LAYER_QWERTY);
 | 
			
		||||
#        endif // QWERTY_ENABLE
 | 
			
		||||
};
 | 
			
		||||
#    endif // COMBO_SHOULD_TRIGGER
 | 
			
		||||
#endif     // COMBO_ENABLE
 | 
			
		||||
							
								
								
									
										7
									
								
								keyboards/draculad/keymaps/struckmb/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								keyboards/draculad/keymaps/struckmb/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
# only uncomment on the side you have your trackball on
 | 
			
		||||
POINTING_DEVICE_ENABLE = yes
 | 
			
		||||
POINTING_DEVICE_DRIVER = pimoroni_trackball
 | 
			
		||||
 | 
			
		||||
QUANTUM_LIB_SRC += i2c_master.c
 | 
			
		||||
OLED_DRIVER_ENABLE = yes
 | 
			
		||||
MOUSEKEY_ENABLE = no
 | 
			
		||||
							
								
								
									
										3
									
								
								qmk.json
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								qmk.json
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,7 +1,8 @@
 | 
			
		|||
{
 | 
			
		||||
    "userspace_version": "1.1",
 | 
			
		||||
    "build_targets": [
 | 
			
		||||
        ["cantor", "struckmb"],
 | 
			
		||||
        ["bastardkb/charybdis/3x6/v2/splinky_3", "struckmb"]
 | 
			
		||||
        ["cantor", "struckmb"],
 | 
			
		||||
        ["draculad", "struckmb"],
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,6 +45,7 @@ enum userspace_layers {
 | 
			
		|||
    LAYER_POINTER,
 | 
			
		||||
#endif // MOUSEKEY_ENABLE
 | 
			
		||||
    LAYER_ATTIC,
 | 
			
		||||
    LAYER_X
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Custom macro keycode ranges
 | 
			
		||||
| 
						 | 
				
			
			@ -68,11 +69,11 @@ enum userspace_custom_keycodes {
 | 
			
		|||
#ifdef MOUSEKEY_ENABLE
 | 
			
		||||
    MS_CSB1,
 | 
			
		||||
#endif // MOUSEKEY_ENABLE
 | 
			
		||||
#ifdef ENCODER_ENABLE
 | 
			
		||||
#ifdef X__ENCODER_ENABLE
 | 
			
		||||
    // Encoder button(s)
 | 
			
		||||
    BS_ENC0,
 | 
			
		||||
    BS_ENC1,
 | 
			
		||||
#endif // ENCODER_ENABLE
 | 
			
		||||
#endif // X__ENCODER_ENABLE
 | 
			
		||||
       // use for keymap specific codes
 | 
			
		||||
    KEYMAP_SAFE_RANGE
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -126,6 +127,7 @@ enum userspace_custom_keycodes {
 | 
			
		|||
#else
 | 
			
		||||
#    define MS(kc) kc
 | 
			
		||||
#endif
 | 
			
		||||
#define LX(kc) LT(LAYER_X, kc)
 | 
			
		||||
 | 
			
		||||
// one shot modifier shortcuts
 | 
			
		||||
#define OSM_ALT OSM(MOD_LALT)
 | 
			
		||||
| 
						 | 
				
			
			@ -187,9 +189,9 @@ void symR_reset(tap_dance_state_t *state, void *user_data);
 | 
			
		|||
#define _ADD_R_3_ KC_RGUI
 | 
			
		||||
// thumbs
 | 
			
		||||
#define _0L4_2_ SFT_ENT, LOW_TAB
 | 
			
		||||
#define _0L4_3_ QK_REP, _0L4_2_
 | 
			
		||||
#define _0L4_3_ KC_ESC, _0L4_2_
 | 
			
		||||
#define _0R4_2_ RSE_BSP, SFT_SPC
 | 
			
		||||
#define _0R4_3_ _0R4_2_, KC_DEL
 | 
			
		||||
#define _0R4_3_ _0R4_2_, QK_REP
 | 
			
		||||
 | 
			
		||||
/* THUMBS for base layers */
 | 
			
		||||
#define _THUMBS_3_2_ _0L4_3_, _0R4_2_
 | 
			
		||||
| 
						 | 
				
			
			@ -197,24 +199,32 @@ void symR_reset(tap_dance_state_t *state, void *user_data);
 | 
			
		|||
 | 
			
		||||
#ifdef QWERTY_ENABLE
 | 
			
		||||
/* QWERTY layout */
 | 
			
		||||
#    define __QL1_1_ DE_Q
 | 
			
		||||
#    define __QL1_4_ DE_W, DE_E, DE_R, DE_T
 | 
			
		||||
#    define __QR1_4_ DE_Z, DE_U, DE_I, DE_O
 | 
			
		||||
#    define __QR1_1_ DE_P
 | 
			
		||||
#    define __QL2_1_ DE_A
 | 
			
		||||
#    define __HRM__QL2_4_ HRML(DE_S, DE_D, DE_F), DE_G
 | 
			
		||||
#    define _HRM_QR2_4_ DE_H, HRMR(DE_J, DE_K, DE_L)
 | 
			
		||||
#    define _QL1_5_ DE_Q, DE_W, DE_E, DE_R, DE_T
 | 
			
		||||
#    define _QL2_5_ SY_L(DE_A), __HRM__QL2_4_
 | 
			
		||||
#    define __QR2_1_ DE_ODIA
 | 
			
		||||
 | 
			
		||||
#    define _QL1_5_ LX(__QL1_1_), __QL1_4_
 | 
			
		||||
#    define _QL2_5_ SY_L(__QL2_1_), __HRM__QL2_4_
 | 
			
		||||
#    define _QL3_5_ MS(DE_Y), DE_X, DE_C, DE_V, DE_B
 | 
			
		||||
#    define _QR1_5_ DE_Z, DE_U, DE_I, DE_O, DE_P
 | 
			
		||||
#    define _QR2_5_ _HRM_QR2_4_, SY_R(DE_ODIA)
 | 
			
		||||
#    define _QR1_5_ __QR1_4_, __QR1_1_
 | 
			
		||||
#    define _QR2_5_ _HRM_QR2_4_, SY_R(__QR2_1_)
 | 
			
		||||
#    define _QR3_5_ DE_N, DE_M, DE_COMM, DE_DOT, MS(DE_SS)
 | 
			
		||||
//
 | 
			
		||||
#    define _QL1_6_ _BASE_L_1_, _QL1_5_
 | 
			
		||||
#    define _QL2_6_ _BASE_L_2_, DE_A, __HRM__QL2_4_
 | 
			
		||||
#    define _QL1_6_ _BASE_L_1_, __QL1_1_, __QL1_4_
 | 
			
		||||
#    define _QL2_6_ _BASE_L_2_, __QL2_1_, __HRM__QL2_4_
 | 
			
		||||
#    define _QL3_6_ _BASE_L_3_, _QL3_5_
 | 
			
		||||
#    define _QR1_6_ _QR1_5_, _BASE_R_1_(DE_UDIA)
 | 
			
		||||
#    define _QR2_6_ _HRM_QR2_4_, DE_ODIA, _BASE_R_2_(DE_ADIA)
 | 
			
		||||
#    define _QR2_6_ _HRM_QR2_4_, __QR2_1_, _BASE_R_2_(DE_ADIA)
 | 
			
		||||
#    define _QR3_6_ _QR3_5_, _BASE_R_3_(KC_ENT)
 | 
			
		||||
//
 | 
			
		||||
#    define _QWERTY_3x5_ _QL1_5_, _QR1_5_, _QL2_5_, _QR2_5_, _QL3_5_, _QR3_5_
 | 
			
		||||
#    define _QWERTY_3x6_ _QL1_6_, _QR1_6_, _QL2_6_, _QR2_6_, _QL3_6_, _QR3_6_
 | 
			
		||||
#    define _QWERTY_L_X_ _QL1_5_, __QR1_4_, DE_UDIA, _QL2_5_, _HRM_QR2_4_, DE_ADIA, _QL3_5_, _QR3_5_
 | 
			
		||||
#endif // QWERTY_ENABLE
 | 
			
		||||
 | 
			
		||||
#ifdef BONE_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue