aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/config_options.md22
-rw-r--r--docs/newbs_building_firmware.md2
-rw-r--r--keyboards/atreus62/keymaps/hvp/config.h5
-rw-r--r--keyboards/atreus62/keymaps/hvp/keymap.c67
-rw-r--r--keyboards/atreus62/keymaps/hvp/readme.md10
-rw-r--r--keyboards/atreus62/keymaps/hvp/rules.mk1
-rw-r--r--keyboards/crkbd/keymaps/hvp/keymap.c42
-rw-r--r--keyboards/crkbd/keymaps/hvp/readme.md11
-rw-r--r--keyboards/crkbd/keymaps/hvp/rules.mk2
-rw-r--r--keyboards/ergoslab/config.h28
-rw-r--r--keyboards/ergoslab/ergoslab.c1
-rw-r--r--keyboards/ergoslab/ergoslab.h7
-rw-r--r--keyboards/ergoslab/info.json66
-rw-r--r--keyboards/ergoslab/keymaps/default/config.h29
-rw-r--r--keyboards/ergoslab/keymaps/default/keymap.c73
-rw-r--r--keyboards/ergoslab/readme.md33
-rw-r--r--keyboards/ergoslab/rev1/config.h71
-rw-r--r--keyboards/ergoslab/rev1/rev1.c18
-rw-r--r--keyboards/ergoslab/rev1/rev1.h24
-rw-r--r--keyboards/ergoslab/rules.mk35
-rw-r--r--keyboards/handwired/p65rgb/config.h64
-rw-r--r--keyboards/handwired/p65rgb/info.json82
-rw-r--r--keyboards/handwired/p65rgb/keymaps/default/keymap.c33
-rw-r--r--keyboards/handwired/p65rgb/p65rgb.c49
-rw-r--r--keyboards/handwired/p65rgb/p65rgb.h42
-rw-r--r--keyboards/handwired/p65rgb/readme.md15
-rw-r--r--keyboards/handwired/p65rgb/rules.mk33
-rw-r--r--keyboards/hineybush/h87a/config.h1
-rw-r--r--keyboards/hineybush/h87a/h87a.c9
-rw-r--r--keyboards/hineybush/h87a/rules.mk2
-rw-r--r--keyboards/keebio/levinson/keymaps/rossman360/keymap.c135
-rwxr-xr-xkeyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c145
-rw-r--r--keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md3
-rw-r--r--keyboards/lets_split/keymaps/geripgeri/config.h37
-rw-r--r--keyboards/lets_split/keymaps/geripgeri/keymap.c368
-rw-r--r--keyboards/lets_split/keymaps/geripgeri/readme.md3
-rw-r--r--keyboards/lets_split/keymaps/geripgeri/rules.mk5
-rw-r--r--keyboards/lets_split/keymaps/hvp/config.h40
-rw-r--r--keyboards/lets_split/keymaps/hvp/keymap.c65
-rw-r--r--keyboards/lets_split/keymaps/hvp/readme.md10
-rw-r--r--keyboards/lets_split/keymaps/hvp/rules.mk2
-rw-r--r--keyboards/lily58/keymaps/hvp/config.h56
-rw-r--r--keyboards/lily58/keymaps/hvp/keymap.c181
-rw-r--r--keyboards/lily58/keymaps/hvp/readme.md10
-rw-r--r--keyboards/lily58/keymaps/hvp/rules.mk13
-rw-r--r--keyboards/percent/skog/rules.mk4
-rw-r--r--keyboards/planck/keymaps/hvp/config.h39
-rw-r--r--keyboards/planck/keymaps/hvp/keymap.c184
-rw-r--r--keyboards/planck/keymaps/hvp/readme.md10
-rw-r--r--keyboards/planck/keymaps/hvp/rules.mk4
-rw-r--r--keyboards/rgbkb/sol/keymaps/default/keymap.c18
-rw-r--r--keyboards/rgbkb/sol/keymaps/default/readme.md8
-rw-r--r--keyboards/rgbkb/sol/rev2/config.h2
-rw-r--r--keyboards/rgbkb/sol/rev2/post_rules.mk2
-rw-r--r--keyboards/rgbkb/sol/rev2/rev2.c20
-rw-r--r--keyboards/rgbkb/sol/rev2/rules.mk1
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/hvp/config.h5
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c54
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md10
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk2
-rw-r--r--keyboards/ut472/keymaps/hvp/config.h4
-rw-r--r--keyboards/ut472/keymaps/hvp/keymap.c76
-rw-r--r--keyboards/ut472/keymaps/hvp/readme.md11
-rw-r--r--users/hvp/hvp.h6
-rw-r--r--users/hvp/tap_dances.c66
-rw-r--r--users/hvp/tap_dances.h4
66 files changed, 2349 insertions, 131 deletions
diff --git a/docs/config_options.md b/docs/config_options.md
index 0cf3fb78a..ea5a89295 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -287,8 +287,27 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* Defines which format (bin, hex) is copied to the root `qmk_firmware` folder after building.
* `SRC`
* Used to add files to the compilation/linking list.
+* `LIB_SRC`
+ * Used to add files as a library to the compilation/linking list.
+ The files specified by `LIB_SRC` is linked after the files specified by `SRC`.
+ For example, if you specify:
+ ```
+ SRC += a.c
+ LIB_SRC += lib_b.c
+ SRC += c.c
+ LIB_SRC += lib_d.c
+ ```
+ The link order is as follows.
+ ```
+ ... a.o c.o ... lib_b.a lib_d.a ...
+ ```
* `LAYOUTS`
* A list of [layouts](feature_layouts.md) this keyboard supports.
+* `LINK_TIME_OPTIMIZATION_ENABLE`
+ * Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled.
+ It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
+* `LTO_ENABLE`
+ * It has the same meaning as LINK_TIME_OPTIMIZATION_ENABLE. You can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
## AVR MCU Options
* `MCU = atmega32u4`
@@ -347,9 +366,6 @@ Use these to enable or disable building certain features. The more you have enab
* Forces the keyboard to wait for a USB connection to be established before it starts up
* `NO_USB_STARTUP_CHECK`
* Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
-* `LINK_TIME_OPTIMIZATION_ENABLE`
- * Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
- * Alternatively, you can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
## USB Endpoint Limitations
diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md
index 5a8f181b8..d7d31c07f 100644
--- a/docs/newbs_building_firmware.md
+++ b/docs/newbs_building_firmware.md
@@ -42,7 +42,7 @@ Open up your `keymap.c`. Inside this file you'll find the structure that control
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a that particular layer.
+This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a particular layer.
!> When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is.
diff --git a/keyboards/atreus62/keymaps/hvp/config.h b/keyboards/atreus62/keymaps/hvp/config.h
new file mode 100644
index 000000000..e1222e21f
--- /dev/null
+++ b/keyboards/atreus62/keymaps/hvp/config.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#define TAPPING_TERM 150
+#define IGNORE_MOD_TAP_INTERRUPT
+#define PERMISSIVE_HOLD
diff --git a/keyboards/atreus62/keymaps/hvp/keymap.c b/keyboards/atreus62/keymaps/hvp/keymap.c
new file mode 100644
index 000000000..9873897a5
--- /dev/null
+++ b/keyboards/atreus62/keymaps/hvp/keymap.c
@@ -0,0 +1,67 @@
+
+#include QMK_KEYBOARD_H
+#include "hvp.c"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+#define LT3_ESC LT(3, KC_ESC)
+#define LT4_TAB LT(4, KC_TAB)
+#define LT1_ENT LT(1, KC_ENTER)
+#define LT2_BSP LT(2, KC_BSPC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ LAYOUT( /* qwerty */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
+ LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
+ LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), LT(4,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2) ,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT ,
+ KC_LCTL, KC_APP, _______, KC_LGUI, KC_LALT,SFT_T(KC_SPC), LT2_BSP, LT1_ENT, SFT_T(KC_SPC), KC_LSFT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ LAYOUT( /* Right */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS ,
+ KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
+ KC_DEL, _______, _______, _______, _______, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+ ),
+
+ LAYOUT(/* Left */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS ,
+ KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
+ KC_DELETE, _______, _______, _______, _______, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
+ _______ , _______ , _______ , _______ , _______ , KC_LEFT_CURLY_BRACE , KC_RIGHT_CURLY_BRACE ,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_HOME, KC_PGDN, KC_PGUP, KC_END
+ ),
+
+
+ LAYOUT(/* Esc */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_NO, KC_NO, KC_NO, D_NAVI, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO ,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO ,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_NO, KC_MUTE, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
+
+
+
+ LAYOUT(/* Tab */
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______ ,
+ _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______ ,
+ _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______ ,
+ KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
+ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ /*
+ [_TRNS] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ */
+};
diff --git a/keyboards/atreus62/keymaps/hvp/readme.md b/keyboards/atreus62/keymaps/hvp/readme.md
new file mode 100644
index 000000000..766533d3b
--- /dev/null
+++ b/keyboards/atreus62/keymaps/hvp/readme.md
@@ -0,0 +1,10 @@
+Keyboard: Atreus62
+Keys: 62 keyed ortho staggered keyboard with a split layout and num row.
+Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
+Flash instructions: Flash using avrdude, will req the hvp user space to compile.
+
+> make make atreus62:hvp:avrdude
+
+Links:
+Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/atreus62
+Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/atreus62/keymaps/hvp/rules.mk b/keyboards/atreus62/keymaps/hvp/rules.mk
new file mode 100644
index 000000000..1ba2fa8fb
--- /dev/null
+++ b/keyboards/atreus62/keymaps/hvp/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/crkbd/keymaps/hvp/keymap.c b/keyboards/crkbd/keymaps/hvp/keymap.c
index b66c360e1..9e1cd5f01 100644
--- a/keyboards/crkbd/keymaps/hvp/keymap.c
+++ b/keyboards/crkbd/keymaps/hvp/keymap.c
@@ -25,56 +25,56 @@ enum custom_keycodes {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT( \
+ [_QWERTY] = LAYOUT(
//,-----------------------------------------. ,-----------------------------------------.
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,\
+ LT(_ADJUST,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
- LT(_ADJUST, KC_ESC), KC_A, KC_S, KC_D, LT(_RAISE,KC_F), MT(MOD_LCTL,KC_G), KC_H, KC_J, KC_K, KC_L,TD(TD1),TD(TD2),\
+ LSFT_T(KC_ESC), KC_A, KC_S, KC_D, LT(3,KC_F), KC_G, KC_H, KC_J, KC_K, KC_L,TD(TD1),TD(TD2),
//|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),KC_SFTENT,\
+ KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),KC_SFTENT,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- KC_LGUI, LOWER,MT(MOD_LSFT, KC_SPC), LT(_RAISE,KC_ENT), RAISE,KC_LALT \
+ KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT
//`--------------------' `--------------------'
),
- [_RAISE] = LAYOUT( \
+ [_RAISE] = LAYOUT(
//,-----------------------------------------. ,-----------------------------------------.
- KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC,\
+ 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_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT,KC_NO, KC_DEL,\
+ KC_DEL, _______, _______, _______, _______, _______, _______,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO,\
+ KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- KC_LGUI, LOWER,MT(MOD_LSFT, KC_SPC), LT(_RAISE,KC_ENT), RAISE,KC_LALT \
+ _______, _______, _______, _______, _______, _______
//`--------------------' `--------------------'
),
- [_LOWER] = LAYOUT( \
+ [_LOWER] = LAYOUT(
//,-----------------------------------------. ,-----------------------------------------.
- KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,\
+ KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS,KC_EQL,KC_LCBR,KC_RCBR,KC_PIPE,KC_GRV,\
+ KC_DEL, _______, _______, _______, _______, _______, _______,KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS,KC_TILD,\
+ KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- KC_LGUI, LOWER,MT(MOD_LSFT, KC_SPC), LT(_RAISE,KC_ENT), RAISE,KC_LALT \
+ _______, _______, _______, _______, _______, _______
//`--------------------' `--------------------'
),
- [_ADJUST] = LAYOUT( \
+ [_ADJUST] = LAYOUT(
//,-----------------------------------------. ,-----------------------------------------.
- KC_F1,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,\
+ _______,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
- 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_F1,_______,_______,D_NAVI,_______,_______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
- RESET,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_MPLY, KC_MNXT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,\
+ RESET,KC_PSCR,_______,_______,_______,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- KC_LGUI, LOWER,MT(MOD_LSFT, KC_SPC), LT(_RAISE,KC_ENT), RAISE,KC_LALT \
+ _______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______
//`--------------------' `--------------------'
)
};
-int RGB_current_mode;
+int RGB_current_mode;
// Setting ADJUST layer RGB back to default
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
diff --git a/keyboards/crkbd/keymaps/hvp/readme.md b/keyboards/crkbd/keymaps/hvp/readme.md
index 33bb83b83..3ccdc1219 100644
--- a/keyboards/crkbd/keymaps/hvp/readme.md
+++ b/keyboards/crkbd/keymaps/hvp/readme.md
@@ -1,5 +1,10 @@
-Keymap to be used with Eurkey for easy access to swedish characters on first layer.
+Keyboard: Corne Keyboard (CRKBD)
+Keys: A split keyboard with 3x6 vertically staggered keys and 3 thumb keys.
+Layout: Swedish characters on main layer using tapdance. Built for eurkey keyboard layout.
+Flash instructions: Flash using avrdude, will req the hvp user space to compile.
-Links:
+> make crkbd:hvp:avrdude
-- https://eurkey.steffen.bruentjen.eu/ \ No newline at end of file
+Links:
+Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd
+Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/crkbd/keymaps/hvp/rules.mk b/keyboards/crkbd/keymaps/hvp/rules.mk
index a651e528c..03859ab63 100644
--- a/keyboards/crkbd/keymaps/hvp/rules.mk
+++ b/keyboards/crkbd/keymaps/hvp/rules.mk
@@ -10,5 +10,5 @@ SRC += ./lib/glcdfont.c \
# ./lib/timelogger.c \
TAP_DANCE_ENABLE = yes
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+EXTRAKEY_ENABLE = yes # Audio control and System control
# LOCAL_GLCDFONT = yes \ No newline at end of file
diff --git a/keyboards/ergoslab/config.h b/keyboards/ergoslab/config.h
new file mode 100644
index 000000000..590b63c9d
--- /dev/null
+++ b/keyboards/ergoslab/config.h
@@ -0,0 +1,28 @@
+/*
+Copyright 2019 Tom Saleeba <ergoslab@techotom.com>
+
+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
+
+#include "config_common.h"
+
+#define MOUSEKEY_INTERVAL 16
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_TIME_TO_MAX 40
+#define MOUSEKEY_MAX_SPEED 7
+#define MOUSEKEY_WHEEL_MAX_SPEED 4
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
+#define MOUSEKEY_WHEEL_DELAY 0
diff --git a/keyboards/ergoslab/ergoslab.c b/keyboards/ergoslab/ergoslab.c
new file mode 100644
index 000000000..6f2796c07
--- /dev/null
+++ b/keyboards/ergoslab/ergoslab.c
@@ -0,0 +1 @@
+#include "ergoslab.h"
diff --git a/keyboards/ergoslab/ergoslab.h b/keyboards/ergoslab/ergoslab.h
new file mode 100644
index 000000000..8b0249054
--- /dev/null
+++ b/keyboards/ergoslab/ergoslab.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#ifdef KEYBOARD_ergoslab_rev1
+ #include "rev1.h"
+#endif
+
+#include "quantum.h"
diff --git a/keyboards/ergoslab/info.json b/keyboards/ergoslab/info.json
new file mode 100644
index 000000000..e24f0f1fc
--- /dev/null
+++ b/keyboards/ergoslab/info.json
@@ -0,0 +1,66 @@
+{
+ "keyboard_name": "ergoslab",
+ "url": "https://github.com/tomsaleeba/ergoslab",
+ "maintainer": "tomsaleeba",
+ "width": 13,
+ "height": 5.25,
+ "layouts": {
+ "LAYOUT_ergoslab": {
+ "key_count": 52,
+ "layout": [
+ {"label":"Q", "x":0, "y":0.625},
+ {"label":"W", "x":1, "y":0.125},
+ {"label":"E", "x":2, "y":0},
+ {"label":"R", "x":3, "y":0.125},
+ {"label":"T", "x":4, "y":0.25},
+ {"label":"Y", "x":8, "y":0.25},
+ {"label":"U", "x":9, "y":0.125},
+ {"label":"I", "x":10, "y":0},
+ {"label":"O", "x":11, "y":0.125},
+ {"label":"P", "x":12, "y":0.625},
+ {"label":"A", "x":0, "y":1.625},
+ {"label":"S", "x":1, "y":1.125},
+ {"label":"D", "x":2, "y":1},
+ {"label":"F", "x":3, "y":1.125},
+ {"label":"G", "x":4, "y":1.25},
+ {"label":"H", "x":8, "y":1.25},
+ {"label":"J", "x":9, "y":1.125},
+ {"label":"K", "x":10, "y":1},
+ {"label":"L", "x":11, "y":1.125},
+ {"label":";", "x":12, "y":1.625},
+ {"label":"Z", "x":0, "y":2.625},
+ {"label":"X", "x":1, "y":2.125},
+ {"label":"C", "x":2, "y":2},
+ {"label":"V", "x":3, "y":2.125},
+ {"label":"B", "x":4, "y":2.25},
+ {"label":"N", "x":8, "y":2.25},
+ {"label":"M", "x":9, "y":2.125},
+ {"label":",", "x":10, "y":2},
+ {"label":".", "x":11, "y":2.125},
+ {"label":"/", "x":12, "y":2.625},
+ {"label":"'", "x":0, "y":3.625},
+ {"label":"Alt", "x":1, "y":3.125},
+ {"label":"Del", "x":2, "y":3},
+ {"label":"Enter", "x":3, "y":3.125},
+ {"label":"Shift", "x":4, "y":3.25},
+ {"label":"Ctrl", "x":5, "y":3.25},
+ {"label":"Numb", "x":7, "y":3.25},
+ {"label":"Space", "x":8, "y":3.25},
+ {"label":"Left", "x":9, "y":3.125},
+ {"label":"Down", "x":10, "y":3},
+ {"label":"Up", "x":11, "y":3.125},
+ {"label":"Right", "x":12, "y":3.625},
+ {"label":"[", "x":1, "y":4.25},
+ {"label":"(", "x":2, "y":4.25},
+ {"label":"Esc", "x":3, "y":4.25},
+ {"label":"Media", "x":4, "y":4.25},
+ {"label":"GUI", "x":5, "y":4.25},
+ {"label":"Tab", "x":7, "y":4.25},
+ {"label":"Mouse", "x":8, "y":4.25},
+ {"label":"Bspc", "x":9, "y":4.25},
+ {"label":")", "x":10, "y":4.25},
+ {"label":"]", "x":11, "y":4.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/ergoslab/keymaps/default/config.h b/keyboards/ergoslab/keymaps/default/config.h
new file mode 100644
index 000000000..2c47a7440
--- /dev/null
+++ b/keyboards/ergoslab/keymaps/default/config.h
@@ -0,0 +1,29 @@
+/*
+Copyright 2019 Tom Saleeba <ergoslab@techotom.com>
+
+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
+// #define USE_I2C
+
+/* Select hand configuration */
+
+// #define MASTER_LEFT
+#define MASTER_RIGHT
+// #define EE_HANDS
diff --git a/keyboards/ergoslab/keymaps/default/keymap.c b/keyboards/ergoslab/keymaps/default/keymap.c
new file mode 100644
index 000000000..a9bf27924
--- /dev/null
+++ b/keyboards/ergoslab/keymaps/default/keymap.c
@@ -0,0 +1,73 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ BASE,
+ MDIA,
+ NUMB,
+ MOUS
+};
+
+#ifdef RGBLIGHT_ENABLE
+#define ERGOSLAB_BRIGHTNESS 112
+#define HSV_ERGOSLAB_ORANGE 28, 255, 16
+#define HSV_ERGOSLAB_RED 0, 255, ERGOSLAB_BRIGHTNESS
+#define HSV_ERGOSLAB_GREEN 85, 255, ERGOSLAB_BRIGHTNESS
+#define HSV_ERGOSLAB_CYAN 128, 255, ERGOSLAB_BRIGHTNESS
+#endif
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT_ergoslab(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ KC_QUOT, KC_LALT, KC_DEL, KC_ENT, KC_LSFT, KC_LCTL, MO(NUMB), KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
+ KC_LBRC, KC_LPRN, KC_ESC, MO(MDIA),KC_RGUI, KC_TAB, TG(MOUS), KC_BSPC, KC_RPRN, KC_RBRC
+ ),
+
+ [MDIA] = LAYOUT_ergoslab(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ _______, _______, _______, _______, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
+ _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, KC_MUTE,
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [NUMB] = LAYOUT_ergoslab(
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_BSLS, KC_PIPE,
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_GRV, KC_COLN, KC_TILD, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_DQT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [MOUS] = LAYOUT_ergoslab(
+ _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______,
+ _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN3, KC_WH_D, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, KC_ACL0, _______, KC_BTN2, KC_BTN1, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+};
+
+#ifdef RGBLIGHT_ENABLE
+layer_state_t layer_state_set_user(layer_state_t state) {
+ uint8_t layer = biton32(state);
+ switch (layer) {
+ case BASE:
+ rgblight_sethsv(HSV_ERGOSLAB_ORANGE);
+ break;
+ case MDIA:
+ rgblight_sethsv(HSV_ERGOSLAB_RED);
+ break;
+ case NUMB:
+ rgblight_sethsv(HSV_ERGOSLAB_GREEN);
+ break;
+ case MOUS:
+ rgblight_sethsv(HSV_ERGOSLAB_CYAN);
+ break;
+ default:
+ break;
+ }
+ return state;
+};
+#endif
diff --git a/keyboards/ergoslab/readme.md b/keyboards/ergoslab/readme.md
new file mode 100644
index 000000000..9343f3bc9
--- /dev/null
+++ b/keyboards/ergoslab/readme.md
@@ -0,0 +1,33 @@
+# ergoslab
+
+![ergoslab](https://raw.githubusercontent.com/tomsaleeba/ergoslab/master/ergoslab.jpg)
+
+
+A split ergo 5x6 keyboard with hotswap sockets and a heap of thumb keys designed
+by Tom Saleeba. [More info on the GitHub
+Repo](https://github.com/tomsaleeba/ergoslab).
+
+**Status** The ergoslab is currently being beta-tested.
+
+* Keyboard Maintainer: [Tom Saleeba](https://github.com/tomsaleeba)
+* Hardware Supported: Pro Micro (ATmega32U4)
+* Hardware Availability: gerbers are available from the [releases page on the
+GitHub repo](https://github.com/tomsaleeba/ergoslab/releases). Get them
+manufactured at your favourite PCB house. I used JLCPCB.
+
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ergoslab:default
+
+Example of flashing this keyboard:
+
+ make ergoslab:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools)
+and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide)
+for more information. Brand new to QMK? Start with our
+[Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+A build guide for this keyboard can be found here: [Build
+Guide](https://github.com/tomsaleeba/ergoslab/blob/master/build-guide.md)
diff --git a/keyboards/ergoslab/rev1/config.h b/keyboards/ergoslab/rev1/config.h
new file mode 100644
index 000000000..4e69b1095
--- /dev/null
+++ b/keyboards/ergoslab/rev1/config.h
@@ -0,0 +1,71 @@
+/*
+Copyright 2019 Tom Saleeba <ergoslab@techotom.com>
+
+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
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x5148
+#define DEVICE_VER 0x0100
+#define MANUFACTURER tomsaleeba
+#define PRODUCT Ergoslab Keyboard
+#define DESCRIPTION Split 45 percent ergonomic keyboard
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 6
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D2
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+
+#define RGBLED_NUM 2 // Number of LEDs
+// FIXME this following line should enable our layer status LEDs to work on both
+// sides without need to wire them into a chain. It doesn't though. Uncommenting
+// means the slave side of the keyboard stops working (and the LEDs don't work).
+// #define RGBLED_SPLIT {1,1}
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ergoslab/rev1/rev1.c b/keyboards/ergoslab/rev1/rev1.c
new file mode 100644
index 000000000..0e3e0fe99
--- /dev/null
+++ b/keyboards/ergoslab/rev1/rev1.c
@@ -0,0 +1,18 @@
+#include "rev1.h"
+
+#ifdef SWAP_HANDS_ENABLE
+__attribute__ ((weak))
+const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}},
+ {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}},
+ {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}},
+ {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}},
+ {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}},
+
+ {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}},
+ {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}},
+ {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}},
+ {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}},
+ {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}},
+};
+#endif
diff --git a/keyboards/ergoslab/rev1/rev1.h b/keyboards/ergoslab/rev1/rev1.h
new file mode 100644
index 000000000..bf99a17b2
--- /dev/null
+++ b/keyboards/ergoslab/rev1/rev1.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "ergoslab.h"
+
+#include "quantum.h"
+
+#define LAYOUT_ergoslab( \
+ L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \
+ L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \
+ L20, L21, L22, L23, L24, R24, R23, R22, R21, R20, \
+ L30, L31, L32, L33, L34, L35, R35, R34, R33, R32, R31, R30, \
+ L41, L42, L43, L44, L45, R45, R44, R43, R42, R41 \
+) { \
+ { L00, L01, L02, L03, L04, KC_NO }, \
+ { L10, L11, L12, L13, L14, KC_NO }, \
+ { L20, L21, L22, L23, L24, KC_NO }, \
+ { L30, L31, L32, L33, L34, L35 }, \
+ { KC_NO, L41, L42, L43, L44, L45 }, \
+ { R00, R01, R02, R03, R04, KC_NO }, \
+ { R10, R11, R12, R13, R14, KC_NO }, \
+ { R20, R21, R22, R23, R24, KC_NO }, \
+ { R30, R31, R32, R33, R34, R35 }, \
+ { KC_NO, R41, R42, R43, R44, R45 } \
+ }
diff --git a/keyboards/ergoslab/rules.mk b/keyboards/ergoslab/rules.mk
new file mode 100644
index 000000000..f5ae8c51e
--- /dev/null
+++ b/keyboards/ergoslab/rules.mk
@@ -0,0 +1,35 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+SPLIT_KEYBOARD = yes
+
+DEFAULT_FOLDER = ergoslab/rev1
diff --git a/keyboards/handwired/p65rgb/config.h b/keyboards/handwired/p65rgb/config.h
new file mode 100644
index 000000000..c3900c7ec
--- /dev/null
+++ b/keyboards/handwired/p65rgb/config.h
@@ -0,0 +1,64 @@
+/*
+Copyright 2019 marhalloweenvt
+
+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
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x75B4
+#define DEVICE_VER 0x0001
+#define MANUFACTURER marhalloweenvt
+#define PRODUCT p65rgb
+#define DESCRIPTION Replacement PCB for e6.5
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 17
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { C7, C6, B6, B5, D5 }
+#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, B0, B1, B2, B3, B7, D0, D1, D2, D3, D7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN B4
+#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_KEYPRESSES
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_MATRIX_LED_PROCESS_LIMIT 4
+#define RGB_MATRIX_LED_FLUSH_LIMIT 26
+#define DRIVER_LED_TOTAL 83
+#define RGBLIGHT_LIMIT_VAL 180
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+#define QMK_ESC_OUTPUT E6 // usually COL
+#define QMK_ESC_INPUT C7 // usually ROW
diff --git a/keyboards/handwired/p65rgb/info.json b/keyboards/handwired/p65rgb/info.json
new file mode 100644
index 000000000..b3901525d
--- /dev/null
+++ b/keyboards/handwired/p65rgb/info.json
@@ -0,0 +1,82 @@
+{
+ "keyboard_name": "p65rgb",
+ "url": "",
+ "maintainer": "marhalloweenvt",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"!", "x":1, "y":0},
+ {"label":"@", "x":2, "y":0},
+ {"label":"#", "x":3, "y":0},
+ {"label":"$", "x":4, "y":0},
+ {"label":"%", "x":5, "y":0},
+ {"label":"^", "x":6, "y":0},
+ {"label":"&", "x":7, "y":0},
+ {"label":"*", "x":8, "y":0},
+ {"label":"(", "x":9, "y":0},
+ {"label":")", "x":10, "y":0},
+ {"label":"_", "x":11, "y":0},
+ {"label":"+", "x":12, "y":0},
+ {"label":"~", "x":13, "y":0},
+ {"label":"|", "x":14, "y":0},
+ {"label":"Delete", "x":15, "y":0},
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"{", "x":11.5, "y":1},
+ {"label":"}", "x":12.5, "y":1},
+ {"label":"Backspace", "x":13.5, "y":1, "w":1.5},
+ {"label":"PgUp", "x":15, "y":1},
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":":", "x":10.75, "y":2},
+ {"label":"\"", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2},
+ {"label":"Enter", "x":13.75, "y":2, "w":1.25},
+ {"label":"PgDn", "x":15, "y":2},
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":"<", "x":9.25, "y":3},
+ {"label":">", "x":10.25, "y":3},
+ {"label":"?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"Up", "x":14, "y":3},
+ {"label":"Fn", "x":15, "y":3},
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"Win", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"label":"Fn", "x":10, "y":4, "w":1.25},
+ {"label":"Menu", "x":11.25, "y":4, "w":1.25},
+ {"label":"Left", "x":13, "y":4},
+ {"label":"Down", "x":14, "y":4},
+ {"label":"Right", "x":15, "y":4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/p65rgb/keymaps/default/keymap.c b/keyboards/handwired/p65rgb/keymaps/default/keymap.c
new file mode 100644
index 000000000..2a9f6cc71
--- /dev/null
+++ b/keyboards/handwired/p65rgb/keymaps/default/keymap.c
@@ -0,0 +1,33 @@
+/* Copyright 2019 marhalloweenvt
+ *
+ * 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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT( /* Base */
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
+ CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, TO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RIGHT),
+ [1] = LAYOUT( /* FN */
+ KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_INS,
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_HOME,
+ CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, KC_END,
+ KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT),
+
+};
diff --git a/keyboards/handwired/p65rgb/p65rgb.c b/keyboards/handwired/p65rgb/p65rgb.c
new file mode 100644
index 000000000..5c045c2fc
--- /dev/null
+++ b/keyboards/handwired/p65rgb/p65rgb.c
@@ -0,0 +1,49 @@
+/* Copyright 2019 marhalloweenvt
+ *
+ * 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 "p65rgb.h"
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 },
+ { 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17 },
+ { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 },
+ { 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51 },
+ { 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 }
+}, {
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, {105, 0 }, {120, 0 }, {135, 0 }, {150, 0 }, {165, 0 }, {180, 0 }, {195, 0 }, {205, 0 }, {210, 0 }, {224, 0 },
+ { 224,16 }, {224, 16 }, {210, 16 }, {180, 16 }, {165, 16 }, {150, 16 }, {135, 16 }, {120, 16 }, {105, 16 }, { 90, 16 }, { 75, 16 }, { 60, 16 }, { 45, 16 }, { 30, 16 }, { 15, 16 }, { 0, 16 }, { 0, 16 },
+ { 0, 32 }, { 0, 32 }, { 15, 32 }, { 30, 32 }, { 45, 32 }, { 60, 32 }, { 75, 32 }, { 90, 32 }, {105, 32 }, {120, 32 }, {135, 32 }, {150, 32 }, {165, 32 }, {190, 32 }, {205, 32 }, {210, 32 }, {224, 32 },
+ { 224, 8 }, {224, 48 }, {210, 48 }, {195, 48 }, {180, 48 }, {150, 48 }, {135, 48 }, {120, 48 }, {105, 48 }, { 90, 48 }, { 75, 48 }, { 60, 48 }, { 45, 48 }, { 30, 48 }, { 15, 48 }, { 0, 48 }, { 0, 48 },
+ { 0, 64 }, { 0, 64 }, { 0, 64 }, { 15, 64 }, { 15, 64 }, { 40, 64 }, { 90, 64 }, {105, 64 }, {150, 64 }, {180, 64 }, {180, 64 }, {195, 64 }, {210, 64 }, {220, 64 }, {224, 64 }
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2,
+ 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 2, 2, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2
+} };
+
+void suspend_power_down_kb(void)
+{
+ rgb_matrix_set_suspend_state(true);
+ suspend_power_down_user();
+}
+
+void suspend_wakeup_init_kb(void)
+{
+ rgb_matrix_set_suspend_state(false);
+ suspend_wakeup_init_user();
+}
diff --git a/keyboards/handwired/p65rgb/p65rgb.h b/keyboards/handwired/p65rgb/p65rgb.h
new file mode 100644
index 000000000..fd7e216d1
--- /dev/null
+++ b/keyboards/handwired/p65rgb/p65rgb.h
@@ -0,0 +1,42 @@
+/* Copyright 2019 marhalloweenvt
+ *
+ * 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
+
+#include "quantum.h"
+
+/* This a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, K2e, k2f, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3c, k3e, k3f, \
+ k40, k41, k42, k45, k49, k4a, k4c, k4e, k4f \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, KC_NO }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, k1e, k1f, KC_NO }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, K2e, k2f, KC_NO }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, KC_NO, k3c, KC_NO, k3e, k3f, KC_NO }, \
+ { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, k49, k4a, KC_NO, k4c, KC_NO, k4e, k4f, KC_NO }, \
+}
+
diff --git a/keyboards/handwired/p65rgb/readme.md b/keyboards/handwired/p65rgb/readme.md
new file mode 100644
index 000000000..e0c787b86
--- /dev/null
+++ b/keyboards/handwired/p65rgb/readme.md
@@ -0,0 +1,15 @@
+# p65rgb
+
+![p65rgb](https://i.imgur.com/Z3RfOXe.jpg)
+
+A replacement PCB for my E6.5 Keyboard
+
+* Keyboard Maintainer: [marhalloweenvt](https://github.com/marhalloweenvt)
+* Hardware Supported: p65rgb
+* Hardware Availability: p65rgb
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/p65rgb:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/handwired/p65rgb/rules.mk b/keyboards/handwired/p65rgb/rules.mk
new file mode 100644
index 000000000..297aa1cd7
--- /dev/null
+++ b/keyboards/handwired/p65rgb/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = qmk-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+RGB_MATRIX_ENABLE = WS2812 # Enable keyboard RGB backlight functionality with ws2812 driver
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/hineybush/h87a/config.h b/keyboards/hineybush/h87a/config.h
index 5a1e6d366..f9d8f9766 100644
--- a/keyboards/hineybush/h87a/config.h
+++ b/keyboards/hineybush/h87a/config.h
@@ -72,5 +72,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
+#define RGBLIGHT_LIMIT_VAL 200
#define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep
#endif
diff --git a/keyboards/hineybush/h87a/h87a.c b/keyboards/hineybush/h87a/h87a.c
index 2ce469b69..c3bb89080 100644
--- a/keyboards/hineybush/h87a/h87a.c
+++ b/keyboards/hineybush/h87a/h87a.c
@@ -42,4 +42,11 @@ void led_set_kb(uint8_t usb_led) {
led_set_user(usb_led);
}
-
+void eeconfig_init_kb(void) { // EEPROM is getting reset!
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 128); // Set default HSV - red hue, full saturation, medium brightness
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/hineybush/h87a/rules.mk b/keyboards/hineybush/h87a/rules.mk
index 653ec1f9a..2c5bc96c6 100644
--- a/keyboards/hineybush/h87a/rules.mk
+++ b/keyboards/hineybush/h87a/rules.mk
@@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
diff --git a/keyboards/keebio/levinson/keymaps/rossman360/keymap.c b/keyboards/keebio/levinson/keymaps/rossman360/keymap.c
new file mode 100644
index 000000000..efb5f9cfa
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/rossman360/keymap.c
@@ -0,0 +1,135 @@
+#include QMK_KEYBOARD_H
+
+#define PGMOD LT(_NUM, KC_PGDN)
+#define TABMOD LT(_FN1, KC_TAB)
+#define SPCMOD LT(_FN1, KC_SPACE)
+#define ENTMOD LT(_FN2, KC_ENTER)
+#define ESCMOD LT(_NUM, KC_ESC)
+#define RSMOD LT(_FN1, KC_RSHIFT)
+#define CMDBSP MT(MOD_LGUI, KC_BSPC)
+#define ALTDEL MT(MOD_LALT, KC_DEL)
+#define CTRLSP MT(MOD_LCTL, KC_SPACE)
+#define BWORD LCTL(KC_BSPC)
+#define JUMPBACK LSFT(KC_TAB)
+#define LWORD LCTL(KC_LEFT)
+#define RWORD LCTL(KC_RIGHT)
+#define UNDO LCTL(KC_Z)
+#define NTAB LCTL(KC_T)
+#define CTAB LCTL(KC_W)
+#define XPANDR LCTL(LSFT(KC_X))
+#define TAB1 LCTL(KC_1)
+#define TAB2 LCTL(KC_2)
+#define TAB3 LCTL(KC_3)
+#define TAB4 LCTL(KC_4)
+#define RVOLU LCTL(KC_RBRC)
+#define RVOLD LCTL(KC_LBRC)
+
+enum layer_names {
+ _BASE,
+ _DEL,
+ _FN1,
+ _FN2,
+ _NUM,
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ CSPEAK,
+ PARADOWN,
+ PMERGE,
+ WREFRESH,
+ REMCAPS,
+ SPEAK1,
+ SPEAK2,
+ SPEAK3,
+ SPEAK4
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+switch (keycode) {
+ case CSPEAK:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
+ }
+ break;
+ case SPEAK1:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1)));
+ }
+ break;
+ case SPEAK2:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2)));
+ }
+ break;
+ case SPEAK3:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3)));
+ }
+ break;
+ case SPEAK4:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4)));
+ }
+ break;
+ case PARADOWN:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
+ }
+ break;
+ case PMERGE:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE));
+ }
+ break;
+ case WREFRESH:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE));
+ }
+ break;
+ case REMCAPS:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
+ }
+ break;
+};
+return true;
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_BASE] = LAYOUT_ortho_4x12(
+ KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB ,
+ JUMPBACK, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
+ KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
+ CMDBSP , ALTDEL , KC_NO , CTRLSP , TABMOD , PGMOD , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL
+ ),
+
+[_FN1] = LAYOUT_ortho_4x12(
+ _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB ,
+ KC_CAPS, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO ,
+ _______, _______, XPANDR , _______, _______, _______, _______, PMERGE , KC_DOWN, _______, _______, _______,
+ WREFRESH,_______, _______, _______, LWORD , RWORD , RVOLD , RVOLU , _______, _______, _______, _______
+ ),
+
+[_FN2] = LAYOUT_ortho_4x12(
+ _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, _______, _______, _______, _______
+ ),
+
+[_DEL] = LAYOUT_ortho_4x12(
+ _______, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB ,
+ REMCAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
+ _______, _______, _______, KC_DEL , KC_BSPC, BWORD , _______, _______, _______, _______, _______, _______
+ ),
+
+[_NUM] = LAYOUT_ortho_4x12(
+ _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
+ KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
+ _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
+ _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_0 , _______, _______, _______
+ )
+};
diff --git a/keyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c b/keyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c
new file mode 100755
index 000000000..ef3fc729e
--- /dev/null
+++ b/keyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c
@@ -0,0 +1,145 @@
+#include QMK_KEYBOARD_H
+
+#define PGMOD LT(_MOD, KC_PGDN)
+#define SPCMOD LT(_MOD, KC_SPACE)
+#define VOLMOD LT(_MOD, KC__MUTE)
+#define CMDBSP MT(MOD_LGUI, KC_BSPC)
+#define ALTDEL MT(MOD_LALT, KC_DEL)
+#define BWORD LCTL(KC_BSPC)
+#define LWORD LCTL(KC_LEFT)
+#define RWORD LCTL(KC_RIGHT)
+#define JUMPBACK LSFT(KC_TAB)
+#define UNDO LCTL(KC_Z)
+#define XPANDR LCTL(LSFT(KC_X))
+#define NTAB LCTL(KC_T)
+#define CTAB LCTL(KC_W)
+#define XPANDR LCTL(LSFT(KC_X))
+
+enum layer_names {
+ _BASE,
+ _REV,
+ _MOD,
+ _DEL,
+};
+
+enum custom_keycodes {
+ LAUNCHCLOCK = SAFE_RANGE,
+ CSPEAK,
+ SPEAK1,
+ SPEAK2,
+ SPEAK3,
+ SPEAK4,
+ PARADOWN,
+ WREFRESH,
+ PMERGE,
+ REMCAPS,
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+switch (keycode) {
+ case CSPEAK:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
+ break;
+ }
+ case SPEAK1:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1)));
+ break;
+ }
+ case SPEAK2:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2)));
+ }
+ break;
+ case SPEAK3:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3)));
+ }
+ break;
+ case SPEAK4:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4)));
+ }
+ break;
+ case PARADOWN:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
+ }
+ break;
+ case PMERGE:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE));
+ }
+ break;
+ case WREFRESH:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE));
+ }
+ break;
+ case REMCAPS:
+ if (record->event.pressed) {
+ SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
+ }
+ break;
+ };
+ return true;
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_BASE] = LAYOUT_split_space(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, NTAB,
+ //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, MO(_MOD),CTAB,
+ //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
+ //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ //├──────────┬───────┴──┬─────┴────┬───┴────────┴─────┬───┴────────┴───┬─────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
+ CMDBSP, ALTDEL, KC_LCTRL, KC_SPACE, SPCMOD, SPCMOD, MO(_DEL), KC_LCTL, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT
+ //└──────────┴──────────┴──────────┴──────────────────┴────────────────┴───────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
+ ),
+
+[_REV] = LAYOUT_split_space(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
+ _______, _______, _______, _______, _______, _______,_______, _______,_______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
+ KC_LEFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,KC_HOME, KC_END, KC_RIGHT, _______, _______,
+ //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
+ JUMPBACK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CSPEAK, _______,
+ //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
+ _______, _______, _______, KC_TAB, PGMOD, _______, _______, _______, _______, _______, _______, _______
+ //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
+ ),
+
+[_MOD] = LAYOUT_split_space(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
+ RESET, _______, _______, _______, _______, _______,_______, _______,KC_F8 , _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU,
+ //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
+ _______, _______, WREFRESH,_______, DF(_REV), _______, _______, UNDO, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
+ KC_CAPS, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP, KC_RIGHT, KC_END, _______, PARADOWN,
+ //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
+ _______, _______, XPANDR, _______, _______, _______, _______, PMERGE, KC_DOWN, _______, _______, _______, KC_F1 ,
+ //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
+ _______, _______, _______, LWORD, RWORD, LWORD, RWORD, _______, _______, _______, KC_F2 , _______
+ //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
+ ),
+
+[_DEL] = LAYOUT_split_space(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
+ _______, SPEAK1, SPEAK2, SPEAK3, SPEAK4, _______,_______, _______,_______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
+ REMCAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
+ _______, _______, KC_DEL, KC_BSPC, BWORD, _______, _______, _______, _______, _______, _______, _______
+ //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
+ ),
+};
diff --git a/keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md b/keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md
new file mode 100644
index 000000000..95e76d630
--- /dev/null
+++ b/keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md
@@ -0,0 +1,3 @@
+#Rossman360's Tragicforce68 Layout
+
+This is a split-space layout that, like a lot of my layouts, has a lot of macros specific to the transcription service Rev. Moving back through text, deleting characters or whole words and returning to the end of the document can all be done using thumbs.
diff --git a/keyboards/lets_split/keymaps/geripgeri/config.h b/keyboards/lets_split/keymaps/geripgeri/config.h
new file mode 100644
index 000000000..6e71ea2b9
--- /dev/null
+++ b/keyboards/lets_split/keymaps/geripgeri/config.h
@@ -0,0 +1,37 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+Copyright 2019 Gergely Peidl
+
+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 AUTO_SHIFT_TIMEOUT 200
+#define NO_AUTO_SHIFT_NUMERIC
+
+// RGB lighting
+#define RGBLIGHT_SLEEP
+#undef RGBLED_NUM
+#define RGBLED_NUM 32
+
+#define RGBLIGHT_EFFECT_BREATHING
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+
+#define TAPPING_TERM 200
diff --git a/keyboards/lets_split/keymaps/geripgeri/keymap.c b/keyboards/lets_split/keymaps/geripgeri/keymap.c
new file mode 100644
index 000000000..b268fb90c
--- /dev/null
+++ b/keyboards/lets_split/keymaps/geripgeri/keymap.c
@@ -0,0 +1,368 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _NUMPAD,
+ _GAMING,
+ _ADJUST
+};
+
+enum custom_keycodes {
+ NUMPAD = SAFE_RANGE,
+ SLIGHTLY,
+ SMILE,
+ JOY,
+ RELAXED,
+ HEART,
+ SAD,
+ CRY,
+ NETRURAL,
+ SCREAM,
+ THUMBSUP
+};
+
+enum td_extra_keys {
+ U,
+ O,
+ NEXTPREV,
+ SLASH
+};
+
+typedef struct {
+ bool is_press_action;
+ int state;
+} tap;
+
+enum {
+ SINGLE_TAP = 1,
+ SINGLE_HOLD = 2,
+ DOUBLE_TAP = 3,
+ DOUBLE_HOLD = 4,
+ DOUBLE_SINGLE_TAP = 5, //send two single taps
+ TRIPLE_TAP = 6,
+ TRIPLE_HOLD = 7
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+int cur_dance (qk_tap_dance_state_t *state);
+
+void u_finished (qk_tap_dance_state_t *state, void *user_data);
+void o_finished (qk_tap_dance_state_t *state, void *user_data);
+
+uint8_t rgb_mode = RGBLIGHT_MODE_BREATHING + 1;
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Ctrl | ALT |Numpad| GUI |Lower | Space| | Bksp |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINUS,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(SLASH), KC_ENT,
+ KC_LCTL, KC_LALT, MO(_NUMPAD), KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | = |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | :) | :D | :'D | :$ | <3 | | | Home | Pgup | | { | } | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | :( | :'( | :| | :O | +1 | | | End |Pgdown| | [ | ] |PrntSc|
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | |Insert| | Del | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL,
+ SLIGHTLY, SMILE, JOY, RELAXED, HEART, _______, KC_HOME, KC_PGUP, _______, KC_LCBR, KC_RCBR, KC_PIPE,
+ SAD, CRY, NETRURAL, SCREAM, THUMBSUP, _______, KC_END, KC_PGDOWN,_______, KC_LBRC, KC_RBRC, KC_PSCREEN,
+ _______, _______, _______, _______, _______, KC_INSERT, KC_DEL, _______, TD(NEXTPREV), KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | | | |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | Reset|EEPRST| | EE | | | | | UE | IE | OE | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | AE | | | | | | | | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | TGLAS| | | | | | | | | | | |GAMING|
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12(
+ RESET, EEP_RST, _______, RALT(KC_SCLN), _______, _______, _______, TD(U), RALT(KC_Z), TD(O), _______, _______,
+ _______, RALT(KC_QUOT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_ASTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_GAMING)
+),
+
+/* Numpad
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | | | | | | | | 7 | 8 | 9 | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | 4 | 5 | 6 | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | VAI | SAI | HUI | | | | | 3 | 2 | 1 | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | |RGBMOD|RGBTGL| | Calc | 0 | + | | | |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+[_NUMPAD] = LAYOUT_ortho_4x12(
+ _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______,
+ RGB_VAI, RGB_SAI, RGB_HUI, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______,
+ _______, _______, _______, _______, RGB_MOD, RGB_TOG, KC_CALC, KC_0, KC_PPLS, _______, _______, _______
+),
+
+/* Gaming
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | RAISE| | | | LOWER| | | | |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+[_GAMING] = LAYOUT_ortho_4x12(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, RAISE, _______, _______, LOWER, _______, _______, _______, _______
+)};
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch(keycode) {
+ case RGB_VAI:
+ if(record->event.pressed) {
+ rgblight_increase_val_noeeprom();
+ }
+ break;
+ case RGB_VAD:
+ if(record->event.pressed) {
+ rgblight_decrease_val_noeeprom();
+ }
+ break;
+ case RGB_SAI:
+ if(record->event.pressed) {
+ rgblight_increase_sat_noeeprom();
+ }
+ break;
+ case RGB_SAD:
+ if(record->event.pressed) {
+ rgblight_decrease_sat_noeeprom();
+ }
+ break;
+ case RGB_HUI:
+ if(record->event.pressed) {
+ rgblight_increase_hue_noeeprom();
+ }
+ break;
+ case RGB_HUD:
+ if(record->event.pressed) {
+ rgblight_decrease_hue_noeeprom();
+ }
+ break;
+ case RGB_TOG:
+ if(record->event.pressed) {
+ rgblight_toggle_noeeprom();
+ }
+ break;
+ case RGB_MOD:
+ if(record->event.pressed) {
+ rgblight_step_noeeprom();
+ rgb_mode = rgblight_get_mode();
+ }
+ break;
+ case RGB_RMOD:
+ if(record->event.pressed) {
+ rgblight_step_reverse_noeeprom();
+ rgb_mode = rgblight_get_mode();
+ }
+ break;
+
+ case SLIGHTLY:
+ if(record->event.pressed) {
+ SEND_STRING(":slightly_smiling_face:");
+ }
+ break;
+ case SMILE:
+ if(record->event.pressed) {
+ SEND_STRING(":smile:");
+ }
+ break;
+ case JOY:
+ if(record->event.pressed) {
+ SEND_STRING(":joy:");
+ }
+ break;
+ case RELAXED:
+ if(record->event.pressed) {
+ SEND_STRING(":relaxed:");
+ }
+ break;
+ case HEART:
+ if(record->event.pressed) {
+ SEND_STRING(":heart:");
+ }
+ break;
+ case SAD:
+ if(record->event.pressed) {
+ SEND_STRING(":white_frowning_face:");
+ }
+ break;
+ case CRY:
+ if(record->event.pressed) {
+ SEND_STRING(":cry:");
+ }
+ break;
+ case NETRURAL:
+ if(record->event.pressed) {
+ SEND_STRING(":neutral_face:");
+ }
+ break;
+ case SCREAM:
+ if(record->event.pressed) {
+ SEND_STRING(":scream:");
+ }
+ break;
+ case THUMBSUP:
+ if(record->event.pressed) {
+ SEND_STRING(":+1:");
+ }
+ break;
+ default:
+ return true;
+ }
+ return false;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+ writePin(B0, !(state & (1UL << (_NUMPAD))));
+
+ switch(biton32(state)) {
+ case _RAISE:
+ rgblight_setrgb_at(255, 255, 255, RGBLED_NUM / 2);
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+ break;
+ case _LOWER:
+ rgblight_setrgb_at(255, 255, 255, RGBLED_NUM / 2 - 1);
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+ break;
+ case _NUMPAD:
+ rgblight_setrgb_at(0,255,0, 0);
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+ break;
+ case _GAMING:
+ rgb_mode = RGBLIGHT_MODE_RAINBOW_SWIRL + 5;
+ autoshift_disable();
+ break;
+ default:
+ rgb_mode = RGBLIGHT_MODE_BREATHING + 1;
+ rgblight_mode_noeeprom(rgb_mode);
+ autoshift_enable();
+ break;
+ }
+ return state;
+}
+
+void led_set_user(uint8_t usb_led) {
+ rgblight_sethsv_noeeprom(0, 255, 255);
+ rgblight_mode_noeeprom(rgb_mode);
+}
+
+int cur_dance (qk_tap_dance_state_t *state) {
+ if (state->count == 1) {
+ if (state->interrupted || !state->pressed) return SINGLE_TAP;
+ //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
+ else return SINGLE_HOLD;
+ }
+ else if (state->count == 2) {
+ /*
+ * DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
+ * action when hitting 'pp'. Suggested use case for this return value is when you want to send two
+ * keystrokes of the key, and not the 'double tap' action/macro.
+ */
+ if (state->interrupted) return DOUBLE_SINGLE_TAP;
+ else if (state->pressed) return DOUBLE_HOLD;
+ else return DOUBLE_TAP;
+ }
+ //Assumes no one is trying to type the same letter three times (at least not quickly).
+ //If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
+ //an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
+ if (state->count == 3) {
+ if (state->interrupted || !state->pressed) return TRIPLE_TAP;
+ else return TRIPLE_HOLD;
+ }
+ else return 8; //magic number. At some point this method will expand to work for more presses
+}
+
+static tap utap_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+static tap otap_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void u_finished (qk_tap_dance_state_t *state, void *user_data) {
+ utap_state.state = cur_dance(state);
+ switch(utap_state.state) {
+ case SINGLE_TAP: SEND_STRING(SS_RALT("]")); break;
+ case DOUBLE_TAP: SEND_STRING(SS_RALT("-")); break;
+ case TRIPLE_TAP: SEND_STRING(SS_RALT("\\")); break;
+ }
+}
+
+void o_finished (qk_tap_dance_state_t *state, void *user_data) {
+ otap_state.state = cur_dance(state);
+ switch(otap_state.state) {
+ case SINGLE_TAP: SEND_STRING(SS_RALT("=")); break;
+ case DOUBLE_TAP: SEND_STRING(SS_RALT("0")); break;
+ case TRIPLE_TAP: SEND_STRING(SS_RALT("[")); break;
+ }
+}
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [U] = ACTION_TAP_DANCE_FN(u_finished),
+ [O] = ACTION_TAP_DANCE_FN(o_finished),
+ [NEXTPREV] = ACTION_TAP_DANCE_DOUBLE(KC_MNXT, KC_MPRV),
+ [SLASH] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_BSLS)
+ };
diff --git a/keyboards/lets_split/keymaps/geripgeri/readme.md b/keyboards/lets_split/keymaps/geripgeri/readme.md
new file mode 100644
index 000000000..09f1bedee
--- /dev/null
+++ b/keyboards/lets_split/keymaps/geripgeri/readme.md
@@ -0,0 +1,3 @@
+# Personal Layout
+
+[Layout](http://www.keyboard-layout-editor.com/#/gists/8eae83bfb830d847c94c7ff423bbdc84)
diff --git a/keyboards/lets_split/keymaps/geripgeri/rules.mk b/keyboards/lets_split/keymaps/geripgeri/rules.mk
new file mode 100644
index 000000000..5cefc0017
--- /dev/null
+++ b/keyboards/lets_split/keymaps/geripgeri/rules.mk
@@ -0,0 +1,5 @@
+AUTO_SHIFT_ENABLE = yes
+AUTO_SHIFT_MODIFIERS = no
+RGBLIGHT_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+
diff --git a/keyboards/lets_split/keymaps/hvp/config.h b/keyboards/lets_split/keymaps/hvp/config.h
new file mode 100644
index 000000000..df24c53cd
--- /dev/null
+++ b/keyboards/lets_split/keymaps/hvp/config.h
@@ -0,0 +1,40 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
+
+ // place overrides here
+#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
+ SONG(COLEMAK_SOUND), \
+ SONG(DVORAK_SOUND) \
+ }
+
+/* Use I2C or Serial, not both */
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 10
diff --git a/keyboards/lets_split/keymaps/hvp/keymap.c b/keyboards/lets_split/keymaps/hvp/keymap.c
new file mode 100644
index 000000000..e9ebd46d6
--- /dev/null
+++ b/keyboards/lets_split/keymaps/hvp/keymap.c
@@ -0,0 +1,65 @@
+#include QMK_KEYBOARD_H
+#include "hvp.c"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 3
+#define _RAISE 4
+#define _NAVI 5
+#define _ADJUST 6
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE
+};
+
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define ADJUST MO(_ADJUST)
+
+#define LT3_ESC LT(5, KC_ESC)
+#define LT4_TAB LT(6, KC_TAB)
+#define F_NAVI LT(5, KC_F)
+
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = LAYOUT_ortho_4x12(
+ LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ LT3_ESC, KC_A, KC_S, KC_D, F_NAVI, LT(6,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT ,
+ KC_LCTL, KC_APP, KC_LGUI, KC_LALT, LT(3,KC_SPC), SFT_T(KC_SPC), KC_SFTENT, LT(4,KC_SPC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+[_RAISE] = LAYOUT_ortho_4x12( /* Right */
+ 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_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+),
+
+[_LOWER] = LAYOUT_ortho_4x12( /* Left */
+ KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
+ KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+),
+
+[_NAVI] = LAYOUT_ortho_4x12( /* Esc */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
+ _______, _______, _______, _______, _______,KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+),
+
+[_ADJUST] = LAYOUT_ortho_4x12( /* Tab */
+ _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
+ _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
+ KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
+ RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______
+)};
diff --git a/keyboards/lets_split/keymaps/hvp/readme.md b/keyboards/lets_split/keymaps/hvp/readme.md
new file mode 100644
index 000000000..a43b9d52e
--- /dev/null
+++ b/keyboards/lets_split/keymaps/hvp/readme.md
@@ -0,0 +1,10 @@
+Keyboard: Lets split!
+Keys: 48key ortho 40% keyboard
+Layout: Swedish characters on main layer using tapdance. Built for eurkey keyboard layout.
+Flash instructions: Flash using avrdude, will req the hvp user space to compile.
+
+> make lets_split/rev2:hvp:avrdude
+
+Links:
+Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/lets_split
+Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/lets_split/keymaps/hvp/rules.mk b/keyboards/lets_split/keymaps/hvp/rules.mk
new file mode 100644
index 000000000..1c1ed316a
--- /dev/null
+++ b/keyboards/lets_split/keymaps/hvp/rules.mk
@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes
+TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/hvp/config.h b/keyboards/lily58/keymaps/hvp/config.h
new file mode 100644
index 000000000..3367748de
--- /dev/null
+++ b/keyboards/lily58/keymaps/hvp/config.h
@@ -0,0 +1,56 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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 SSD1306OLED
+
+#define USE_SERIAL_PD2
+
+#define TAPPING_TERM 100
+#undef TAPPING_TERM
+#define TAPPING_TERM 150
+
+#define PERMISSIVE_HOLD
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 27
+#define RGBLIGHT_LIMIT_VAL 120
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+
+// Underglow
+/*
+#undef RGBLED_NUM
+#define RGBLED_NUM 14 // Number of LEDs
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_SLEEP
+*/ \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/hvp/keymap.c b/keyboards/lily58/keymaps/hvp/keymap.c
new file mode 100644
index 000000000..67e2541f6
--- /dev/null
+++ b/keyboards/lily58/keymaps/hvp/keymap.c
@@ -0,0 +1,181 @@
+#include QMK_KEYBOARD_H
+#include "hvp.c"
+
+#ifdef PROTOCOL_LUFA
+ #include "lufa.h"
+ #include "split_util.h"
+#endif
+#ifdef SSD1306OLED
+ #include "ssd1306.h"
+#endif
+
+#ifdef RGBLIGHT_ENABLE
+//Following line allows macro to read current RGB settings
+extern rgblight_config_t rgblight_config;
+#endif
+
+extern uint8_t is_master;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 3
+#define _NAVI 4
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ NAVI,
+ ADJUST
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT(
+ LT(3,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ LT(_NAVI,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
+ KC_LSFT, KC_A, KC_S, KC_D, LT(4,KC_F), LT(3,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
+ KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, MT(MOD_LSFT,KC_BSPC), MT(MOD_LSFT,KC_ENTER), KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), MT(MOD_RSFT,KC_ENT),
+ KC_LALT, KC_LGUI, LOWER,LT(1,KC_SPC), LT(2,KC_SPC), RAISE, KC_RALT, KC_RGUI
+),
+[_RAISE] = LAYOUT( /* Right */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ 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_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, MT(MOD_LCTL,KC_LBRC), MT(MOD_LALT,KC_RBRC), _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+[_LOWER] = LAYOUT( /* Left */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,
+ KC_TILD,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
+ KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, MT(MOD_LCTL,KC_LCBR), MT(MOD_LALT,KC_RCBR), _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
+ _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+ [_NAVI] = LAYOUT( /* Tab */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
+ _______, KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_VOLU, _______
+ ),
+
+ [_ADJUST] = LAYOUT( /* Esc */
+ _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
+ _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
+ KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
+ RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_VOLU, _______
+ )
+};
+
+int RGB_current_mode;
+
+// Setting ADJUST layer RGB back to default
+void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
+
+}
+
+void matrix_init_user(void) {
+ #ifdef RGBLIGHT_ENABLE
+ RGB_current_mode = rgblight_config.mode;
+ #endif
+ //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
+ #ifdef SSD1306OLED
+ iota_gfx_init(!has_usb()); // turns on the display
+ #endif
+}
+
+//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
+#ifdef SSD1306OLED
+
+// 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);
+
+void matrix_scan_user(void) {
+ iota_gfx_task();
+}
+
+void matrix_render_user(struct CharacterMatrix *matrix) {
+ if (is_master) {
+ // 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());
+ }
+}
+
+void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
+ if (memcmp(dest->display, source->display, sizeof(dest->display))) {
+ memcpy(dest->display, source->display, sizeof(dest->display));
+ dest->dirty = true;
+ }
+}
+
+void iota_gfx_task_user(void) {
+ struct CharacterMatrix matrix;
+ matrix_clear(&matrix);
+ matrix_render_user(&matrix);
+ matrix_update(&display, &matrix);
+}
+#endif//SSD1306OLED
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+#ifdef SSD1306OLED
+ set_keylog(keycode, record);
+#endif
+ // set_timelog();
+ }
+
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+} \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/hvp/readme.md b/keyboards/lily58/keymaps/hvp/readme.md
new file mode 100644
index 000000000..971bd2800
--- /dev/null
+++ b/keyboards/lily58/keymaps/hvp/readme.md
@@ -0,0 +1,10 @@
+Keyboard: Lily58
+Keys: Lily58 is 6×4+5keys column-staggered split keyboard.
+Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
+Flash instructions: Flash using dfu, will req the hvp user space to compile.
+
+> make lily58:hvp:dfu
+
+Links:
+Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58
+Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/lily58/keymaps/hvp/rules.mk b/keyboards/lily58/keymaps/hvp/rules.mk
new file mode 100644
index 000000000..b1ee4e831
--- /dev/null
+++ b/keyboards/lily58/keymaps/hvp/rules.mk
@@ -0,0 +1,13 @@
+EXTRAKEY_ENABLE = yes
+RGBLIGHT_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+
+# If you want to change the display of OLED, you need to change here
+SRC += ./lib/glcdfont.c \
+ ./lib/rgb_state_reader.c \
+ ./lib/layer_state_reader.c \
+ ./lib/logo_reader.c \
+ ./lib/keylogger.c \
+ # ./lib/mode_icon_reader.c \
+ # ./lib/host_led_state_reader.c \
+ # ./lib/timelogger.c \ \ No newline at end of file
diff --git a/keyboards/percent/skog/rules.mk b/keyboards/percent/skog/rules.mk
index 2b0c1154d..da03a2e0c 100644
--- a/keyboards/percent/skog/rules.mk
+++ b/keyboards/percent/skog/rules.mk
@@ -28,6 +28,4 @@ OPT_DEFS = -DDEBUG_LEVEL=0
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-# custom matrix setup
-CUSTOM_MATRIX = yes
-SRC = matrix.c backlight.c
+SRC = backlight.c
diff --git a/keyboards/planck/keymaps/hvp/config.h b/keyboards/planck/keymaps/hvp/config.h
new file mode 100644
index 000000000..472afc648
--- /dev/null
+++ b/keyboards/planck/keymaps/hvp/config.h
@@ -0,0 +1,39 @@
+#pragma once
+#define TAPPING_TERM 150
+#define IGNORE_MOD_TAP_INTERRUPT
+#define PERMISSIVE_HOLD
+
+#ifdef AUDIO_ENABLE
+# define STARTUP_SONG SONG(PLANCK_SOUND)
+// #define STARTUP_SONG SONG(NO_SOUND)
+
+# define DEFAULT_LAYER_SONGS \
+ { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
+#endif
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
+
+// Most tactile encoders have detents every 4 stages
+#define ENCODER_RESOLUTION 4
diff --git a/keyboards/planck/keymaps/hvp/keymap.c b/keyboards/planck/keymaps/hvp/keymap.c
new file mode 100644
index 000000000..c9aa61981
--- /dev/null
+++ b/keyboards/planck/keymaps/hvp/keymap.c
@@ -0,0 +1,184 @@
+/* Copyright 2015-2017 Jack Humbert
+ *
+ * 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 "hvp.c"
+#include QMK_KEYBOARD_H
+#include "muse.h"
+
+enum planck_layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _NAVI,
+ _ADJUST
+};
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE
+};
+
+#define _QWERTY 0
+#define _RAISE 1
+#define _LOWER 2
+#define _NAVI 3
+#define _ADJUST 5
+
+#define LT3_ESC LT(3, KC_ESC)
+#define LT4_TAB LT(5, KC_TAB)
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = LAYOUT_planck_grid(
+ LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT,
+ KC_LCTL, KC_APP, KC_LGUI, KC_LALT, MO(2), KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+[_RAISE] = LAYOUT_planck_grid( /* Right */
+ 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_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+),
+
+[_LOWER] = LAYOUT_planck_grid( /* Left */
+ KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
+ KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+),
+
+[_NAVI] = LAYOUT_planck_grid( /* Esc */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
+ _______, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+),
+
+[_ADJUST] = LAYOUT_planck_grid( /* Tab */
+ _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
+ _______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, KC_4, KC_5, KC_6, _______, _______,
+ KC_PSCR, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_0, KC_1, KC_2, KC_3, _______,
+ RESET, _______, TERM_ON, TERM_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, DEBUG
+)};
+
+#ifdef AUDIO_ENABLE
+ float plover_song[][2] = SONG(PLOVER_SOUND);
+ float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
+#endif
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+void encoder_update(bool clockwise) {
+ if (muse_mode) {
+ if (IS_LAYER_ON(_RAISE)) {
+ if (clockwise) {
+ muse_offset++;
+ } else {
+ muse_offset--;
+ }
+ } else {
+ if (clockwise) {
+ muse_tempo+=1;
+ } else {
+ muse_tempo-=1;
+ }
+ }
+ } else {
+ if (clockwise) {
+ #ifdef MOUSEKEY_ENABLE
+ tap_code(KC_MS_WH_DOWN);
+ #else
+ tap_code(KC_PGDN);
+ #endif
+ } else {
+ #ifdef MOUSEKEY_ENABLE
+ tap_code(KC_MS_WH_UP);
+ #else
+ tap_code(KC_PGUP);
+ #endif
+ }
+ }
+}
+
+void dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+ case 0: {
+#ifdef AUDIO_ENABLE
+ static bool play_sound = false;
+#endif
+ if (active) {
+#ifdef AUDIO_ENABLE
+ if (play_sound) { PLAY_SONG(plover_song); }
+#endif
+ layer_on(_ADJUST);
+ } else {
+#ifdef AUDIO_ENABLE
+ if (play_sound) { PLAY_SONG(plover_gb_song); }
+#endif
+ layer_off(_ADJUST);
+ }
+#ifdef AUDIO_ENABLE
+ play_sound = true;
+#endif
+ break;
+ }
+ case 1:
+ if (active) {
+ muse_mode = true;
+ } else {
+ muse_mode = false;
+ }
+ }
+}
+
+void matrix_scan_user(void) {
+#ifdef AUDIO_ENABLE
+ if (muse_mode) {
+ if (muse_counter == 0) {
+ uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+ if (muse_note != last_muse_note) {
+ stop_note(compute_freq_for_midi_note(last_muse_note));
+ play_note(compute_freq_for_midi_note(muse_note), 0xF);
+ last_muse_note = muse_note;
+ }
+ }
+ muse_counter = (muse_counter + 1) % muse_tempo;
+ } else {
+ if (muse_counter) {
+ stop_all_notes();
+ muse_counter = 0;
+ }
+ }
+#endif
+}
+
+bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ case RAISE:
+ case LOWER:
+ return false;
+ default:
+ return true;
+ }
+}
diff --git a/keyboards/planck/keymaps/hvp/readme.md b/keyboards/planck/keymaps/hvp/readme.md
new file mode 100644
index 000000000..cb58d8578
--- /dev/null
+++ b/keyboards/planck/keymaps/hvp/readme.md
@@ -0,0 +1,10 @@
+Keyboard: Planck rev6
+Keys: 40% (12x4) ortholinear keyboard
+Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
+Flash instructions: Flash using avrdude, will req the hvp user space to compile.
+
+> make planck/rev6:hvp:dfu-util
+
+Links:
+Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck
+Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/planck/keymaps/hvp/rules.mk b/keyboards/planck/keymaps/hvp/rules.mk
new file mode 100644
index 000000000..896115f71
--- /dev/null
+++ b/keyboards/planck/keymaps/hvp/rules.mk
@@ -0,0 +1,4 @@
+SRC += muse.c
+
+RGBLIGHT_ENABLE = no
+TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c
index e08e02c48..04af5165e 100644
--- a/keyboards/rgbkb/sol/keymaps/default/keymap.c
+++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c
@@ -107,13 +107,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,------------------------------------------------. ,------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | SAD | VAI | SAI | RESET| | | | | | | | | | |
+ * | | SAD | VAI | SAI | RESET| | | | | | P7 | P8 | P9 | | |
* |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | HUD | VAD | HUI |RGBRST| | | | | |QWERTY|COLEMK| | | |
+ * | | HUD | VAD | HUI |RGBRST| | | | | | P4 | P5 | P6 | | |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | SPD | | SPI | | | | | | | |RGBTOG| HUI | SAI | VAI |
+ * | | SPD | | SPI | | | | | | | P1 | P2 | P3 | | |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | |RGBMOD(| | | | | | | |RGBRMOD| HUD | SAD | VAD |
+ * | | | |RGBMOD| | | | | | | P0 | PDOT | NLCK |QWERTY|COLEMK|
* `------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
* | | | | | |
* `-------------' `-------------'
@@ -121,10 +121,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJ] = LAYOUT( \
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
- _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, \
- _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, RGB_SPI, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
- _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \
+ _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, \
+ _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, \
+ _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, \
+ _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NLCK, QWERTY, COLEMAK, \
_______, _______, _______, _______ \
)
};
@@ -301,7 +301,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_keyboard_master())
return OLED_ROTATION_270;
- return rotation;
+ return OLED_ROTATION_180;
}
static void render_logo(void) {
diff --git a/keyboards/rgbkb/sol/keymaps/default/readme.md b/keyboards/rgbkb/sol/keymaps/default/readme.md
index 4a97a7bab..ce5bce19e 100644
--- a/keyboards/rgbkb/sol/keymaps/default/readme.md
+++ b/keyboards/rgbkb/sol/keymaps/default/readme.md
@@ -57,13 +57,13 @@
* ,------------------------------------------------. ,------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | SAD | VAI | SAI | RESET| | | | | | | | | | |
+ * | | SAD | VAI | SAI | RESET| | | | | | P7 | P8 | P9 | | |
* |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | HUD | VAD | HUI |RGBRST| | | | | |QWERTY|COLEMK| | | |
+ * | | HUD | VAD | HUI |RGBRST| | | | | | P4 | P5 | P6 | | |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | | | | | | | | | |RGBTOG| HUI | SAI | VAI |
+ * | | | | | | | | | | | P1 | P2 | P3 | | |
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | |RGBMOD| | | | | | | |RGBSMOD| HUD | SAD | VAD |
+ * | | | |RGBMOD| | | | | | | P0 | PDOT | NLCK |QWERTY|COLEMK|
* `------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
* | | | | | |
* `-------------' `-------------'
diff --git a/keyboards/rgbkb/sol/rev2/config.h b/keyboards/rgbkb/sol/rev2/config.h
index af74b7e46..ee5ad924a 100644
--- a/keyboards/rgbkb/sol/rev2/config.h
+++ b/keyboards/rgbkb/sol/rev2/config.h
@@ -33,6 +33,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef FULLHAND_ENABLE
#define FULLHAND_LEDS 24
+#elif SF_ENABLE
+ #define FULLHAND_LEDS 38
#else
#define FULLHAND_LEDS 0
#endif
diff --git a/keyboards/rgbkb/sol/rev2/post_rules.mk b/keyboards/rgbkb/sol/rev2/post_rules.mk
index 0cbf430ad..ab03325c9 100644
--- a/keyboards/rgbkb/sol/rev2/post_rules.mk
+++ b/keyboards/rgbkb/sol/rev2/post_rules.mk
@@ -20,6 +20,8 @@ endif
ifeq ($(strip $(FULLHAND_ENABLE)), yes)
OPT_DEFS += -DFULLHAND_ENABLE
+else ifeq ($(strip $(SF_ENABLE)), yes)
+ OPT_DEFS += -DSF_ENABLE
endif
ifeq ($(strip $(EXTRA_ENCODERS_ENABLE)), yes)
diff --git a/keyboards/rgbkb/sol/rev2/rev2.c b/keyboards/rgbkb/sol/rev2/rev2.c
index 467aa18e4..e00c48560 100644
--- a/keyboards/rgbkb/sol/rev2/rev2.c
+++ b/keyboards/rgbkb/sol/rev2/rev2.c
@@ -33,6 +33,11 @@ led_config_t g_led_config = { {
#ifdef FULLHAND_ENABLE
{ 2, 88 }, { 2, 103 }, { 2, 117 }, { 2, 132 }, { 10, 145 }, { 25, 145 }, { 39, 145 },
{ 54, 145 }, { 69, 145 }, { 79, 136 }, { 87, 124 }, { 94, 111 },
+// SF Left
+#elif SF_ENABLE
+ { 0, 88 }, { 0, 103 }, { 0, 117 }, { 0, 130 }, { 9, 142 }, { 24, 142 }, { 38, 142 },
+ { 53, 142 }, { 67, 142 }, { 79, 135 }, { 86, 123 }, { 93, 110 }, { 88, 102 }, { 74, 101 },
+ { 60, 91 }, { 45, 98 }, { 33, 92 }, { 23, 86 }, { 10, 80 },
#endif
// Left Hand Mapped Right to Left
{ 213, 14 }, { 196, 14 }, { 182, 14 }, { 168, 14 }, { 154, 14 }, { 140, 14 }, { 122, 14 },
@@ -49,6 +54,11 @@ led_config_t g_led_config = { {
#ifdef FULLHAND_ENABLE
,{ 222, 88 }, { 222, 103 }, { 222, 117 }, { 222, 132 }, { 214, 145 }, { 199, 145 }, { 185, 145 },
{ 170, 145 }, { 155, 145 }, { 145, 136 }, { 137, 124 }, { 130, 111 }
+// SF Right
+#elif SF_ENABLE
+ ,{ 224, 88 }, { 224, 103 }, { 224, 117 }, { 224, 130 }, { 215, 142 }, { 200, 142 }, { 186, 142 },
+ { 171, 142 }, { 157, 142 }, { 145, 135 }, { 138, 123 }, { 131, 110 }, { 136, 102 }, { 150, 101 },
+ { 164, 91 }, { 179, 98 }, { 191, 92 }, { 201, 86 }, { 214, 80 }
#endif
}, {
// Left Hand Mapped Left to Right
@@ -66,6 +76,11 @@ led_config_t g_led_config = { {
#ifdef FULLHAND_ENABLE
2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2,
+// SF Left
+#elif SF_ENABLE
+ 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2,
#endif
// Left Hand Mapped Right to Left
1, 4, 4, 4, 4, 4, 1,
@@ -82,6 +97,11 @@ led_config_t g_led_config = { {
#ifdef FULLHAND_ENABLE
,2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2
+// SF Right
+#elif SF_ENABLE
+ ,2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2
#endif
} };
diff --git a/keyboards/rgbkb/sol/rev2/rules.mk b/keyboards/rgbkb/sol/rev2/rules.mk
index 87b400fa1..40f4c4b8c 100644
--- a/keyboards/rgbkb/sol/rev2/rules.mk
+++ b/keyboards/rgbkb/sol/rev2/rules.mk
@@ -22,6 +22,7 @@ RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typin
RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port
FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
+SF_ENABLE = no # Enables the additional 38 Starfighter LEDs
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
# Misc
diff --git a/keyboards/thevankeyboards/minivan/keymaps/hvp/config.h b/keyboards/thevankeyboards/minivan/keymaps/hvp/config.h
new file mode 100644
index 000000000..cd2aa46c4
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/hvp/config.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#define TAPPING_TERM 150
+#define IGNORE_MOD_TAP_INTERRUPT
+#define PERMISSIVE_HOLD \ No newline at end of file
diff --git a/keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c
new file mode 100644
index 000000000..779292fb3
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c
@@ -0,0 +1,54 @@
+#include QMK_KEYBOARD_H
+#include "hvp.c"
+
+#define _QW 0
+#define _L1 1
+#define _L2 2
+#define _L3 3
+#define _L4 4
+
+#define LT4_TAB LT(_L4, KC_TAB)
+#define LT3_ESC LT(_L3, KC_ESC)
+
+enum custom_keycodes {
+ QW = SAFE_RANGE,
+ L1,
+ L2,
+ L3,
+ L4
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QW] = LAYOUT_arrow( /* Qwerty */
+ LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), LT(4,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT,
+ KC_LCTL, KC_LGUI, KC_LALT, LT(_L2,KC_ENT), LT(_L1,KC_SPC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+ [_L1] = LAYOUT_arrow( /* LAYER 1 */
+ 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_DELETE, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
+ _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+ ),
+ [_L2] = LAYOUT_arrow( /* LAYER 2 */
+ KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
+ KC_DELETE, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
+ [_L3] = LAYOUT_arrow( /* LAYER 3 */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
+ _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
+
+ [_L4] = LAYOUT_arrow( /* LAYER 4 */
+ _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
+ _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
+ KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
+ RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______
+ )
+}; \ No newline at end of file
diff --git a/keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md b/keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md
new file mode 100644
index 000000000..60ee3d6cd
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md
@@ -0,0 +1,10 @@
+Keyboard: Minivan 40% keyboard
+Keys: A compact 44% keyboard.
+Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
+Flash instructions: Flash using dfu, will req the hvp user space to compile.
+
+> make make thevankeyboards/minivan:hvp:dfu
+
+Links:
+Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/thevankeyboards/minivan
+Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk b/keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk
new file mode 100644
index 000000000..f039e269f
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk
@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = no
+TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/ut472/keymaps/hvp/config.h b/keyboards/ut472/keymaps/hvp/config.h
index 4ade43cdc..53fc5b76f 100644
--- a/keyboards/ut472/keymaps/hvp/config.h
+++ b/keyboards/ut472/keymaps/hvp/config.h
@@ -17,6 +17,4 @@
#pragma once
#define TAPPING_TERM 150
#define PERMISSIVE_HOLD
-#define IGNORE_MOD_TAP_INTERRUPT
-
-// place overrides here
+#define IGNORE_MOD_TAP_INTERRUPT \ No newline at end of file
diff --git a/keyboards/ut472/keymaps/hvp/keymap.c b/keyboards/ut472/keymaps/hvp/keymap.c
index c37718dda..ec88e2423 100644
--- a/keyboards/ut472/keymaps/hvp/keymap.c
+++ b/keyboards/ut472/keymaps/hvp/keymap.c
@@ -17,83 +17,43 @@
#include "hvp.c"
#define LT3_ESC LT(3, KC_ESC)
+#define LT4_TAB LT(4, KC_TAB)
+#define D_NAVI MT(MOD_LCTL | MOD_LSFT, KC_D)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base Layer
- * ,-------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P |Bspace |
- * |-------------------------------------------------------------------------+
- * |Tab/L3| A | S | D | F | G | H | J | K | L | ; | ' |
- * |-------------------------------------------------------------------------+
- * | Shift | Z | X | C | V | B | N | M | , | . | / |Sh/En|
- * |-------------------------------------------------------------------------+
- * | Ctrl| Alt | Gui | App | L2 | Space | L1 | Left| Down| Up |Right|
- * `-------------------------------------------------------------------------'
- */
-
LAYOUT(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LT3_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
+ LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), LT(4,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT,
- KC_LCTL, KC_APP, KC_LGUI, KC_LALT, MO(2), MT(MOD_LSFT, KC_SPC), MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ KC_LCTL, KC_APP, KC_LGUI, KC_LALT, MO(2), KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
- /* FN Layer 1
- * ,-------------------------------------------------------------------------.
- * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Delete|
- * |-------------------------------------------------------------------------+
- * | | | | | | | | - | = | [ | ] | \ |
- * |-------------------------------------------------------------------------+
- * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | |
- * |-------------------------------------------------------------------------+
- * | | | |Capsl| | | | Home| PgDn| PgUp| End |
- * `-------------------------------------------------------------------------'
- */
-
LAYOUT( /* Right */
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_DELETE, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______,
- KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+ KC_DELETE, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
- /* FN Layer 2
- * ,-------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |Delete|
- * |-------------------------------------------------------------------------+
- * | | | | | | | | _ | + | { | } | | |
- * |-------------------------------------------------------------------------+
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
- * |-------------------------------------------------------------------------+
- * | | | |Capsl| | | | Home| PgDn| PgUp| End |
- * `-------------------------------------------------------------------------'
- */
-
LAYOUT( /* Left */
KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
KC_DELETE, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______,
_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
- /* FN Layer 2
- * ,-------------------------------------------------------------------------.
- * | Esc | Calc|Webhm| Mail| Comp| | | | | |PrtSc| |
- * |-------------------------------------------------------------------------+
- * | | | | | | | | | | | | |
- * |-------------------------------------------------------------------------+
- * | | | | | | | | | | | | |
- * |-------------------------------------------------------------------------+
- * | | | | | | | |MousL|MousD|MousU|MousR|
- * `-------------------------------------------------------------------------'
- */
-
-LAYOUT( /* Tab */
+LAYOUT( /* Esc */
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
+ _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- RESET, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+ _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+),
+LAYOUT( /* Tab */
+ _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
+ _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
+ KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
+ RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______
),
}; \ No newline at end of file
diff --git a/keyboards/ut472/keymaps/hvp/readme.md b/keyboards/ut472/keymaps/hvp/readme.md
index e3dcee467..a249201de 100644
--- a/keyboards/ut472/keymaps/hvp/readme.md
+++ b/keyboards/ut472/keymaps/hvp/readme.md
@@ -1,5 +1,10 @@
-# UT47 default keymap
+Keyboard: UT47.2
+Keys: 47key staggered 40% keyboard
+Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
+Flash instructions: Flash using dfu, will req the hvp user space to compile.
-![UT47 layout image](https://i.imgur.com/Tsz5qsF.png)
+> make ut472:hvp:dfu
-[KLE](http://www.keyboard-layout-editor.com/##@@_y:0%3B&=Esc&=Q&=W&=E&=R&=T&=Y&=U&=I&=O&=P&_w:1.5%3B&=Back%20Space&_x:0.25&a:4&f:4&w:4&h:4&d:true%3B&=%3Cb%3EGNAP!%3C%2F%2Fb%3E%3Cp%3E%3Cp%3EMinimum%20stagger%3Cp%3E47%20key%20layout%3B&@_a:7&f:3&w:1.25%3B&=Tab&=A&=S&=D&=F&=G&=H&=J&=K&=L&=%2F%3B&_w:1.25%3B&=%27%3B&@_w:1.5%3B&=Shift&=Z&=X&=C&=V&=B&=N&=M&=,&=.&=%2F%2F&=Return%3B&@=Ctrl&=Alt&=Super&=Menu&_w:1.25%3B&=%2F&dArr%2F%3B&_w:2%3B&=&_w:1.25%3B&=%2F&uArr%2F%3B&=%2F&larr%2F%3B&=%2F&darr%2F%3B&=%2F&uarr%2F%3B&=%2F&rarr%2F%3B%3B&=undefined)
+Links:
+Github - https://github.com/ai03-2725/UT47.2
+Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/users/hvp/hvp.h b/users/hvp/hvp.h
index 2b2210f87..99da258aa 100644
--- a/users/hvp/hvp.h
+++ b/users/hvp/hvp.h
@@ -4,3 +4,9 @@
# include "tap_dances.h"
#endif
#include "quantum.h"
+
+#define TAPPING_TERM 150
+
+// Keys
+
+#define D_NAVI MT(MOD_LCTL | MOD_LSFT, KC_D) \ No newline at end of file
diff --git a/users/hvp/tap_dances.c b/users/hvp/tap_dances.c
index bb102b30a..1269d5f27 100644
--- a/users/hvp/tap_dances.c
+++ b/users/hvp/tap_dances.c
@@ -6,10 +6,7 @@ void dance_1_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 2) {
tap_code(KC_SCLN);
} else {
- register_code(KC_RALT);
- register_code(KC_O);
- unregister_code(KC_RALT);
- unregister_code(KC_O);
+ tap_code16(ALGR(KC_A));
}
}
@@ -17,8 +14,7 @@ void dance_1_reset(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 2) {
unregister_code(KC_SCLN);
} else {
- unregister_code(KC_RALT);
- unregister_code(KC_O);
+ unregister_code16(ALGR(KC_A));
}
}
@@ -27,10 +23,7 @@ void dance_2_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 2) {
tap_code(KC_QUOT);
} else {
- register_code(KC_RALT);
- register_code(KC_A);
- unregister_code(KC_RALT);
- unregister_code(KC_A);
+ tap_code16(ALGR(KC_W));
}
}
@@ -38,8 +31,7 @@ void dance_2_reset(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 2) {
unregister_code(KC_QUOT);
} else {
- unregister_code(KC_RALT);
- unregister_code(KC_A);
+ unregister_code16(ALGR(KC_W));
}
}
@@ -49,10 +41,7 @@ void dance_3_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 2) {
tap_code(KC_SLSH);
} else {
- register_code(KC_RALT);
- register_code(KC_W);
- unregister_code(KC_RALT);
- unregister_code(KC_W);
+ tap_code16(ALGR(KC_O));
}
}
@@ -60,8 +49,43 @@ void dance_3_reset(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 2) {
unregister_code(KC_SLSH);
} else {
- unregister_code(KC_RALT);
- unregister_code(KC_W);
+ unregister_code16(ALGR(KC_O));
+ }
+}
+
+// Tap dance 4
+void dance_4_finished(qk_tap_dance_state_t *state, void *user_data) {
+ // if (state->count == 2)
+ if (state->count == 2) {
+ tap_code(KC_DOT);
+ } else {
+ tap_code16(ALGR(KC_W));
+ }
+}
+
+void dance_4_reset(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ unregister_code(KC_DOT);
+ } else {
+ unregister_code16(ALGR(KC_W));
+ }
+}
+
+// Tap dance 5
+void dance_5_finished(qk_tap_dance_state_t *state, void *user_data) {
+ // if (state->count == 2)
+ if (state->count == 2) {
+ tap_code(KC_DOT);
+ } else {
+ tap_code16(ALGR(KC_O));
+ }
+}
+
+void dance_5_reset(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ unregister_code(KC_DOT);
+ } else {
+ unregister_code16(ALGR(KC_O));
}
}
@@ -72,4 +96,8 @@ qk_tap_dance_action_t tap_dance_actions[] = {
[TD2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_2_finished, dance_2_reset),
- [TD3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_3_finished, dance_3_reset)}; \ No newline at end of file
+ [TD3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_3_finished, dance_3_reset),
+
+ [TD4] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_4_finished, dance_4_reset),
+
+ [TD5] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_5_finished, dance_5_reset)}; \ No newline at end of file
diff --git a/users/hvp/tap_dances.h b/users/hvp/tap_dances.h
index 705985faa..cad9bd90e 100644
--- a/users/hvp/tap_dances.h
+++ b/users/hvp/tap_dances.h
@@ -6,5 +6,7 @@ enum tapdance_id
{
TD1 = 0,
TD2,
- TD3
+ TD3,
+ TD4,
+ TD5
};