aboutsummaryrefslogtreecommitdiff
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
287 * Defines which format (bin, hex) is copied to the root `qmk_firmware` folder after building. 287 * Defines which format (bin, hex) is copied to the root `qmk_firmware` folder after building.
288* `SRC` 288* `SRC`
289 * Used to add files to the compilation/linking list. 289 * Used to add files to the compilation/linking list.
290* `LIB_SRC`
291 * Used to add files as a library to the compilation/linking list.
292 The files specified by `LIB_SRC` is linked after the files specified by `SRC`.
293 For example, if you specify:
294 ```
295 SRC += a.c
296 LIB_SRC += lib_b.c
297 SRC += c.c
298 LIB_SRC += lib_d.c
299 ```
300 The link order is as follows.
301 ```
302 ... a.o c.o ... lib_b.a lib_d.a ...
303 ```
290* `LAYOUTS` 304* `LAYOUTS`
291 * A list of [layouts](feature_layouts.md) this keyboard supports. 305 * A list of [layouts](feature_layouts.md) this keyboard supports.
306* `LINK_TIME_OPTIMIZATION_ENABLE`
307 * 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.
308 It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
309* `LTO_ENABLE`
310 * It has the same meaning as LINK_TIME_OPTIMIZATION_ENABLE. You can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
292 311
293## AVR MCU Options 312## AVR MCU Options
294* `MCU = atmega32u4` 313* `MCU = atmega32u4`
@@ -347,9 +366,6 @@ Use these to enable or disable building certain features. The more you have enab
347 * Forces the keyboard to wait for a USB connection to be established before it starts up 366 * Forces the keyboard to wait for a USB connection to be established before it starts up
348* `NO_USB_STARTUP_CHECK` 367* `NO_USB_STARTUP_CHECK`
349 * 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. 368 * 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.
350* `LINK_TIME_OPTIMIZATION_ENABLE`
351 * 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`
352 * Alternatively, you can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
353 369
354## USB Endpoint Limitations 370## USB Endpoint Limitations
355 371
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
42 42
43 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 43 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44 44
45This 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. 45This 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.
46 46
47!> 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. 47!> 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.
48 48
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 @@
1#pragma once
2
3#define TAPPING_TERM 150
4#define IGNORE_MOD_TAP_INTERRUPT
5#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 @@
1
2#include QMK_KEYBOARD_H
3#include "hvp.c"
4
5// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name.
7// Layer names don't all need to be of the same length, obviously, and you can also skip them
8// entirely and just use numbers.
9
10#define LT3_ESC LT(3, KC_ESC)
11#define LT4_TAB LT(4, KC_TAB)
12#define LT1_ENT LT(1, KC_ENTER)
13#define LT2_BSP LT(2, KC_BSPC)
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16 LAYOUT( /* qwerty */
17 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
18 LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
19 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) ,
20 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT ,
21 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
22 ),
23
24 LAYOUT( /* Right */
25 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS ,
26 KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
27 KC_DEL, _______, _______, _______, _______, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
28 _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
30 ),
31
32 LAYOUT(/* Left */
33 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS ,
34 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,
35 KC_DELETE, _______, _______, _______, _______, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
36 _______ , _______ , _______ , _______ , _______ , KC_LEFT_CURLY_BRACE , KC_RIGHT_CURLY_BRACE ,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
37 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_HOME, KC_PGDN, KC_PGUP, KC_END
38 ),
39
40
41 LAYOUT(/* Esc */
42 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
43 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
44 KC_NO, KC_NO, KC_NO, D_NAVI, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO ,
45 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO ,
46 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
47 ),
48
49
50
51 LAYOUT(/* Tab */
52 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______ ,
53 _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______ ,
54 _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______ ,
55 KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
56 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
57 ),
58 /*
59 [_TRNS] = LAYOUT(
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
63 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
64 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
65 ),
66 */
67};
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 @@
1Keyboard: Atreus62
2Keys: 62 keyed ortho staggered keyboard with a split layout and num row.
3Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
4Flash instructions: Flash using avrdude, will req the hvp user space to compile.
5
6> make make atreus62:hvp:avrdude
7
8Links:
9Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/atreus62
10Eurkey 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 {
25}; 25};
26 26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 [_QWERTY] = LAYOUT( \ 28 [_QWERTY] = LAYOUT(
29 //,-----------------------------------------. ,-----------------------------------------. 29 //,-----------------------------------------. ,-----------------------------------------.
30 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,\ 30 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,
31 //|------+------+------+------+------+------| |------+------+------+------+------+------| 31 //|------+------+------+------+------+------| |------+------+------+------+------+------|
32 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),\ 32 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),
33 //|------+------+------+------+------+------| |------+------+------+------+------+------| 33 //|------+------+------+------+------+------| |------+------+------+------+------+------|
34 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),KC_SFTENT,\ 34 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),KC_SFTENT,
35 //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 35 //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
36 KC_LGUI, LOWER,MT(MOD_LSFT, KC_SPC), LT(_RAISE,KC_ENT), RAISE,KC_LALT \ 36 KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT
37 //`--------------------' `--------------------' 37 //`--------------------' `--------------------'
38 ), 38 ),
39 39
40 [_RAISE] = LAYOUT( \ 40 [_RAISE] = LAYOUT(
41 //,-----------------------------------------. ,-----------------------------------------. 41 //,-----------------------------------------. ,-----------------------------------------.
42 KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC,\ 42 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC,
43 //|------+------+------+------+------+------| |------+------+------+------+------+------| 43 //|------+------+------+------+------+------| |------+------+------+------+------+------|
44 KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT,KC_NO, KC_DEL,\ 44 KC_DEL, _______, _______, _______, _______, _______, _______,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
45 //|------+------+------+------+------+------| |------+------+------+------+------+------| 45 //|------+------+------+------+------+------| |------+------+------+------+------+------|
46 KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO,\ 46 KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
47 //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 47 //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
48 KC_LGUI, LOWER,MT(MOD_LSFT, KC_SPC), LT(_RAISE,KC_ENT), RAISE,KC_LALT \ 48 _______, _______, _______, _______, _______, _______
49 //`--------------------' `--------------------' 49 //`--------------------' `--------------------'
50 ), 50 ),
51 51
52 [_LOWER] = LAYOUT( \ 52 [_LOWER] = LAYOUT(
53 //,-----------------------------------------. ,-----------------------------------------. 53 //,-----------------------------------------. ,-----------------------------------------.
54 KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,\ 54 KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
55 //|------+------+------+------+------+------| |------+------+------+------+------+------| 55 //|------+------+------+------+------+------| |------+------+------+------+------+------|
56 KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS,KC_EQL,KC_LCBR,KC_RCBR,KC_PIPE,KC_GRV,\ 56 KC_DEL, _______, _______, _______, _______, _______, _______,KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
57 //|------+------+------+------+------+------| |------+------+------+------+------+------| 57 //|------+------+------+------+------+------| |------+------+------+------+------+------|
58 KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS,KC_TILD,\ 58 KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
59 //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 59 //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
60 KC_LGUI, LOWER,MT(MOD_LSFT, KC_SPC), LT(_RAISE,KC_ENT), RAISE,KC_LALT \ 60 _______, _______, _______, _______, _______, _______
61 //`--------------------' `--------------------' 61 //`--------------------' `--------------------'
62 ), 62 ),
63 63
64 [_ADJUST] = LAYOUT( \ 64 [_ADJUST] = LAYOUT(
65 //,-----------------------------------------. ,-----------------------------------------. 65 //,-----------------------------------------. ,-----------------------------------------.
66 KC_F1,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,\ 66 _______,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
67 //|------+------+------+------+------+------| |------+------+------+------+------+------| 67 //|------+------+------+------+------+------| |------+------+------+------+------+------|
68 KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\ 68 KC_F1,_______,_______,D_NAVI,_______,_______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
69 //|------+------+------+------+------+------| |------+------+------+------+------+------| 69 //|------+------+------+------+------+------| |------+------+------+------+------+------|
70 RESET,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_MPLY, KC_MNXT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,\ 70 RESET,KC_PSCR,_______,_______,_______,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
71 //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 71 //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
72 KC_LGUI, LOWER,MT(MOD_LSFT, KC_SPC), LT(_RAISE,KC_ENT), RAISE,KC_LALT \ 72 _______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______
73 //`--------------------' `--------------------' 73 //`--------------------' `--------------------'
74 ) 74 )
75}; 75};
76 76
77int RGB_current_mode; 77int RGB_current_mode;
78 78
79// Setting ADJUST layer RGB back to default 79// Setting ADJUST layer RGB back to default
80void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { 80void 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 @@
1Keymap to be used with Eurkey for easy access to swedish characters on first layer. 1Keyboard: Corne Keyboard (CRKBD)
2Keys: A split keyboard with 3x6 vertically staggered keys and 3 thumb keys.
3Layout: Swedish characters on main layer using tapdance. Built for eurkey keyboard layout.
4Flash instructions: Flash using avrdude, will req the hvp user space to compile.
2 5
3Links: 6> make crkbd:hvp:avrdude
4 7
5- https://eurkey.steffen.bruentjen.eu/ \ No newline at end of file 8Links:
9Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd
10Eurkey 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 \
10 # ./lib/timelogger.c \ 10 # ./lib/timelogger.c \
11 11
12TAP_DANCE_ENABLE = yes 12TAP_DANCE_ENABLE = yes
13EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 13EXTRAKEY_ENABLE = yes # Audio control and System control
14# LOCAL_GLCDFONT = yes \ No newline at end of file 14# 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 @@
1/*
2Copyright 2019 Tom Saleeba <ergoslab@techotom.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22#define MOUSEKEY_INTERVAL 16
23#define MOUSEKEY_DELAY 0
24#define MOUSEKEY_TIME_TO_MAX 40
25#define MOUSEKEY_MAX_SPEED 7
26#define MOUSEKEY_WHEEL_MAX_SPEED 4
27#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
28#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 @@
1#pragma once
2
3#ifdef KEYBOARD_ergoslab_rev1
4 #include "rev1.h"
5#endif
6
7#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 @@
1{
2 "keyboard_name": "ergoslab",
3 "url": "https://github.com/tomsaleeba/ergoslab",
4 "maintainer": "tomsaleeba",
5 "width": 13,
6 "height": 5.25,
7 "layouts": {
8 "LAYOUT_ergoslab": {
9 "key_count": 52,
10 "layout": [
11 {"label":"Q", "x":0, "y":0.625},
12 {"label":"W", "x":1, "y":0.125},
13 {"label":"E", "x":2, "y":0},
14 {"label":"R", "x":3, "y":0.125},
15 {"label":"T", "x":4, "y":0.25},
16 {"label":"Y", "x":8, "y":0.25},
17 {"label":"U", "x":9, "y":0.125},
18 {"label":"I", "x":10, "y":0},
19 {"label":"O", "x":11, "y":0.125},
20 {"label":"P", "x":12, "y":0.625},
21 {"label":"A", "x":0, "y":1.625},
22 {"label":"S", "x":1, "y":1.125},
23 {"label":"D", "x":2, "y":1},
24 {"label":"F", "x":3, "y":1.125},
25 {"label":"G", "x":4, "y":1.25},
26 {"label":"H", "x":8, "y":1.25},
27 {"label":"J", "x":9, "y":1.125},
28 {"label":"K", "x":10, "y":1},
29 {"label":"L", "x":11, "y":1.125},
30 {"label":";", "x":12, "y":1.625},
31 {"label":"Z", "x":0, "y":2.625},
32 {"label":"X", "x":1, "y":2.125},
33 {"label":"C", "x":2, "y":2},
34 {"label":"V", "x":3, "y":2.125},
35 {"label":"B", "x":4, "y":2.25},
36 {"label":"N", "x":8, "y":2.25},
37 {"label":"M", "x":9, "y":2.125},
38 {"label":",", "x":10, "y":2},
39 {"label":".", "x":11, "y":2.125},
40 {"label":"/", "x":12, "y":2.625},
41 {"label":"'", "x":0, "y":3.625},
42 {"label":"Alt", "x":1, "y":3.125},
43 {"label":"Del", "x":2, "y":3},
44 {"label":"Enter", "x":3, "y":3.125},
45 {"label":"Shift", "x":4, "y":3.25},
46 {"label":"Ctrl", "x":5, "y":3.25},
47 {"label":"Numb", "x":7, "y":3.25},
48 {"label":"Space", "x":8, "y":3.25},
49 {"label":"Left", "x":9, "y":3.125},
50 {"label":"Down", "x":10, "y":3},
51 {"label":"Up", "x":11, "y":3.125},
52 {"label":"Right", "x":12, "y":3.625},
53 {"label":"[", "x":1, "y":4.25},
54 {"label":"(", "x":2, "y":4.25},
55 {"label":"Esc", "x":3, "y":4.25},
56 {"label":"Media", "x":4, "y":4.25},
57 {"label":"GUI", "x":5, "y":4.25},
58 {"label":"Tab", "x":7, "y":4.25},
59 {"label":"Mouse", "x":8, "y":4.25},
60 {"label":"Bspc", "x":9, "y":4.25},
61 {"label":")", "x":10, "y":4.25},
62 {"label":"]", "x":11, "y":4.25}
63 ]
64 }
65 }
66}
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 @@
1/*
2Copyright 2019 Tom Saleeba <ergoslab@techotom.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* Use I2C or Serial, not both */
21
22#define USE_SERIAL
23// #define USE_I2C
24
25/* Select hand configuration */
26
27// #define MASTER_LEFT
28#define MASTER_RIGHT
29// #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 @@
1#include QMK_KEYBOARD_H
2
3enum layer_names {
4 BASE,
5 MDIA,
6 NUMB,
7 MOUS
8};
9
10#ifdef RGBLIGHT_ENABLE
11#define ERGOSLAB_BRIGHTNESS 112
12#define HSV_ERGOSLAB_ORANGE 28, 255, 16
13#define HSV_ERGOSLAB_RED 0, 255, ERGOSLAB_BRIGHTNESS
14#define HSV_ERGOSLAB_GREEN 85, 255, ERGOSLAB_BRIGHTNESS
15#define HSV_ERGOSLAB_CYAN 128, 255, ERGOSLAB_BRIGHTNESS
16#endif
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [BASE] = LAYOUT_ergoslab(
20 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
21 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
22 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
23 KC_QUOT, KC_LALT, KC_DEL, KC_ENT, KC_LSFT, KC_LCTL, MO(NUMB), KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
24 KC_LBRC, KC_LPRN, KC_ESC, MO(MDIA),KC_RGUI, KC_TAB, TG(MOUS), KC_BSPC, KC_RPRN, KC_RBRC
25 ),
26
27 [MDIA] = LAYOUT_ergoslab(
28 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
29 _______, _______, _______, _______, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
30 _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, KC_MUTE,
31 _______, RESET, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34
35 [NUMB] = LAYOUT_ergoslab(
36 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_BSLS, KC_PIPE,
37 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
38 KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_GRV, KC_COLN, KC_TILD, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_DQT, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
41 ),
42
43 [MOUS] = LAYOUT_ergoslab(
44 _______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______,
45 _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN3, KC_WH_D, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, KC_ACL0, _______, KC_BTN2, KC_BTN1, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
49 ),
50};
51
52#ifdef RGBLIGHT_ENABLE
53layer_state_t layer_state_set_user(layer_state_t state) {
54 uint8_t layer = biton32(state);
55 switch (layer) {
56 case BASE:
57 rgblight_sethsv(HSV_ERGOSLAB_ORANGE);
58 break;
59 case MDIA:
60 rgblight_sethsv(HSV_ERGOSLAB_RED);
61 break;
62 case NUMB:
63 rgblight_sethsv(HSV_ERGOSLAB_GREEN);
64 break;
65 case MOUS:
66 rgblight_sethsv(HSV_ERGOSLAB_CYAN);
67 break;
68 default:
69 break;
70 }
71 return state;
72};
73#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 @@
1# ergoslab
2
3![ergoslab](https://raw.githubusercontent.com/tomsaleeba/ergoslab/master/ergoslab.jpg)
4
5
6A split ergo 5x6 keyboard with hotswap sockets and a heap of thumb keys designed
7by Tom Saleeba. [More info on the GitHub
8Repo](https://github.com/tomsaleeba/ergoslab).
9
10**Status** The ergoslab is currently being beta-tested.
11
12* Keyboard Maintainer: [Tom Saleeba](https://github.com/tomsaleeba)
13* Hardware Supported: Pro Micro (ATmega32U4)
14* Hardware Availability: gerbers are available from the [releases page on the
15GitHub repo](https://github.com/tomsaleeba/ergoslab/releases). Get them
16manufactured at your favourite PCB house. I used JLCPCB.
17
18
19Make example for this keyboard (after setting up your build environment):
20
21 make ergoslab:default
22
23Example of flashing this keyboard:
24
25 make ergoslab:default:flash
26
27See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools)
28and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide)
29for more information. Brand new to QMK? Start with our
30[Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
31
32A build guide for this keyboard can be found here: [Build
33Guide](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 @@
1/*
2Copyright 2019 Tom Saleeba <ergoslab@techotom.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xFEED
22#define PRODUCT_ID 0x5148
23#define DEVICE_VER 0x0100
24#define MANUFACTURER tomsaleeba
25#define PRODUCT Ergoslab Keyboard
26#define DESCRIPTION Split 45 percent ergonomic keyboard
27
28/* key matrix size */
29// Rows are doubled-up
30#define MATRIX_ROWS 10
31#define MATRIX_COLS 6
32
33// wiring of each half
34#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
35#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
36
37/* COL2ROW or ROW2COL */
38#define DIODE_DIRECTION COL2ROW
39
40/* Set 0 if debouncing isn't needed */
41#define DEBOUNCE 5
42
43/* serial.c configuration for split keyboard */
44#define SOFT_SERIAL_PIN D2
45
46/* ws2812 RGB LED */
47#define RGB_DI_PIN D3
48
49#define RGBLED_NUM 2 // Number of LEDs
50// FIXME this following line should enable our layer status LEDs to work on both
51// sides without need to wire them into a chain. It doesn't though. Uncommenting
52// means the slave side of the keyboard stops working (and the LEDs don't work).
53// #define RGBLED_SPLIT {1,1}
54
55/*
56 * Feature disable options
57 * These options are also useful to firmware size reduction.
58 */
59
60/* disable debug print */
61// #define NO_DEBUG
62
63/* disable print */
64// #define NO_PRINT
65
66/* disable action features */
67//#define NO_ACTION_LAYER
68//#define NO_ACTION_TAPPING
69//#define NO_ACTION_ONESHOT
70//#define NO_ACTION_MACRO
71//#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 @@
1#include "rev1.h"
2
3#ifdef SWAP_HANDS_ENABLE
4__attribute__ ((weak))
5const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
6 {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}},
7 {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}},
8 {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}},
9 {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}},
10 {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}},
11
12 {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}},
13 {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}},
14 {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}},
15 {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}},
16 {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}},
17};
18#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 @@
1#pragma once
2
3#include "ergoslab.h"
4
5#include "quantum.h"
6
7#define LAYOUT_ergoslab( \
8 L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \
9 L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \
10 L20, L21, L22, L23, L24, R24, R23, R22, R21, R20, \
11 L30, L31, L32, L33, L34, L35, R35, R34, R33, R32, R31, R30, \
12 L41, L42, L43, L44, L45, R45, R44, R43, R42, R41 \
13) { \
14 { L00, L01, L02, L03, L04, KC_NO }, \
15 { L10, L11, L12, L13, L14, KC_NO }, \
16 { L20, L21, L22, L23, L24, KC_NO }, \
17 { L30, L31, L32, L33, L34, L35 }, \
18 { KC_NO, L41, L42, L43, L44, L45 }, \
19 { R00, R01, R02, R03, R04, KC_NO }, \
20 { R10, R11, R12, R13, R14, KC_NO }, \
21 { R20, R21, R22, R23, R24, KC_NO }, \
22 { R30, R31, R32, R33, R34, R35 }, \
23 { KC_NO, R41, R42, R43, R44, R45 } \
24 }
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 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = caterina
13
14# Build Options
15# change to "no" to disable the options, or define them in the Makefile in
16# the appropriate keymap folder that will get included automatically
17#
18BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
19MOUSEKEY_ENABLE = yes # Mouse keys
20EXTRAKEY_ENABLE = yes # Audio control and System control
21CONSOLE_ENABLE = no # Console for debug
22COMMAND_ENABLE = yes # Commands for debug and configuration
23NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
24BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
25MIDI_ENABLE = no # MIDI controls
26AUDIO_ENABLE = no # Audio output on port C6
27UNICODE_ENABLE = no # Unicode
28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
29RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
30# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
31SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
32
33SPLIT_KEYBOARD = yes
34
35DEFAULT_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 @@
1/*
2Copyright 2019 marhalloweenvt
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED
24#define PRODUCT_ID 0x75B4
25#define DEVICE_VER 0x0001
26#define MANUFACTURER marhalloweenvt
27#define PRODUCT p65rgb
28#define DESCRIPTION Replacement PCB for e6.5
29
30/* key matrix size */
31#define MATRIX_ROWS 5
32#define MATRIX_COLS 17
33
34/* key matrix pins */
35#define MATRIX_ROW_PINS { C7, C6, B6, B5, D5 }
36#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, B0, B1, B2, B3, B7, D0, D1, D2, D3, D7 }
37#define UNUSED_PINS
38
39/* COL2ROW, ROW2COL*/
40#define DIODE_DIRECTION COL2ROW
41
42#define RGB_DI_PIN B4
43#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
44#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
45#define RGB_MATRIX_KEYPRESSES
46#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
47#define RGB_MATRIX_LED_PROCESS_LIMIT 4
48#define RGB_MATRIX_LED_FLUSH_LIMIT 26
49#define DRIVER_LED_TOTAL 83
50#define RGBLIGHT_LIMIT_VAL 180
51
52/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
53#define DEBOUNCE 5
54
55/* define if matrix has ghost (lacks anti-ghosting diodes) */
56//#define MATRIX_HAS_GHOST
57
58/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
59#define LOCKING_SUPPORT_ENABLE
60/* Locking resynchronize hack */
61#define LOCKING_RESYNC_ENABLE
62
63#define QMK_ESC_OUTPUT E6 // usually COL
64#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 @@
1{
2 "keyboard_name": "p65rgb",
3 "url": "",
4 "maintainer": "marhalloweenvt",
5 "width": 16,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"Esc", "x":0, "y":0},
11 {"label":"!", "x":1, "y":0},
12 {"label":"@", "x":2, "y":0},
13 {"label":"#", "x":3, "y":0},
14 {"label":"$", "x":4, "y":0},
15 {"label":"%", "x":5, "y":0},
16 {"label":"^", "x":6, "y":0},
17 {"label":"&", "x":7, "y":0},
18 {"label":"*", "x":8, "y":0},
19 {"label":"(", "x":9, "y":0},
20 {"label":")", "x":10, "y":0},
21 {"label":"_", "x":11, "y":0},
22 {"label":"+", "x":12, "y":0},
23 {"label":"~", "x":13, "y":0},
24 {"label":"|", "x":14, "y":0},
25 {"label":"Delete", "x":15, "y":0},
26 {"label":"Tab", "x":0, "y":1, "w":1.5},
27 {"label":"Q", "x":1.5, "y":1},
28 {"label":"W", "x":2.5, "y":1},
29 {"label":"E", "x":3.5, "y":1},
30 {"label":"R", "x":4.5, "y":1},
31 {"label":"T", "x":5.5, "y":1},
32 {"label":"Y", "x":6.5, "y":1},
33 {"label":"U", "x":7.5, "y":1},
34 {"label":"I", "x":8.5, "y":1},
35 {"label":"O", "x":9.5, "y":1},
36 {"label":"P", "x":10.5, "y":1},
37 {"label":"{", "x":11.5, "y":1},
38 {"label":"}", "x":12.5, "y":1},
39 {"label":"Backspace", "x":13.5, "y":1, "w":1.5},
40 {"label":"PgUp", "x":15, "y":1},
41 {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
42 {"label":"A", "x":1.75, "y":2},
43 {"label":"S", "x":2.75, "y":2},
44 {"label":"D", "x":3.75, "y":2},
45 {"label":"F", "x":4.75, "y":2},
46 {"label":"G", "x":5.75, "y":2},
47 {"label":"H", "x":6.75, "y":2},
48 {"label":"J", "x":7.75, "y":2},
49 {"label":"K", "x":8.75, "y":2},
50 {"label":"L", "x":9.75, "y":2},
51 {"label":":", "x":10.75, "y":2},
52 {"label":"\"", "x":11.75, "y":2},
53 {"label":"Enter", "x":12.75, "y":2},
54 {"label":"Enter", "x":13.75, "y":2, "w":1.25},
55 {"label":"PgDn", "x":15, "y":2},
56 {"label":"Shift", "x":0, "y":3, "w":2.25},
57 {"label":"Z", "x":2.25, "y":3},
58 {"label":"X", "x":3.25, "y":3},
59 {"label":"C", "x":4.25, "y":3},
60 {"label":"V", "x":5.25, "y":3},
61 {"label":"B", "x":6.25, "y":3},
62 {"label":"N", "x":7.25, "y":3},
63 {"label":"M", "x":8.25, "y":3},
64 {"label":"<", "x":9.25, "y":3},
65 {"label":">", "x":10.25, "y":3},
66 {"label":"?", "x":11.25, "y":3},
67 {"label":"Shift", "x":12.25, "y":3, "w":1.75},
68 {"label":"Up", "x":14, "y":3},
69 {"label":"Fn", "x":15, "y":3},
70 {"label":"Ctrl", "x":0, "y":4, "w":1.25},
71 {"label":"Win", "x":1.25, "y":4, "w":1.25},
72 {"label":"Alt", "x":2.5, "y":4, "w":1.25},
73 {"x":3.75, "y":4, "w":6.25},
74 {"label":"Fn", "x":10, "y":4, "w":1.25},
75 {"label":"Menu", "x":11.25, "y":4, "w":1.25},
76 {"label":"Left", "x":13, "y":4},
77 {"label":"Down", "x":14, "y":4},
78 {"label":"Right", "x":15, "y":4}
79 ]
80 }
81 }
82}
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 @@
1/* Copyright 2019 marhalloweenvt
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19
20 [0] = LAYOUT( /* Base */
21 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,
22 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,
23 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,
24 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),
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RIGHT),
26 [1] = LAYOUT( /* FN */
27 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,
28 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,
29 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,
30 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,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT),
32
33};
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 @@
1/* Copyright 2019 marhalloweenvt
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "p65rgb.h"
18
19led_config_t g_led_config = { {
20 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 },
21 { 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17 },
22 { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 },
23 { 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51 },
24 { 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 }
25}, {
26 { 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 },
27 { 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 },
28 { 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 },
29 { 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 },
30 { 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 }
31}, {
32 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
33 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2,
34 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
35 2, 2, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2,
36 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2
37} };
38
39void suspend_power_down_kb(void)
40{
41 rgb_matrix_set_suspend_state(true);
42 suspend_power_down_user();
43}
44
45void suspend_wakeup_init_kb(void)
46{
47 rgb_matrix_set_suspend_state(false);
48 suspend_wakeup_init_user();
49}
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 @@
1/* Copyright 2019 marhalloweenvt
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21/* This a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29#define LAYOUT( \
30 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \
31 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, \
32 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, K2e, k2f, \
33 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3c, k3e, k3f, \
34 k40, k41, k42, k45, k49, k4a, k4c, k4e, k4f \
35) { \
36 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, KC_NO }, \
37 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, k1e, k1f, KC_NO }, \
38 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, K2e, k2f, KC_NO }, \
39 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, KC_NO, k3c, KC_NO, k3e, k3f, KC_NO }, \
40 { 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 }, \
41}
42
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 @@
1# p65rgb
2
3![p65rgb](https://i.imgur.com/Z3RfOXe.jpg)
4
5A replacement PCB for my E6.5 Keyboard
6
7* Keyboard Maintainer: [marhalloweenvt](https://github.com/marhalloweenvt)
8* Hardware Supported: p65rgb
9* Hardware Availability: p65rgb
10
11Make example for this keyboard (after setting up your build environment):
12
13 make handwired/p65rgb:default
14
15See 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 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = qmk-dfu
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = yes # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = no # Console for debug
21COMMAND_ENABLE = no # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = yes # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28RGB_MATRIX_ENABLE = WS2812 # Enable keyboard RGB backlight functionality with ws2812 driver
29MIDI_ENABLE = no # MIDI support
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
72#define RGBLIGHT_HUE_STEP 8 72#define RGBLIGHT_HUE_STEP 8
73#define RGBLIGHT_SAT_STEP 8 73#define RGBLIGHT_SAT_STEP 8
74#define RGBLIGHT_VAL_STEP 8 74#define RGBLIGHT_VAL_STEP 8
75#define RGBLIGHT_LIMIT_VAL 200
75#define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep 76#define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep
76#endif 77#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) {
42 led_set_user(usb_led); 42 led_set_user(usb_led);
43} 43}
44 44
45 45void eeconfig_init_kb(void) { // EEPROM is getting reset!
46 rgblight_enable(); // Enable RGB by default
47 rgblight_sethsv(0, 255, 128); // Set default HSV - red hue, full saturation, medium brightness
48 rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
49
50 eeconfig_update_kb(0);
51 eeconfig_init_user();
52}
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
14# Build Options 14# Build Options
15# change yes to no to disable 15# change yes to no to disable
16# 16#
17BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 17BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
18MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 18MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
19EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 19EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
20CONSOLE_ENABLE = no # Console for debug(+400) 20CONSOLE_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 @@
1#include QMK_KEYBOARD_H
2
3#define PGMOD LT(_NUM, KC_PGDN)
4#define TABMOD LT(_FN1, KC_TAB)
5#define SPCMOD LT(_FN1, KC_SPACE)
6#define ENTMOD LT(_FN2, KC_ENTER)
7#define ESCMOD LT(_NUM, KC_ESC)
8#define RSMOD LT(_FN1, KC_RSHIFT)
9#define CMDBSP MT(MOD_LGUI, KC_BSPC)
10#define ALTDEL MT(MOD_LALT, KC_DEL)
11#define CTRLSP MT(MOD_LCTL, KC_SPACE)
12#define BWORD LCTL(KC_BSPC)
13#define JUMPBACK LSFT(KC_TAB)
14#define LWORD LCTL(KC_LEFT)
15#define RWORD LCTL(KC_RIGHT)
16#define UNDO LCTL(KC_Z)
17#define NTAB LCTL(KC_T)
18#define CTAB LCTL(KC_W)
19#define XPANDR LCTL(LSFT(KC_X))
20#define TAB1 LCTL(KC_1)
21#define TAB2 LCTL(KC_2)
22#define TAB3 LCTL(KC_3)
23#define TAB4 LCTL(KC_4)
24#define RVOLU LCTL(KC_RBRC)
25#define RVOLD LCTL(KC_LBRC)
26
27enum layer_names {
28 _BASE,
29 _DEL,
30 _FN1,
31 _FN2,
32 _NUM,
33};
34
35enum custom_keycodes {
36 QWERTY = SAFE_RANGE,
37 CSPEAK,
38 PARADOWN,
39 PMERGE,
40 WREFRESH,
41 REMCAPS,
42 SPEAK1,
43 SPEAK2,
44 SPEAK3,
45 SPEAK4
46};
47
48bool process_record_user(uint16_t keycode, keyrecord_t *record) {
49switch (keycode) {
50 case CSPEAK:
51 if (record->event.pressed) {
52 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
53 }
54 break;
55 case SPEAK1:
56 if (record->event.pressed) {
57 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1)));
58 }
59 break;
60 case SPEAK2:
61 if (record->event.pressed) {
62 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2)));
63 }
64 break;
65 case SPEAK3:
66 if (record->event.pressed) {
67 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3)));
68 }
69 break;
70 case SPEAK4:
71 if (record->event.pressed) {
72 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4)));
73 }
74 break;
75 case PARADOWN:
76 if (record->event.pressed) {
77 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
78 }
79 break;
80 case PMERGE:
81 if (record->event.pressed) {
82 SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE));
83 }
84 break;
85 case WREFRESH:
86 if (record->event.pressed) {
87 SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE));
88 }
89 break;
90 case REMCAPS:
91 if (record->event.pressed) {
92 SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
93 }
94 break;
95};
96return true;
97};
98
99const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
100
101[_BASE] = LAYOUT_ortho_4x12(
102 KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB ,
103 JUMPBACK, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
104 KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
105 CMDBSP , ALTDEL , KC_NO , CTRLSP , TABMOD , PGMOD , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL
106 ),
107
108[_FN1] = LAYOUT_ortho_4x12(
109 _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB ,
110 KC_CAPS, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO ,
111 _______, _______, XPANDR , _______, _______, _______, _______, PMERGE , KC_DOWN, _______, _______, _______,
112 WREFRESH,_______, _______, _______, LWORD , RWORD , RVOLD , RVOLU , _______, _______, _______, _______
113 ),
114
115[_FN2] = LAYOUT_ortho_4x12(
116 _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______,
117 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
118 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
119 _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, _______, _______, _______, _______
120 ),
121
122[_DEL] = LAYOUT_ortho_4x12(
123 _______, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB ,
124 REMCAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______,
125 _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
126 _______, _______, _______, KC_DEL , KC_BSPC, BWORD , _______, _______, _______, _______, _______, _______
127 ),
128
129[_NUM] = LAYOUT_ortho_4x12(
130 _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
131 KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
132 _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
133 _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_0 , _______, _______, _______
134 )
135};
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 @@
1#include QMK_KEYBOARD_H
2
3#define PGMOD LT(_MOD, KC_PGDN)
4#define SPCMOD LT(_MOD, KC_SPACE)
5#define VOLMOD LT(_MOD, KC__MUTE)
6#define CMDBSP MT(MOD_LGUI, KC_BSPC)
7#define ALTDEL MT(MOD_LALT, KC_DEL)
8#define BWORD LCTL(KC_BSPC)
9#define LWORD LCTL(KC_LEFT)
10#define RWORD LCTL(KC_RIGHT)
11#define JUMPBACK LSFT(KC_TAB)
12#define UNDO LCTL(KC_Z)
13#define XPANDR LCTL(LSFT(KC_X))
14#define NTAB LCTL(KC_T)
15#define CTAB LCTL(KC_W)
16#define XPANDR LCTL(LSFT(KC_X))
17
18enum layer_names {
19 _BASE,
20 _REV,
21 _MOD,
22 _DEL,
23};
24
25enum custom_keycodes {
26 LAUNCHCLOCK = SAFE_RANGE,
27 CSPEAK,
28 SPEAK1,
29 SPEAK2,
30 SPEAK3,
31 SPEAK4,
32 PARADOWN,
33 WREFRESH,
34 PMERGE,
35 REMCAPS,
36};
37
38bool process_record_user(uint16_t keycode, keyrecord_t *record) {
39switch (keycode) {
40 case CSPEAK:
41 if (record->event.pressed) {
42 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
43 break;
44 }
45 case SPEAK1:
46 if (record->event.pressed) {
47 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1)));
48 break;
49 }
50 case SPEAK2:
51 if (record->event.pressed) {
52 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2)));
53 }
54 break;
55 case SPEAK3:
56 if (record->event.pressed) {
57 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3)));
58 }
59 break;
60 case SPEAK4:
61 if (record->event.pressed) {
62 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4)));
63 }
64 break;
65 case PARADOWN:
66 if (record->event.pressed) {
67 SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
68 }
69 break;
70 case PMERGE:
71 if (record->event.pressed) {
72 SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE));
73 }
74 break;
75 case WREFRESH:
76 if (record->event.pressed) {
77 SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE));
78 }
79 break;
80 case REMCAPS:
81 if (record->event.pressed) {
82 SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
83 }
84 break;
85 };
86 return true;
87};
88
89const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
90[_BASE] = LAYOUT_split_space(
91 //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
92 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,
93 //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
94 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,
95 //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
96 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,
97 //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
98 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,
99 //├──────────┬───────┴──┬─────┴────┬───┴────────┴─────┬───┴────────┴───┬─────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
100 CMDBSP, ALTDEL, KC_LCTRL, KC_SPACE, SPCMOD, SPCMOD, MO(_DEL), KC_LCTL, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT
101 //└──────────┴──────────┴──────────┴──────────────────┴────────────────┴───────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
102 ),
103
104[_REV] = LAYOUT_split_space(
105 //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
106 _______, _______, _______, _______, _______, _______,_______, _______,_______, _______, _______, _______, _______, _______, _______, _______,
107 //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
108 KC_LEFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,KC_HOME, KC_END, KC_RIGHT, _______, _______,
109 //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
110 JUMPBACK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
111 //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
112 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CSPEAK, _______,
113 //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
114 _______, _______, _______, KC_TAB, PGMOD, _______, _______, _______, _______, _______, _______, _______
115 //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
116 ),
117
118[_MOD] = LAYOUT_split_space(
119 //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
120 RESET, _______, _______, _______, _______, _______,_______, _______,KC_F8 , _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU,
121 //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
122 _______, _______, WREFRESH,_______, DF(_REV), _______, _______, UNDO, _______, _______, _______, _______, _______, _______, _______, _______,
123 //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
124 KC_CAPS, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP, KC_RIGHT, KC_END, _______, PARADOWN,
125 //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
126 _______, _______, XPANDR, _______, _______, _______, _______, PMERGE, KC_DOWN, _______, _______, _______, KC_F1 ,
127 //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
128 _______, _______, _______, LWORD, RWORD, LWORD, RWORD, _______, _______, _______, KC_F2 , _______
129 //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
130 ),
131
132[_DEL] = LAYOUT_split_space(
133 //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
134 _______, SPEAK1, SPEAK2, SPEAK3, SPEAK4, _______,_______, _______,_______, _______, _______, _______, _______, _______, _______, _______,
135 //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
136 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
137 //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
138 REMCAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
139 //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
140 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
141 //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
142 _______, _______, KC_DEL, KC_BSPC, BWORD, _______, _______, _______, _______, _______, _______, _______
143 //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
144 ),
145};
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 @@
1#Rossman360's Tragicforce68 Layout
2
3This 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 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6Copyright 2019 Gergely Peidl
7
8This program is free software: you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation, either version 2 of the License, or
11(at your option) any later version.
12
13This program is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with this program. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#pragma once
23
24#define AUTO_SHIFT_TIMEOUT 200
25#define NO_AUTO_SHIFT_NUMERIC
26
27// RGB lighting
28#define RGBLIGHT_SLEEP
29#undef RGBLED_NUM
30#define RGBLED_NUM 32
31
32#define RGBLIGHT_EFFECT_BREATHING
33#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
34#define RGBLIGHT_EFFECT_RAINBOW_MOOD
35#define RGBLIGHT_EFFECT_STATIC_GRADIENT
36
37#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 @@
1#include QMK_KEYBOARD_H
2
3enum layer_names {
4 _QWERTY,
5 _LOWER,
6 _RAISE,
7 _NUMPAD,
8 _GAMING,
9 _ADJUST
10};
11
12enum custom_keycodes {
13 NUMPAD = SAFE_RANGE,
14 SLIGHTLY,
15 SMILE,
16 JOY,
17 RELAXED,
18 HEART,
19 SAD,
20 CRY,
21 NETRURAL,
22 SCREAM,
23 THUMBSUP
24};
25
26enum td_extra_keys {
27 U,
28 O,
29 NEXTPREV,
30 SLASH
31};
32
33typedef struct {
34 bool is_press_action;
35 int state;
36} tap;
37
38enum {
39 SINGLE_TAP = 1,
40 SINGLE_HOLD = 2,
41 DOUBLE_TAP = 3,
42 DOUBLE_HOLD = 4,
43 DOUBLE_SINGLE_TAP = 5, //send two single taps
44 TRIPLE_TAP = 6,
45 TRIPLE_HOLD = 7
46};
47
48#define LOWER MO(_LOWER)
49#define RAISE MO(_RAISE)
50
51int cur_dance (qk_tap_dance_state_t *state);
52
53void u_finished (qk_tap_dance_state_t *state, void *user_data);
54void o_finished (qk_tap_dance_state_t *state, void *user_data);
55
56uint8_t rgb_mode = RGBLIGHT_MODE_BREATHING + 1;
57
58const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59/* Qwerty
60 * ,-----------------------------------------. ,-----------------------------------------.
61 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
62 * |------+------+------+------+------+------| |------+------+------+------+------+------|
63 * | Esc | A | S | D | F | G | | H | J | K | L | ; | ' |
64 * |------+------+------+------+------+------| |------+------+------+------+------+------|
65 * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter |
66 * |------+------+------+------+------+------| |------+------+------+------+------+------|
67 * | Ctrl | ALT |Numpad| GUI |Lower | Space| | Bksp |Raise | Left | Down | Up |Right |
68 * `-----------------------------------------' `-----------------------------------------'
69 */
70[_QWERTY] = LAYOUT_ortho_4x12(
71 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINUS,
72 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
73 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(SLASH), KC_ENT,
74 KC_LCTL, KC_LALT, MO(_NUMPAD), KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
75),
76
77/* Lower
78 * ,-----------------------------------------. ,-----------------------------------------.
79 * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | = |
80 * |------+------+------+------+------+------| |------+------+------+------+------+------|
81 * | :) | :D | :'D | :$ | <3 | | | Home | Pgup | | { | } | | |
82 * |------+------+------+------+------+------| |------+------+------+------+------+------|
83 * | :( | :'( | :| | :O | +1 | | | End |Pgdown| | [ | ] |PrntSc|
84 * |------+------+------+------+------+------| |------+------+------+------+------+------|
85 * | | | | | |Insert| | Del | | Next | Vol- | Vol+ | Play |
86 * `-----------------------------------------' `-----------------------------------------'
87 */
88[_LOWER] = LAYOUT_ortho_4x12(
89 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL,
90 SLIGHTLY, SMILE, JOY, RELAXED, HEART, _______, KC_HOME, KC_PGUP, _______, KC_LCBR, KC_RCBR, KC_PIPE,
91 SAD, CRY, NETRURAL, SCREAM, THUMBSUP, _______, KC_END, KC_PGDOWN,_______, KC_LBRC, KC_RBRC, KC_PSCREEN,
92 _______, _______, _______, _______, _______, KC_INSERT, KC_DEL, _______, TD(NEXTPREV), KC_VOLD, KC_VOLU, KC_MPLY
93),
94
95/* Raise
96 * ,-----------------------------------------. ,-----------------------------------------.
97 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
98 * |------+------+------+------+------+------| |------+------+------+------+------+------|
99 * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
100 * |------+------+------+------+------+------| |------+------+------+------+------+------|
101 * | | | | | | | | | | | | | |
102 * |------+------+------+------+------+------| |------+------+------+------+------+------|
103 * | | | | | | | | | | | | | |
104 * `-----------------------------------------' `-----------------------------------------'
105 */
106[_RAISE] = LAYOUT_ortho_4x12(
107 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
108 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
109 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
111),
112
113/* Adjust (Lower + Raise)
114 * ,-----------------------------------------. ,-----------------------------------------.
115 * | Reset|EEPRST| | EE | | | | | UE | IE | OE | | |
116 * |------+------+------+------+------+------| |------+------+------+------+------+------|
117 * | | AE | | | | | | | | | | | |
118 * |------+------+------+------+------+------| |------+------+------+------+------+------|
119 * | | | | | | | | | | | | | |
120 * |------+------+------+------+------+------| |------+------+------+------+------+------|
121 * | TGLAS| | | | | | | | | | | |GAMING|
122 * `-----------------------------------------' `-----------------------------------------'
123 */
124[_ADJUST] = LAYOUT_ortho_4x12(
125 RESET, EEP_RST, _______, RALT(KC_SCLN), _______, _______, _______, TD(U), RALT(KC_Z), TD(O), _______, _______,
126 _______, RALT(KC_QUOT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
127 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
128 KC_ASTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_GAMING)
129),
130
131/* Numpad
132 * ,-----------------------------------------. ,-----------------------------------------.
133 * | | | | | | | | 7 | 8 | 9 | | | |
134 * |------+------+------+------+------+------| |------+------+------+------+------+------|
135 * | | | | | | | | 4 | 5 | 6 | | | |
136 * |------+------+------+------+------+------| |------+------+------+------+------+------|
137 * | VAI | SAI | HUI | | | | | 3 | 2 | 1 | | | |
138 * |------+------+------+------+------+------| |------+------+------+------+------+------|
139 * | | | | |RGBMOD|RGBTGL| | Calc | 0 | + | | | |
140 * `-----------------------------------------' `-----------------------------------------'
141 */
142[_NUMPAD] = LAYOUT_ortho_4x12(
143 _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______,
144 _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______,
145 RGB_VAI, RGB_SAI, RGB_HUI, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______,
146 _______, _______, _______, _______, RGB_MOD, RGB_TOG, KC_CALC, KC_0, KC_PPLS, _______, _______, _______
147),
148
149/* Gaming
150 * ,-----------------------------------------. ,-----------------------------------------.
151 * | | | | | | | | | | | | | |
152 * |------+------+------+------+------+------| |------+------+------+------+------+------|
153 * | | | | | | | | | | | | | |
154 * |------+------+------+------+------+------| |------+------+------+------+------+------|
155 * | | | | | | | | | | | | | |
156 * |------+------+------+------+------+------| |------+------+------+------+------+------|
157 * | | | | | RAISE| | | | LOWER| | | | |
158 * `-----------------------------------------' `-----------------------------------------'
159 */
160[_GAMING] = LAYOUT_ortho_4x12(
161 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
162 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
163 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
164 _______, _______, _______, _______, RAISE, _______, _______, LOWER, _______, _______, _______, _______
165)};
166
167
168bool process_record_user(uint16_t keycode, keyrecord_t *record) {
169 switch(keycode) {
170 case RGB_VAI:
171 if(record->event.pressed) {
172 rgblight_increase_val_noeeprom();
173 }
174 break;
175 case RGB_VAD:
176 if(record->event.pressed) {
177 rgblight_decrease_val_noeeprom();
178 }
179 break;
180 case RGB_SAI:
181 if(record->event.pressed) {
182 rgblight_increase_sat_noeeprom();
183 }
184 break;
185 case RGB_SAD:
186 if(record->event.pressed) {
187 rgblight_decrease_sat_noeeprom();
188 }
189 break;
190 case RGB_HUI:
191 if(record->event.pressed) {
192 rgblight_increase_hue_noeeprom();
193 }
194 break;
195 case RGB_HUD:
196 if(record->event.pressed) {
197 rgblight_decrease_hue_noeeprom();
198 }
199 break;
200 case RGB_TOG:
201 if(record->event.pressed) {
202 rgblight_toggle_noeeprom();
203 }
204 break;
205 case RGB_MOD:
206 if(record->event.pressed) {
207 rgblight_step_noeeprom();
208 rgb_mode = rgblight_get_mode();
209 }
210 break;
211 case RGB_RMOD:
212 if(record->event.pressed) {
213 rgblight_step_reverse_noeeprom();
214 rgb_mode = rgblight_get_mode();
215 }
216 break;
217
218 case SLIGHTLY:
219 if(record->event.pressed) {
220 SEND_STRING(":slightly_smiling_face:");
221 }
222 break;
223 case SMILE:
224 if(record->event.pressed) {
225 SEND_STRING(":smile:");
226 }
227 break;
228 case JOY:
229 if(record->event.pressed) {
230 SEND_STRING(":joy:");
231 }
232 break;
233 case RELAXED:
234 if(record->event.pressed) {
235 SEND_STRING(":relaxed:");
236 }
237 break;
238 case HEART:
239 if(record->event.pressed) {
240 SEND_STRING(":heart:");
241 }
242 break;
243 case SAD:
244 if(record->event.pressed) {
245 SEND_STRING(":white_frowning_face:");
246 }
247 break;
248 case CRY:
249 if(record->event.pressed) {
250 SEND_STRING(":cry:");
251 }
252 break;
253 case NETRURAL:
254 if(record->event.pressed) {
255 SEND_STRING(":neutral_face:");
256 }
257 break;
258 case SCREAM:
259 if(record->event.pressed) {
260 SEND_STRING(":scream:");
261 }
262 break;
263 case THUMBSUP:
264 if(record->event.pressed) {
265 SEND_STRING(":+1:");
266 }
267 break;
268 default:
269 return true;
270 }
271 return false;
272}
273
274layer_state_t layer_state_set_user(layer_state_t state) {
275 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
276 writePin(B0, !(state & (1UL << (_NUMPAD))));
277
278 switch(biton32(state)) {
279 case _RAISE:
280 rgblight_setrgb_at(255, 255, 255, RGBLED_NUM / 2);
281 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
282 break;
283 case _LOWER:
284 rgblight_setrgb_at(255, 255, 255, RGBLED_NUM / 2 - 1);
285 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
286 break;
287 case _NUMPAD:
288 rgblight_setrgb_at(0,255,0, 0);
289 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
290 break;
291 case _GAMING:
292 rgb_mode = RGBLIGHT_MODE_RAINBOW_SWIRL + 5;
293 autoshift_disable();
294 break;
295 default:
296 rgb_mode = RGBLIGHT_MODE_BREATHING + 1;
297 rgblight_mode_noeeprom(rgb_mode);
298 autoshift_enable();
299 break;
300 }
301 return state;
302}
303
304void led_set_user(uint8_t usb_led) {
305 rgblight_sethsv_noeeprom(0, 255, 255);
306 rgblight_mode_noeeprom(rgb_mode);
307}
308
309int cur_dance (qk_tap_dance_state_t *state) {
310 if (state->count == 1) {
311 if (state->interrupted || !state->pressed) return SINGLE_TAP;
312 //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
313 else return SINGLE_HOLD;
314 }
315 else if (state->count == 2) {
316 /*
317 * DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
318 * action when hitting 'pp'. Suggested use case for this return value is when you want to send two
319 * keystrokes of the key, and not the 'double tap' action/macro.
320 */
321 if (state->interrupted) return DOUBLE_SINGLE_TAP;
322 else if (state->pressed) return DOUBLE_HOLD;
323 else return DOUBLE_TAP;
324 }
325 //Assumes no one is trying to type the same letter three times (at least not quickly).
326 //If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
327 //an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
328 if (state->count == 3) {
329 if (state->interrupted || !state->pressed) return TRIPLE_TAP;
330 else return TRIPLE_HOLD;
331 }
332 else return 8; //magic number. At some point this method will expand to work for more presses
333}
334
335static tap utap_state = {
336 .is_press_action = true,
337 .state = 0
338};
339
340static tap otap_state = {
341 .is_press_action = true,
342 .state = 0
343};
344
345void u_finished (qk_tap_dance_state_t *state, void *user_data) {
346 utap_state.state = cur_dance(state);
347 switch(utap_state.state) {
348 case SINGLE_TAP: SEND_STRING(SS_RALT("]")); break;
349 case DOUBLE_TAP: SEND_STRING(SS_RALT("-")); break;
350 case TRIPLE_TAP: SEND_STRING(SS_RALT("\\")); break;
351 }
352}
353
354void o_finished (qk_tap_dance_state_t *state, void *user_data) {
355 otap_state.state = cur_dance(state);
356 switch(otap_state.state) {
357 case SINGLE_TAP: SEND_STRING(SS_RALT("=")); break;
358 case DOUBLE_TAP: SEND_STRING(SS_RALT("0")); break;
359 case TRIPLE_TAP: SEND_STRING(SS_RALT("[")); break;
360 }
361}
362
363qk_tap_dance_action_t tap_dance_actions[] = {
364 [U] = ACTION_TAP_DANCE_FN(u_finished),
365 [O] = ACTION_TAP_DANCE_FN(o_finished),
366 [NEXTPREV] = ACTION_TAP_DANCE_DOUBLE(KC_MNXT, KC_MPRV),
367 [SLASH] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_BSLS)
368 };
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 @@
1# Personal Layout
2
3[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 @@
1AUTO_SHIFT_ENABLE = yes
2AUTO_SHIFT_MODIFIERS = no
3RGBLIGHT_ENABLE = yes
4TAP_DANCE_ENABLE = yes
5
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 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23 // place overrides here
24#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
25 SONG(COLEMAK_SOUND), \
26 SONG(DVORAK_SOUND) \
27 }
28
29/* Use I2C or Serial, not both */
30#define USE_SERIAL
31// #define USE_I2C
32
33/* Select hand configuration */
34#define MASTER_LEFT
35// #define MASTER_RIGHT
36// #define EE_HANDS
37
38#undef RGBLED_NUM
39#define RGBLIGHT_ANIMATIONS
40#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 @@
1#include QMK_KEYBOARD_H
2#include "hvp.c"
3
4// Each layer gets a name for readability, which is then used in the keymap matrix below.
5// The underscores don't mean anything - you can have a layer called STUFF or any other name.
6// Layer names don't all need to be of the same length, obviously, and you can also skip them
7// entirely and just use numbers.
8#define _QWERTY 0
9#define _LOWER 3
10#define _RAISE 4
11#define _NAVI 5
12#define _ADJUST 6
13
14enum custom_keycodes {
15 QWERTY = SAFE_RANGE
16};
17
18
19#define LOWER MO(_LOWER)
20#define RAISE MO(_RAISE)
21#define ADJUST MO(_ADJUST)
22
23#define LT3_ESC LT(5, KC_ESC)
24#define LT4_TAB LT(6, KC_TAB)
25#define F_NAVI LT(5, KC_F)
26
27
28
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31
32[_QWERTY] = LAYOUT_ortho_4x12(
33 LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
34 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),
35 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT ,
36 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
37),
38
39[_RAISE] = LAYOUT_ortho_4x12( /* Right */
40 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
41 KC_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
42 _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
43 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
44),
45
46[_LOWER] = LAYOUT_ortho_4x12( /* Left */
47 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,
48 KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
49 _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
50 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
51),
52
53[_NAVI] = LAYOUT_ortho_4x12( /* Esc */
54 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
55 _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
56 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
57 _______, _______, _______, _______, _______,KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
58),
59
60[_ADJUST] = LAYOUT_ortho_4x12( /* Tab */
61 _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
62 _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
63 KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
64 RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______
65)};
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 @@
1Keyboard: Lets split!
2Keys: 48key ortho 40% keyboard
3Layout: Swedish characters on main layer using tapdance. Built for eurkey keyboard layout.
4Flash instructions: Flash using avrdude, will req the hvp user space to compile.
5
6> make lets_split/rev2:hvp:avrdude
7
8Links:
9Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/lets_split
10Eurkey 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 @@
1RGBLIGHT_ENABLE = yes
2TAP_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 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23//#define USE_MATRIX_I2C
24
25/* Select hand configuration */
26
27#define MASTER_LEFT
28// #define MASTER_RIGHT
29// #define EE_HANDS
30
31#define SSD1306OLED
32
33#define USE_SERIAL_PD2
34
35#define TAPPING_TERM 100
36#undef TAPPING_TERM
37#define TAPPING_TERM 150
38
39#define PERMISSIVE_HOLD
40#define IGNORE_MOD_TAP_INTERRUPT
41
42#undef RGBLED_NUM
43#define RGBLIGHT_ANIMATIONS
44#define RGBLED_NUM 27
45#define RGBLIGHT_LIMIT_VAL 120
46#define RGBLIGHT_HUE_STEP 10
47#define RGBLIGHT_SAT_STEP 17
48#define RGBLIGHT_VAL_STEP 17
49
50// Underglow
51/*
52#undef RGBLED_NUM
53#define RGBLED_NUM 14 // Number of LEDs
54#define RGBLIGHT_ANIMATIONS
55#define RGBLIGHT_SLEEP
56*/ \ 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 @@
1#include QMK_KEYBOARD_H
2#include "hvp.c"
3
4#ifdef PROTOCOL_LUFA
5 #include "lufa.h"
6 #include "split_util.h"
7#endif
8#ifdef SSD1306OLED
9 #include "ssd1306.h"
10#endif
11
12#ifdef RGBLIGHT_ENABLE
13//Following line allows macro to read current RGB settings
14extern rgblight_config_t rgblight_config;
15#endif
16
17extern uint8_t is_master;
18
19#define _QWERTY 0
20#define _LOWER 1
21#define _RAISE 2
22#define _ADJUST 3
23#define _NAVI 4
24
25enum custom_keycodes {
26 QWERTY = SAFE_RANGE,
27 LOWER,
28 RAISE,
29 NAVI,
30 ADJUST
31};
32
33
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35
36 [_QWERTY] = LAYOUT(
37 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,
38 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,
39 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),
40 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),
41 KC_LALT, KC_LGUI, LOWER,LT(1,KC_SPC), LT(2,KC_SPC), RAISE, KC_RALT, KC_RGUI
42),
43[_RAISE] = LAYOUT( /* Right */
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
46 KC_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
47 _______, _______, _______, _______, _______, _______, MT(MOD_LCTL,KC_LBRC), MT(MOD_LALT,KC_RBRC), _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
48 _______, _______, _______, _______, _______, _______, _______, _______
49),
50
51[_LOWER] = LAYOUT( /* Left */
52 _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,
53 KC_TILD,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
54 KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
55 _______, _______, _______, _______, _______, _______, MT(MOD_LCTL,KC_LCBR), MT(MOD_LALT,KC_RCBR), _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
56 _______, _______, _______, _______, _______, _______, _______, _______
57),
58
59 [_NAVI] = LAYOUT( /* Tab */
60 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
62 _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
63 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
64 _______, KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_VOLU, _______
65 ),
66
67 [_ADJUST] = LAYOUT( /* Esc */
68 _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
69 _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
70 KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
71 RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
72 _______, KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_VOLU, _______
73 )
74};
75
76int RGB_current_mode;
77
78// Setting ADJUST layer RGB back to default
79void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
80
81}
82
83void matrix_init_user(void) {
84 #ifdef RGBLIGHT_ENABLE
85 RGB_current_mode = rgblight_config.mode;
86 #endif
87 //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
88 #ifdef SSD1306OLED
89 iota_gfx_init(!has_usb()); // turns on the display
90 #endif
91}
92
93//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
94#ifdef SSD1306OLED
95
96// When add source files to SRC in rules.mk, you can use functions.
97const char *read_layer_state(void);
98const char *read_logo(void);
99void set_keylog(uint16_t keycode, keyrecord_t *record);
100const char *read_keylog(void);
101const char *read_keylogs(void);
102
103void matrix_scan_user(void) {
104 iota_gfx_task();
105}
106
107void matrix_render_user(struct CharacterMatrix *matrix) {
108 if (is_master) {
109 // If you want to change the display of OLED, you need to change here
110 matrix_write_ln(matrix, read_layer_state());
111 matrix_write_ln(matrix, read_keylog());
112 matrix_write_ln(matrix, read_keylogs());
113 //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
114 //matrix_write_ln(matrix, read_host_led_state());
115 //matrix_write_ln(matrix, read_timelog());
116 } else {
117 matrix_write(matrix, read_logo());
118 }
119}
120
121void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
122 if (memcmp(dest->display, source->display, sizeof(dest->display))) {
123 memcpy(dest->display, source->display, sizeof(dest->display));
124 dest->dirty = true;
125 }
126}
127
128void iota_gfx_task_user(void) {
129 struct CharacterMatrix matrix;
130 matrix_clear(&matrix);
131 matrix_render_user(&matrix);
132 matrix_update(&display, &matrix);
133}
134#endif//SSD1306OLED
135
136bool process_record_user(uint16_t keycode, keyrecord_t *record) {
137 if (record->event.pressed) {
138#ifdef SSD1306OLED
139 set_keylog(keycode, record);
140#endif
141 // set_timelog();
142 }
143
144 switch (keycode) {
145 case QWERTY:
146 if (record->event.pressed) {
147 set_single_persistent_default_layer(_QWERTY);
148 }
149 return false;
150 break;
151 case LOWER:
152 if (record->event.pressed) {
153 layer_on(_LOWER);
154 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
155 } else {
156 layer_off(_LOWER);
157 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
158 }
159 return false;
160 break;
161 case RAISE:
162 if (record->event.pressed) {
163 layer_on(_RAISE);
164 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
165 } else {
166 layer_off(_RAISE);
167 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
168 }
169 return false;
170 break;
171 case ADJUST:
172 if (record->event.pressed) {
173 layer_on(_ADJUST);
174 } else {
175 layer_off(_ADJUST);
176 }
177 return false;
178 break;
179 }
180 return true;
181} \ 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 @@
1Keyboard: Lily58
2Keys: Lily58 is 6×4+5keys column-staggered split keyboard.
3Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
4Flash instructions: Flash using dfu, will req the hvp user space to compile.
5
6> make lily58:hvp:dfu
7
8Links:
9Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58
10Eurkey 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 @@
1EXTRAKEY_ENABLE = yes
2RGBLIGHT_ENABLE = yes
3TAP_DANCE_ENABLE = yes
4
5# If you want to change the display of OLED, you need to change here
6SRC += ./lib/glcdfont.c \
7 ./lib/rgb_state_reader.c \
8 ./lib/layer_state_reader.c \
9 ./lib/logo_reader.c \
10 ./lib/keylogger.c \
11 # ./lib/mode_icon_reader.c \
12 # ./lib/host_led_state_reader.c \
13 # ./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
28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
30 30
31# custom matrix setup 31SRC = backlight.c
32CUSTOM_MATRIX = yes
33SRC = matrix.c 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 @@
1#pragma once
2#define TAPPING_TERM 150
3#define IGNORE_MOD_TAP_INTERRUPT
4#define PERMISSIVE_HOLD
5
6#ifdef AUDIO_ENABLE
7# define STARTUP_SONG SONG(PLANCK_SOUND)
8// #define STARTUP_SONG SONG(NO_SOUND)
9
10# define DEFAULT_LAYER_SONGS \
11 { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
12#endif
13
14/*
15 * MIDI options
16 */
17
18/* Prevent use of disabled MIDI features in the keymap */
19//#define MIDI_ENABLE_STRICT 1
20
21/* enable basic MIDI features:
22 - MIDI notes can be sent when in Music mode is on
23*/
24
25#define MIDI_BASIC
26
27/* enable advanced MIDI features:
28 - MIDI notes can be added to the keymap
29 - Octave shift and transpose
30 - Virtual sustain, portamento, and modulation wheel
31 - etc.
32*/
33//#define MIDI_ADVANCED
34
35/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
36//#define MIDI_TONE_KEYCODE_OCTAVES 2
37
38// Most tactile encoders have detents every 4 stages
39#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 @@
1/* Copyright 2015-2017 Jack Humbert
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include "hvp.c"
17#include QMK_KEYBOARD_H
18#include "muse.h"
19
20enum planck_layers {
21 _QWERTY,
22 _LOWER,
23 _RAISE,
24 _NAVI,
25 _ADJUST
26};
27
28enum planck_keycodes {
29 QWERTY = SAFE_RANGE
30};
31
32#define _QWERTY 0
33#define _RAISE 1
34#define _LOWER 2
35#define _NAVI 3
36#define _ADJUST 5
37
38#define LT3_ESC LT(3, KC_ESC)
39#define LT4_TAB LT(5, KC_TAB)
40
41#define LOWER MO(_LOWER)
42#define RAISE MO(_RAISE)
43
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45
46[_QWERTY] = LAYOUT_planck_grid(
47 LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
48 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),
49 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT,
50 KC_LCTL, KC_APP, KC_LGUI, KC_LALT, MO(2), KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
51),
52
53[_RAISE] = LAYOUT_planck_grid( /* Right */
54 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
55 KC_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
56 _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
57 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
58),
59
60[_LOWER] = LAYOUT_planck_grid( /* Left */
61 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,
62 KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
63 _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
64 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
65),
66
67[_NAVI] = LAYOUT_planck_grid( /* Esc */
68 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
69 _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
70 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
71 _______, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
72),
73
74[_ADJUST] = LAYOUT_planck_grid( /* Tab */
75 _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
76 _______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, KC_4, KC_5, KC_6, _______, _______,
77 KC_PSCR, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_0, KC_1, KC_2, KC_3, _______,
78 RESET, _______, TERM_ON, TERM_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, DEBUG
79)};
80
81#ifdef AUDIO_ENABLE
82 float plover_song[][2] = SONG(PLOVER_SOUND);
83 float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
84#endif
85
86bool muse_mode = false;
87uint8_t last_muse_note = 0;
88uint16_t muse_counter = 0;
89uint8_t muse_offset = 70;
90uint16_t muse_tempo = 50;
91
92void encoder_update(bool clockwise) {
93 if (muse_mode) {
94 if (IS_LAYER_ON(_RAISE)) {
95 if (clockwise) {
96 muse_offset++;
97 } else {
98 muse_offset--;
99 }
100 } else {
101 if (clockwise) {
102 muse_tempo+=1;
103 } else {
104 muse_tempo-=1;
105 }
106 }
107 } else {
108 if (clockwise) {
109 #ifdef MOUSEKEY_ENABLE
110 tap_code(KC_MS_WH_DOWN);
111 #else
112 tap_code(KC_PGDN);
113 #endif
114 } else {
115 #ifdef MOUSEKEY_ENABLE
116 tap_code(KC_MS_WH_UP);
117 #else
118 tap_code(KC_PGUP);
119 #endif
120 }
121 }
122}
123
124void dip_switch_update_user(uint8_t index, bool active) {
125 switch (index) {
126 case 0: {
127#ifdef AUDIO_ENABLE
128 static bool play_sound = false;
129#endif
130 if (active) {
131#ifdef AUDIO_ENABLE
132 if (play_sound) { PLAY_SONG(plover_song); }
133#endif
134 layer_on(_ADJUST);
135 } else {
136#ifdef AUDIO_ENABLE
137 if (play_sound) { PLAY_SONG(plover_gb_song); }
138#endif
139 layer_off(_ADJUST);
140 }
141#ifdef AUDIO_ENABLE
142 play_sound = true;
143#endif
144 break;
145 }
146 case 1:
147 if (active) {
148 muse_mode = true;
149 } else {
150 muse_mode = false;
151 }
152 }
153}
154
155void matrix_scan_user(void) {
156#ifdef AUDIO_ENABLE
157 if (muse_mode) {
158 if (muse_counter == 0) {
159 uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
160 if (muse_note != last_muse_note) {
161 stop_note(compute_freq_for_midi_note(last_muse_note));
162 play_note(compute_freq_for_midi_note(muse_note), 0xF);
163 last_muse_note = muse_note;
164 }
165 }
166 muse_counter = (muse_counter + 1) % muse_tempo;
167 } else {
168 if (muse_counter) {
169 stop_all_notes();
170 muse_counter = 0;
171 }
172 }
173#endif
174}
175
176bool music_mask_user(uint16_t keycode) {
177 switch (keycode) {
178 case RAISE:
179 case LOWER:
180 return false;
181 default:
182 return true;
183 }
184}
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 @@
1Keyboard: Planck rev6
2Keys: 40% (12x4) ortholinear keyboard
3Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
4Flash instructions: Flash using avrdude, will req the hvp user space to compile.
5
6> make planck/rev6:hvp:dfu-util
7
8Links:
9Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck
10Eurkey 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 @@
1SRC += muse.c
2
3RGBLIGHT_ENABLE = no
4TAP_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] = {
107 * ,------------------------------------------------. ,------------------------------------------------. 107 * ,------------------------------------------------. ,------------------------------------------------.
108 * | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 | 108 * | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 |
109 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 109 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
110 * | | SAD | VAI | SAI | RESET| | | | | | | | | | | 110 * | | SAD | VAI | SAI | RESET| | | | | | P7 | P8 | P9 | | |
111 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 111 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
112 * | | HUD | VAD | HUI |RGBRST| | | | | |QWERTY|COLEMK| | | | 112 * | | HUD | VAD | HUI |RGBRST| | | | | | P4 | P5 | P6 | | |
113 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 113 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
114 * | | SPD | | SPI | | | | | | | |RGBTOG| HUI | SAI | VAI | 114 * | | SPD | | SPI | | | | | | | P1 | P2 | P3 | | |
115 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 115 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
116 * | | | |RGBMOD(| | | | | | | |RGBRMOD| HUD | SAD | VAD | 116 * | | | |RGBMOD| | | | | | | P0 | PDOT | NLCK |QWERTY|COLEMK|
117 * `------+------+------+------+------+------+------| |------+------+------+------+------+------+------' 117 * `------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
118 * | | | | | | 118 * | | | | | |
119 * `-------------' `-------------' 119 * `-------------' `-------------'
@@ -121,10 +121,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
121 121
122 [_ADJ] = LAYOUT( \ 122 [_ADJ] = LAYOUT( \
123 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ 123 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
124 _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 124 _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, \
125 _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______, \ 125 _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, \
126 _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, RGB_SPI, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ 126 _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, \
127 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, \ 127 _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NLCK, QWERTY, COLEMAK, \
128 _______, _______, _______, _______ \ 128 _______, _______, _______, _______ \
129 ) 129 )
130}; 130};
@@ -301,7 +301,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
301oled_rotation_t oled_init_user(oled_rotation_t rotation) { 301oled_rotation_t oled_init_user(oled_rotation_t rotation) {
302 if (is_keyboard_master()) 302 if (is_keyboard_master())
303 return OLED_ROTATION_270; 303 return OLED_ROTATION_270;
304 return rotation; 304 return OLED_ROTATION_180;
305} 305}
306 306
307static void render_logo(void) { 307static 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 @@
57 * ,------------------------------------------------. ,------------------------------------------------. 57 * ,------------------------------------------------. ,------------------------------------------------.
58 * | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 | 58 * | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 |
59 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 59 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
60 * | | SAD | VAI | SAI | RESET| | | | | | | | | | | 60 * | | SAD | VAI | SAI | RESET| | | | | | P7 | P8 | P9 | | |
61 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------| 61 * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
62 * | | HUD | VAD | HUI |RGBRST| | | | | |QWERTY|COLEMK| | | | 62 * | | HUD | VAD | HUI |RGBRST| | | | | | P4 | P5 | P6 | | |
63 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 63 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
64 * | | | | | | | | | | | |RGBTOG| HUI | SAI | VAI | 64 * | | | | | | | | | | | P1 | P2 | P3 | | |
65 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 65 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
66 * | | | |RGBMOD| | | | | | | |RGBSMOD| HUD | SAD | VAD | 66 * | | | |RGBMOD| | | | | | | P0 | PDOT | NLCK |QWERTY|COLEMK|
67 * `------+------+------+------+------+------+------| |------+------+------+------+------+------+------' 67 * `------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
68 * | | | | | | 68 * | | | | | |
69 * `-------------' `-------------' 69 * `-------------' `-------------'
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/>.
33 33
34#ifdef FULLHAND_ENABLE 34#ifdef FULLHAND_ENABLE
35 #define FULLHAND_LEDS 24 35 #define FULLHAND_LEDS 24
36#elif SF_ENABLE
37 #define FULLHAND_LEDS 38
36#else 38#else
37 #define FULLHAND_LEDS 0 39 #define FULLHAND_LEDS 0
38#endif 40#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
20 20
21ifeq ($(strip $(FULLHAND_ENABLE)), yes) 21ifeq ($(strip $(FULLHAND_ENABLE)), yes)
22 OPT_DEFS += -DFULLHAND_ENABLE 22 OPT_DEFS += -DFULLHAND_ENABLE
23else ifeq ($(strip $(SF_ENABLE)), yes)
24 OPT_DEFS += -DSF_ENABLE
23endif 25endif
24 26
25ifeq ($(strip $(EXTRA_ENCODERS_ENABLE)), yes) 27ifeq ($(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 = { {
33#ifdef FULLHAND_ENABLE 33#ifdef FULLHAND_ENABLE
34 { 2, 88 }, { 2, 103 }, { 2, 117 }, { 2, 132 }, { 10, 145 }, { 25, 145 }, { 39, 145 }, 34 { 2, 88 }, { 2, 103 }, { 2, 117 }, { 2, 132 }, { 10, 145 }, { 25, 145 }, { 39, 145 },
35 { 54, 145 }, { 69, 145 }, { 79, 136 }, { 87, 124 }, { 94, 111 }, 35 { 54, 145 }, { 69, 145 }, { 79, 136 }, { 87, 124 }, { 94, 111 },
36// SF Left
37#elif SF_ENABLE
38 { 0, 88 }, { 0, 103 }, { 0, 117 }, { 0, 130 }, { 9, 142 }, { 24, 142 }, { 38, 142 },
39 { 53, 142 }, { 67, 142 }, { 79, 135 }, { 86, 123 }, { 93, 110 }, { 88, 102 }, { 74, 101 },
40 { 60, 91 }, { 45, 98 }, { 33, 92 }, { 23, 86 }, { 10, 80 },
36#endif 41#endif
37// Left Hand Mapped Right to Left 42// Left Hand Mapped Right to Left
38 { 213, 14 }, { 196, 14 }, { 182, 14 }, { 168, 14 }, { 154, 14 }, { 140, 14 }, { 122, 14 }, 43 { 213, 14 }, { 196, 14 }, { 182, 14 }, { 168, 14 }, { 154, 14 }, { 140, 14 }, { 122, 14 },
@@ -49,6 +54,11 @@ led_config_t g_led_config = { {
49#ifdef FULLHAND_ENABLE 54#ifdef FULLHAND_ENABLE
50 ,{ 222, 88 }, { 222, 103 }, { 222, 117 }, { 222, 132 }, { 214, 145 }, { 199, 145 }, { 185, 145 }, 55 ,{ 222, 88 }, { 222, 103 }, { 222, 117 }, { 222, 132 }, { 214, 145 }, { 199, 145 }, { 185, 145 },
51 { 170, 145 }, { 155, 145 }, { 145, 136 }, { 137, 124 }, { 130, 111 } 56 { 170, 145 }, { 155, 145 }, { 145, 136 }, { 137, 124 }, { 130, 111 }
57// SF Right
58#elif SF_ENABLE
59 ,{ 224, 88 }, { 224, 103 }, { 224, 117 }, { 224, 130 }, { 215, 142 }, { 200, 142 }, { 186, 142 },
60 { 171, 142 }, { 157, 142 }, { 145, 135 }, { 138, 123 }, { 131, 110 }, { 136, 102 }, { 150, 101 },
61 { 164, 91 }, { 179, 98 }, { 191, 92 }, { 201, 86 }, { 214, 80 }
52#endif 62#endif
53}, { 63}, {
54// Left Hand Mapped Left to Right 64// Left Hand Mapped Left to Right
@@ -66,6 +76,11 @@ led_config_t g_led_config = { {
66#ifdef FULLHAND_ENABLE 76#ifdef FULLHAND_ENABLE
67 2, 2, 2, 2, 2, 2, 2, 77 2, 2, 2, 2, 2, 2, 2,
68 2, 2, 2, 2, 2, 78 2, 2, 2, 2, 2,
79// SF Left
80#elif SF_ENABLE
81 2, 2, 2, 2, 2, 2, 2,
82 2, 2, 2, 2, 2, 2, 2,
83 2, 2, 2, 2, 2,
69#endif 84#endif
70// Left Hand Mapped Right to Left 85// Left Hand Mapped Right to Left
71 1, 4, 4, 4, 4, 4, 1, 86 1, 4, 4, 4, 4, 4, 1,
@@ -82,6 +97,11 @@ led_config_t g_led_config = { {
82#ifdef FULLHAND_ENABLE 97#ifdef FULLHAND_ENABLE
83 ,2, 2, 2, 2, 2, 2, 2, 98 ,2, 2, 2, 2, 2, 2, 2,
84 2, 2, 2, 2, 2 99 2, 2, 2, 2, 2
100// SF Right
101#elif SF_ENABLE
102 ,2, 2, 2, 2, 2, 2, 2,
103 2, 2, 2, 2, 2, 2, 2,
104 2, 2, 2, 2, 2
85#endif 105#endif
86} }; 106} };
87 107
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
22 22
23RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port 23RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port
24FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs 24FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
25SF_ENABLE = no # Enables the additional 38 Starfighter LEDs
25IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone) 26IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
26 27
27# Misc 28# 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 @@
1#pragma once
2
3#define TAPPING_TERM 150
4#define IGNORE_MOD_TAP_INTERRUPT
5#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 @@
1#include QMK_KEYBOARD_H
2#include "hvp.c"
3
4#define _QW 0
5#define _L1 1
6#define _L2 2
7#define _L3 3
8#define _L4 4
9
10#define LT4_TAB LT(_L4, KC_TAB)
11#define LT3_ESC LT(_L3, KC_ESC)
12
13enum custom_keycodes {
14 QW = SAFE_RANGE,
15 L1,
16 L2,
17 L3,
18 L4
19};
20
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23 [_QW] = LAYOUT_arrow( /* Qwerty */
24 LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
25 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),
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT,
27 KC_LCTL, KC_LGUI, KC_LALT, LT(_L2,KC_ENT), LT(_L1,KC_SPC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
28 ),
29 [_L1] = LAYOUT_arrow( /* LAYER 1 */
30 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
31 KC_DELETE, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
32 _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
33 _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
34 ),
35 [_L2] = LAYOUT_arrow( /* LAYER 2 */
36 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,
37 KC_DELETE, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
39 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
40 ),
41 [_L3] = LAYOUT_arrow( /* LAYER 3 */
42 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
43 _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
44 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
45 _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
46 ),
47
48 [_L4] = LAYOUT_arrow( /* LAYER 4 */
49 _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
50 _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
51 KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
52 RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______
53 )
54}; \ 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 @@
1Keyboard: Minivan 40% keyboard
2Keys: A compact 44% keyboard.
3Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
4Flash instructions: Flash using dfu, will req the hvp user space to compile.
5
6> make make thevankeyboards/minivan:hvp:dfu
7
8Links:
9Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/thevankeyboards/minivan
10Eurkey 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 @@
1RGBLIGHT_ENABLE = no
2TAP_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 @@
17#pragma once 17#pragma once
18#define TAPPING_TERM 150 18#define TAPPING_TERM 150
19#define PERMISSIVE_HOLD 19#define PERMISSIVE_HOLD
20#define IGNORE_MOD_TAP_INTERRUPT 20#define IGNORE_MOD_TAP_INTERRUPT \ No newline at end of file
21
22// place overrides here
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 @@
17#include "hvp.c" 17#include "hvp.c"
18 18
19#define LT3_ESC LT(3, KC_ESC) 19#define LT3_ESC LT(3, KC_ESC)
20#define LT4_TAB LT(4, KC_TAB)
21#define D_NAVI MT(MOD_LCTL | MOD_LSFT, KC_D)
20 22
21 23
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23 25
24 /* Base Layer
25 * ,-------------------------------------------------------------------------.
26 * | Esc | Q | W | E | R | T | Y | U | I | O | P |Bspace |
27 * |-------------------------------------------------------------------------+
28 * |Tab/L3| A | S | D | F | G | H | J | K | L | ; | ' |
29 * |-------------------------------------------------------------------------+
30 * | Shift | Z | X | C | V | B | N | M | , | . | / |Sh/En|
31 * |-------------------------------------------------------------------------+
32 * | Ctrl| Alt | Gui | App | L2 | Space | L1 | Left| Down| Up |Right|
33 * `-------------------------------------------------------------------------'
34 */
35
36LAYOUT( 26LAYOUT(
37 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 27 LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
38 LT3_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2), 28 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),
39 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT, 29 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT,
40 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 30 KC_LCTL, KC_APP, KC_LGUI, KC_LALT, MO(2), KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
41), 31),
42 32
43 /* FN Layer 1
44 * ,-------------------------------------------------------------------------.
45 * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Delete|
46 * |-------------------------------------------------------------------------+
47 * | | | | | | | | - | = | [ | ] | \ |
48 * |-------------------------------------------------------------------------+
49 * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | |
50 * |-------------------------------------------------------------------------+
51 * | | | |Capsl| | | | Home| PgDn| PgUp| End |
52 * `-------------------------------------------------------------------------'
53 */
54
55LAYOUT( /* Right */ 33LAYOUT( /* Right */
56 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 34 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
57 KC_DELETE, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, 35 KC_DELETE, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
58 _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
59 KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END 37 _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
60), 38),
61 39
62 /* FN Layer 2
63 * ,-------------------------------------------------------------------------.
64 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |Delete|
65 * |-------------------------------------------------------------------------+
66 * | | | | | | | | _ | + | { | } | | |
67 * |-------------------------------------------------------------------------+
68 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
69 * |-------------------------------------------------------------------------+
70 * | | | |Capsl| | | | Home| PgDn| PgUp| End |
71 * `-------------------------------------------------------------------------'
72 */
73
74LAYOUT( /* Left */ 40LAYOUT( /* Left */
75 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, 41 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,
76 KC_DELETE, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, 42 KC_DELETE, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 43 _______, _______, _______, _______, _______, _______, _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______,
78 _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END 44 _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
79), 45),
80 46
81 /* FN Layer 2 47LAYOUT( /* Esc */
82 * ,-------------------------------------------------------------------------.
83 * | Esc | Calc|Webhm| Mail| Comp| | | | | |PrtSc| |
84 * |-------------------------------------------------------------------------+
85 * | | | | | | | | | | | | |
86 * |-------------------------------------------------------------------------+
87 * | | | | | | | | | | | | |
88 * |-------------------------------------------------------------------------+
89 * | | | | | | | |MousL|MousD|MousU|MousR|
90 * `-------------------------------------------------------------------------'
91 */
92
93LAYOUT( /* Tab */
94 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 48 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
95 _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR, 49 _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
96 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, 50 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
97 RESET, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT 51 _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
52),
53LAYOUT( /* Tab */
54 _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
55 _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
56 KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
57 RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______
98), 58),
99}; \ No newline at end of file 59}; \ 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 @@
1# UT47 default keymap 1Keyboard: UT47.2
2Keys: 47key staggered 40% keyboard
3Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
4Flash instructions: Flash using dfu, will req the hvp user space to compile.
2 5
3![UT47 layout image](https://i.imgur.com/Tsz5qsF.png) 6> make ut472:hvp:dfu
4 7
5[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) 8Links:
9Github - https://github.com/ai03-2725/UT47.2
10Eurkey 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 @@
4# include "tap_dances.h" 4# include "tap_dances.h"
5#endif 5#endif
6#include "quantum.h" 6#include "quantum.h"
7
8#define TAPPING_TERM 150
9
10// Keys
11
12#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) {
6 if (state->count == 2) { 6 if (state->count == 2) {
7 tap_code(KC_SCLN); 7 tap_code(KC_SCLN);
8 } else { 8 } else {
9 register_code(KC_RALT); 9 tap_code16(ALGR(KC_A));
10 register_code(KC_O);
11 unregister_code(KC_RALT);
12 unregister_code(KC_O);
13 } 10 }
14} 11}
15 12
@@ -17,8 +14,7 @@ void dance_1_reset(qk_tap_dance_state_t *state, void *user_data) {
17 if (state->count == 2) { 14 if (state->count == 2) {
18 unregister_code(KC_SCLN); 15 unregister_code(KC_SCLN);
19 } else { 16 } else {
20 unregister_code(KC_RALT); 17 unregister_code16(ALGR(KC_A));
21 unregister_code(KC_O);
22 } 18 }
23} 19}
24 20
@@ -27,10 +23,7 @@ void dance_2_finished(qk_tap_dance_state_t *state, void *user_data) {
27 if (state->count == 2) { 23 if (state->count == 2) {
28 tap_code(KC_QUOT); 24 tap_code(KC_QUOT);
29 } else { 25 } else {
30 register_code(KC_RALT); 26 tap_code16(ALGR(KC_W));
31 register_code(KC_A);
32 unregister_code(KC_RALT);
33 unregister_code(KC_A);
34 } 27 }
35} 28}
36 29
@@ -38,8 +31,7 @@ void dance_2_reset(qk_tap_dance_state_t *state, void *user_data) {
38 if (state->count == 2) { 31 if (state->count == 2) {
39 unregister_code(KC_QUOT); 32 unregister_code(KC_QUOT);
40 } else { 33 } else {
41 unregister_code(KC_RALT); 34 unregister_code16(ALGR(KC_W));
42 unregister_code(KC_A);
43 } 35 }
44} 36}
45 37
@@ -49,10 +41,7 @@ void dance_3_finished(qk_tap_dance_state_t *state, void *user_data) {
49 if (state->count == 2) { 41 if (state->count == 2) {
50 tap_code(KC_SLSH); 42 tap_code(KC_SLSH);
51 } else { 43 } else {
52 register_code(KC_RALT); 44 tap_code16(ALGR(KC_O));
53 register_code(KC_W);
54 unregister_code(KC_RALT);
55 unregister_code(KC_W);
56 } 45 }
57} 46}
58 47
@@ -60,8 +49,43 @@ void dance_3_reset(qk_tap_dance_state_t *state, void *user_data) {
60 if (state->count == 2) { 49 if (state->count == 2) {
61 unregister_code(KC_SLSH); 50 unregister_code(KC_SLSH);
62 } else { 51 } else {
63 unregister_code(KC_RALT); 52 unregister_code16(ALGR(KC_O));
64 unregister_code(KC_W); 53 }
54}
55
56// Tap dance 4
57void dance_4_finished(qk_tap_dance_state_t *state, void *user_data) {
58 // if (state->count == 2)
59 if (state->count == 2) {
60 tap_code(KC_DOT);
61 } else {
62 tap_code16(ALGR(KC_W));
63 }
64}
65
66void dance_4_reset(qk_tap_dance_state_t *state, void *user_data) {
67 if (state->count == 2) {
68 unregister_code(KC_DOT);
69 } else {
70 unregister_code16(ALGR(KC_W));
71 }
72}
73
74// Tap dance 5
75void dance_5_finished(qk_tap_dance_state_t *state, void *user_data) {
76 // if (state->count == 2)
77 if (state->count == 2) {
78 tap_code(KC_DOT);
79 } else {
80 tap_code16(ALGR(KC_O));
81 }
82}
83
84void dance_5_reset(qk_tap_dance_state_t *state, void *user_data) {
85 if (state->count == 2) {
86 unregister_code(KC_DOT);
87 } else {
88 unregister_code16(ALGR(KC_O));
65 } 89 }
66} 90}
67 91
@@ -72,4 +96,8 @@ qk_tap_dance_action_t tap_dance_actions[] = {
72 96
73 [TD2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_2_finished, dance_2_reset), 97 [TD2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_2_finished, dance_2_reset),
74 98
75 [TD3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_3_finished, dance_3_reset)}; \ No newline at end of file 99 [TD3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_3_finished, dance_3_reset),
100
101 [TD4] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_4_finished, dance_4_reset),
102
103 [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
6{ 6{
7 TD1 = 0, 7 TD1 = 0,
8 TD2, 8 TD2,
9 TD3 9 TD3,
10 TD4,
11 TD5
10}; 12};