--- /dev/null
+/*
+Copyright 2017 Danny Nguyen <danny@keeb.io>
+
+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
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+#undef USE_I2C
+
+/* Select hand configuration */
+
+// #define MASTER_LEFT
+// #define MASTER_RIGHT
+#define EE_HANDS
+
+#define QMK_ESC_OUTPUT F6 // usually COL
+#define QMK_ESC_INPUT D7 // usually ROW
+#define QMK_LED B0
--- /dev/null
+
+#include QMK_KEYBOARD_H
+#include "wanleg.h"
+
+
+#define LAYOUT_iris_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
+ K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \
+ ) \
+ LAYOUT_wrapper( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
+ K31, K32, K33, K34, K35, K36, _______, _______, K37, K38, K39, K3A, K3B, K3C, \
+ _______, _______, _______, _______, _______, _______ \
+ )
+#define LAYOUT_iris_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_GK] = LAYOUT_iris_base_wrapper(
+ _______________GherkinLike_0_______________,
+ _______________GherkinLike_1_______________,
+ _______________GherkinLike_2_______________,
+ _______________GherkinLike_3_OneHand_______
+ ),
+ [ONE] = LAYOUT_wrapper(
+ _______________Qwerty_Row__0_______________,
+ _______________Qwerty_Row__1_______________,
+ _______________Qwerty_Row__2_______________,
+ KC_LCTL, KC_LGUI, KC_LALT, GHERKIN, SUBTER, SH_T(KC_SPC), _______, _______, SH_T(KC_SPC), SUPRA, KC_RGUI, KC_RALT, GHERKIN, KC_RCTL,
+ _______, _______, _______, _______, _______, _______
+ ),
+ [SUP] = LAYOUT_iris_base_wrapper(
+ ________________SUPRA_Row_0________________,
+ ________________SUPRA_Row_1________________,
+ ________________SUPRA_Row_2________________,
+ ________________SUPRA_Row_3________________
+ ),
+ [SUB] = LAYOUT_iris_base_wrapper(
+ _______________SUBTER_Row__0_______________,
+ _______________SUBTER_Row__1_______________,
+ _______________SUBTER_Row__2_______________,
+ _______________SUBTER_Row__3_______________
+ ),
+ [NUM] = LAYOUT_iris_base_wrapper(
+ _______________NUMBERS_Row_0_______________,
+ _______________NUMBERS_Row_1_______________,
+ _______________NUMBERS_Row_2_______________,
+ _______________NUMBERS_Row_3_______________
+ ),
+ [DIR] = LAYOUT_iris_base_wrapper(
+ _____________DIRECTIONS_Row__0_____________,
+ _____________DIRECTIONS_Row__1_____________,
+ _____________DIRECTIONS_Row__2_____________,
+ _______, _______, ONEHAND, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [ETC] = LAYOUT_iris_base_wrapper(
+ ______________ETCETERA_Row__0______________,
+ ______________ETCETERA_Row__1______________,
+ ______________ETCETERA_Row__2______________,
+ ______________ETCETERA_Row__3______________
+ )
+
+};
+
+
+void matrix_init_keymap(void) {
+ DDRD &= ~(1<<5);
+ PORTD &= ~(1<<5);
+
+ DDRB &= ~(1<<0);
+ PORTB &= ~(1<<0);
+}
--- /dev/null
+RGBLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = no
+
+SWAP_HANDS_ENABLE = yes
+BOOTLOADER = qmk-dfu
#pragma once
+#if defined(KEYBOARD_jj40)
+#undef BACKLIGHT_BREATHING
+#undef BACKLIGHT_LEVELS
+#undef BREATHING_PERIOD
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+#define BREATHING_PERIOD 15
+#endif
+
//QMK DFU settings (ProMicro boards with QMK bootloader)
// set top left key as bootloader mode escape key on Lets Split rev2
#if defined(KEYBOARD_lets_split_rev2)
#endif
// set top left key as bootloader mode escape key on 4x4 48key layout
-#if defined(KEYBOARD_4x4) && !defined(PRO_MICRO)
+#if defined(KEYBOARD_40percentclub_4x4) && !defined(PRO_MICRO)
#define QMK_LED B0
#define QMK_ESC_OUTPUT C6 // usually COL
#define QMK_ESC_INPUT B2 // usually ROW
// use alternate settings for 4x4 board using ProMicro instead of Micro
// usage: make 4x4:wanleg PM=yes
-#if defined(KEYBOARD_4x4) && defined(PRO_MICRO)
+#if defined(KEYBOARD_40percentclub_4x4) && defined(PRO_MICRO)
#define QMK_ESC_OUTPUT F4 // usually COL
#define QMK_ESC_INPUT D1 // usually ROW
#define QMK_LED B0
_______________Qwerty_Row__2_______________,
KC_LCTL, KC_LGUI, KC_LALT, GHERKIN, SUBTER, SH_T(KC_SPC), SH_T(KC_SPC), SUPRA, KC_RGUI, KC_RALT, GHERKIN, KC_RCTL
),
-
-#elif defined(KEYBOARD_4x4)
+[DIR] = LAYOUT_ortho_4x12_wrapper(
+ _____________DIRECTIONS_Row__0_____________,
+ _____________DIRECTIONS_Row__1_____________,
+ _____________DIRECTIONS_Row__2_____________,
+ _______, _______, ONEHAND, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+#elif defined(KEYBOARD_40percentclub_4x4)
[_GK] = LAYOUT_ortho_4x12_wrapper(
_______________GherkinLike_0_______________,
_______________GherkinLike_1_______________,
_______________NUMPAD_Row__3_______________
),
+#elif defined(KEYBOARD_jj40)
+[_GK] = LAYOUT_ortho_4x12_wrapper(
+ _______________GherkinLike_0_______________,
+ _______________GherkinLike_1_______________,
+ _______________GherkinLike_2_______________,
+ TD(RST_TAP_DANCE), BL_TOGG, BL_STEP, BL_BRTG, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
+),
+
#else
[_GK] = LAYOUT_ortho_4x12_wrapper(
_______________GherkinLike_0_______________,
AUDIO_ENABLE = no
-SWAP_HANDS_ENABLE = yes
+SWAP_HANDS_ENABLE = no
-ifeq ($(strip $(KEYBOARD)), jj40)
- SWAP_HANDS_ENABLE = no
+ifeq ($(strip $(KEYBOARD)), lets_split/rev2)
+ SWAP_HANDS_ENABLE = yes
endif
-ifeq ($(strip $(KEYBOARD)), 40percentclub/4x4)
- SWAP_HANDS_ENABLE = no
-endif
-
-ifeq ($(strip $(KEYBOARD)), zlant)
- SWAP_HANDS_ENABLE = no
-endif
+ifeq ($(strip $(KEYBOARD)), planck/rev6)
+ AUDIO_ENABLE = yes
+endif
\ No newline at end of file
#pragma once
//5x5 powered by Adafruit Feather 32u4 Bluefruit LE
-#if defined(KEYBOARD_5x5) && defined(BLUEFRUIT)
+#if defined(KEYBOARD_40percentclub_5x5) && defined(BLUEFRUIT)
//need to undefine standard 5x5 array before defining alternate Bluefruit array
#undef MATRIX_ROW_PINS
#define _________________Num_Row_75________________ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined(KEYBOARD_5x5)
+#if defined(KEYBOARD_40percentclub_5x5)
[GK75] = LAYOUT_ortho_5x15_wrapper(
_________________Num_Row_75________________, QWERTY75, XXXXXXX, FUNCTION75,
_______________GherkinLike_0_______________, KC_KP_7, KC_KP_8, KC_KP_9,
TD(RST_TAP_DANCE), GHERKIN75, NUMPAD, gNUMBER, gETCETERA, KC_SPC,gDIRECTION, KC_RGUI, KC_RALT, KC_RGUI
),
+[gNUM] = LAYOUT_ortho_5x10_wrapper(
+ _________________BLANK_50__________________,
+ _______________Gherkin_NUM_0_______________,
+ _______________Gherkin_NUM_1_______________,
+ _______________Gherkin_NUM_2_______________,
+ _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______
+),
+
+[gDIR] = LAYOUT_ortho_5x10_wrapper(
+ _________________BLANK_50__________________,
+ _______________Gherkin_DIR_0_______________,
+ _______________Gherkin_DIR_1_______________,
+ _______________Gherkin_DIR_2_______________,
+ _________________BLANK_50__________________
+),
+
+[gETC] = LAYOUT_ortho_5x10_wrapper(
+ _________________BLANK_50__________________,
+ _______________Gherkin_ETC_0_______________,
+ _______________Gherkin_ETC_1_______________,
+ _______________Gherkin_ETC_2_______________,
+ _______, KC_CAPS, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______
+),
+
#if defined(BLUEFRUIT)
[PAD] = LAYOUT_ortho_5x5_wrapper(
_______, _______, _______, OUT_BT, OUT_USB,
_______, _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
),
-[gNUM] = LAYOUT_ortho_5x10_wrapper(
- _________________BLANK_50__________________,
- _______________Gherkin_NUM_0_______________,
- _______________Gherkin_NUM_1_______________,
- _______________Gherkin_NUM_2_______________,
- _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______
-),
-
-[gDIR] = LAYOUT_ortho_5x10_wrapper(
- _________________BLANK_50__________________,
- _______________Gherkin_DIR_0_______________,
- _______________Gherkin_DIR_1_______________,
- _______________Gherkin_DIR_2_______________,
- _________________BLANK_50__________________
-),
-
-[gETC] = LAYOUT_ortho_5x10_wrapper(
- _________________BLANK_50__________________,
- _______________Gherkin_ETC_0_______________,
- _______________Gherkin_ETC_1_______________,
- _______________Gherkin_ETC_2_______________,
- _______, KC_CAPS, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______
-),
};
-ifeq (,$(findstring yes,$(BLUEFRUIT)))
- BLUETOOTH = AdafruitBLE
- BLUETOOTH_ENABLE = yes
- F_CPU = 8000000
- CONSOLE_ENABLE = no # Console for debug(+400)
- COMMAND_ENABLE = no # Commands for debug and configuration
- RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-endif
\ No newline at end of file
+#ifeq ($(strip $(KEYBOARD)), xd75)
+#or
+#ifeq (,$(findstring xd75,$(KEYBOARD)))
+#something
+#endif
+
+#ifeq ($(strip $(KEYBOARD)), 40percentclub/5x5)
+#or
+#ifeq (,$(findstring 40percentclub/5x5,$(KEYBOARD)))
+#something
+#endif
\ No newline at end of file
-#ifndef USERSPACE_CONFIG_H
-#define USERSPACE_CONFIG_H
+#pragma once
//TAPPING_TERM
//tapping term short (<100): on multi-purpose keys, slow taps may not register, but "holds" register easier. multi-tap keys may be difficult to activate.
//tapping term long (>200): holds don't register as easily - noticeable when typing quickly (e.g. shift doesn't want to engage.)
-#if defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_lets_split_rev2)
+
+
+//MIGHT HAVE TO SPLIT THIS INTO TWO CONDITIONS
+#if defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_lets_split_rev2) || defined(KEYBOARD_iris_rev2)
//Kailh Coppers activate quickly and don't need a long tapping term
#define TAPPING_TERM 100
// Disable mod tap interrrupt
#ifndef IGNORE_MOD_TAP_INTERRUPT
#define IGNORE_MOD_TAP_INTERRUPT
-#endif // !mod tap interrrupt
-
-#endif // !USERSPACE_CONFIG_H
+#endif // !mod tap interrrupt
\ No newline at end of file
#use alternate settings for boards using "Adafruit Feather 32u4 Bluefruit LE" instead of Micro
#example usage: make 5x5:wanleg BT=yes
ifeq ($(strip $(BT)), yes)
- OPT_DEFS += -DBLUEFRUIT
+ #opt_defs for alternate pin usage
+ OPT_DEFS += -DBLUEFRUIT
+ #Adafruit Bluefruit controller settings
+ BLUETOOTH = AdafruitBLE
+ BLUETOOTH_ENABLE = yes
+ F_CPU = 8000000
+ CONSOLE_ENABLE = no # Console for debug(+400)
+ COMMAND_ENABLE = no # Commands for debug and configuration
+ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
endif
\ No newline at end of file
//register_code(KC_NO);
//take a screenshot of a single window, open Paint and paste
SEND_STRING(SS_LALT(SS_TAP(X_PSCREEN)) SS_LGUI("r"));
- _delay_ms(500);
+ wait_ms(500);
SEND_STRING("mspaint" SS_TAP(X_ENTER));
- _delay_ms(700);
+ wait_ms(700);
SEND_STRING(SS_LCTRL("v"));
break; //register this keycode when button is held
case DOUBLE_TAP:
-#ifndef USERSPACE
-#define USERSPACE
+#pragma once
#include "quantum.h"
#elif KEYBOARD_xd75
enum userspace_layers {
GK75 = 0,
- PAD,
QW75,
SUB75,
SUP75,
gGK,
_GK,
_QW,
+ PAD,
ONE,
SUB,
SUP,
gETC,
GK50,
};
-#elif KEYBOARD_5x5
+#elif KEYBOARD_40percentclub_5x5
enum userspace_layers {
GK50 = 0,
gNUM,
#else
enum userspace_layers {
_GK = 0,
- PAD,
_QW,
+ PAD,
ONE,
SUB,
SUP,
#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
#define LAYOUT_ortho_3x10_wrapper(...) LAYOUT_ortho_3x10(__VA_ARGS__)
-#define LAYOUT_ortho_5x10_wrapper(...) LAYOUT_ortho_5x10(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
#define LAYOUT_ortho_4x4_wrapper(...) LAYOUT_ortho_4x4(__VA_ARGS__)
+#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
#define LAYOUT_ortho_5x5_wrapper(...) LAYOUT_ortho_5x5(__VA_ARGS__)
+#define LAYOUT_ortho_5x10_wrapper(...) LAYOUT_ortho_5x10(__VA_ARGS__)
+#define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
// Blocks for each of the major keyboard layouts
// Organized so we can quickly adapt and modify all of them
/* Gherkin-Like
* .-----------------------------------------------------------------------------------------------------------.
- * | ESC | Q//ESC | W | E | R | T | Y | U | I | O | P | BSPC |
+ * | ESC | Q//ESC | W | E | R | T | Y | U | I | O | P | BSPC |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | TAB | A | S | D | F | G | H | J | K | L | SPACE | ' |
* | | | | | | | | | | |SFThold | |
#define _______________NUMPAD_Row__1_______________ KC_KP_4, KC_KP_5, KC_KP_6, KC_SPC
#define _______________NUMPAD_Row__2_______________ KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT
#define _______________NUMPAD_Row__3_______________ KC_KP_0, TD(LYR_TAP_DANCE), KC_KP_DOT, KC_PMNS
-#endif // !USERSPACE