aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThat-Canadian <poole.chris.11@gmail.com>2017-08-13 14:11:40 -0400
committerThat-Canadian <poole.chris.11@gmail.com>2017-08-13 14:11:40 -0400
commit1631f7cd798dcf428404977e441d7e5b65fe81ce (patch)
tree1c2c1d85598d7b1332e2e82b6276a49b2dc2d2b0
parentf64d4242ada746a1d7bd7aef9acf8f3cf8a5ba6f (diff)
parent09e5885e45cf37c0651744770cd99b5b744ba894 (diff)
downloadqmk_firmware-1631f7cd798dcf428404977e441d7e5b65fe81ce.tar.gz
qmk_firmware-1631f7cd798dcf428404977e441d7e5b65fe81ce.zip
Merge branch 'master' into minidox
-rw-r--r--Makefile5
-rw-r--r--common_features.mk7
-rw-r--r--docs/_summary.md1
-rw-r--r--docs/build_environment_setup.md4
-rw-r--r--docs/faq_keymap.md4
-rw-r--r--docs/key_lock.md11
-rw-r--r--docs/make_instructions.md4
-rw-r--r--docs/quantum_keycodes.md1
-rw-r--r--keyboards/bananasplit/bananasplit.h61
-rw-r--r--keyboards/bananasplit/keymaps/coloneljesus/Makefile37
-rw-r--r--keyboards/bananasplit/keymaps/coloneljesus/config.h25
-rw-r--r--keyboards/bananasplit/keymaps/coloneljesus/keymap.c96
-rw-r--r--keyboards/bananasplit/keymaps/coloneljesus/readme.md33
-rw-r--r--keyboards/bananasplit/keymaps/default/Makefile37
-rw-r--r--keyboards/bananasplit/keymaps/default/config.h24
-rw-r--r--keyboards/bananasplit/keymaps/default/readme.md1
-rw-r--r--keyboards/bananasplit/keymaps/hhkbanana/keymap.c8
-rw-r--r--keyboards/bananasplit/keymaps/nic/keymap.c16
-rw-r--r--keyboards/ergodox/keymaps/333fred/Makefile2
-rw-r--r--keyboards/ergodox/keymaps/333fred/keymap.c25
-rw-r--r--keyboards/gonnerd/keymaps/tkl/Makefile21
-rw-r--r--keyboards/gonnerd/keymaps/tkl/keymap.c31
-rw-r--r--keyboards/handwired/promethium/config.h2
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/keymap.c28
-rw-r--r--keyboards/jc65/Makefile3
-rw-r--r--keyboards/jc65/config.h63
-rw-r--r--keyboards/jc65/jc65.c28
-rw-r--r--keyboards/jc65/jc65.h21
-rw-r--r--keyboards/jc65/keymaps/default/Makefile0
-rw-r--r--keyboards/jc65/keymaps/default/config.h1
-rw-r--r--keyboards/jc65/keymaps/default/keymap.c11
-rw-r--r--keyboards/jc65/keymaps/default/readme.md10
-rw-r--r--keyboards/jc65/keymaps/jetpacktuxedo/Makefile0
-rw-r--r--keyboards/jc65/keymaps/jetpacktuxedo/config.h1
-rw-r--r--keyboards/jc65/keymaps/jetpacktuxedo/keymap.c25
-rw-r--r--keyboards/jc65/keymaps/jetpacktuxedo/readme.md10
-rw-r--r--keyboards/jc65/readme.md22
-rw-r--r--keyboards/jc65/rules.mk68
-rw-r--r--keyboards/lets_split/keymaps/piemod/README.md31
-rw-r--r--keyboards/lets_split/keymaps/piemod/config.h37
-rw-r--r--keyboards/lets_split/keymaps/piemod/keymap.c121
-rw-r--r--keyboards/nyquist/keymaps/333fred/Makefile7
-rw-r--r--keyboards/nyquist/keymaps/333fred/README.md75
-rw-r--r--keyboards/nyquist/keymaps/333fred/config.h14
-rw-r--r--keyboards/nyquist/keymaps/333fred/keymap.c135
-rw-r--r--keyboards/org60/Makefile3
-rw-r--r--keyboards/org60/config.h82
-rw-r--r--keyboards/org60/keymaps/boardy/Makefile15
-rw-r--r--keyboards/org60/keymaps/boardy/keymap.c121
-rw-r--r--keyboards/org60/keymaps/boardy/readme.md7
-rw-r--r--keyboards/org60/keymaps/default/keymap.c (renamed from keyboards/xd60/keymaps/BASE/keymap.c)4
-rw-r--r--keyboards/org60/keymaps/default/readme.md (renamed from keyboards/xd60/keymaps/BASE/readme.md)0
-rw-r--r--keyboards/org60/org60.c19
-rw-r--r--keyboards/org60/org60.h37
-rw-r--r--keyboards/org60/readme.md21
-rw-r--r--keyboards/org60/rules.mk64
-rwxr-xr-xkeyboards/planck/keymaps/piemod/Makefile10
-rw-r--r--keyboards/planck/keymaps/piemod/README.md31
-rw-r--r--keyboards/planck/keymaps/piemod/keymap.c111
-rw-r--r--keyboards/planck/keymaps/priyadi/config.h2
-rw-r--r--keyboards/planck/planck.h2
-rw-r--r--keyboards/uk78/config.h2
-rw-r--r--keyboards/xd60/keymaps/base/keymap.c46
-rw-r--r--keyboards/xd60/keymaps/base/readme.md5
m---------lib/chibios0
-rw-r--r--quantum/process_keycode/process_key_lock.c138
-rw-r--r--quantum/process_keycode/process_key_lock.h24
-rw-r--r--quantum/quantum.c20
-rw-r--r--quantum/quantum.h4
-rw-r--r--quantum/quantum_keycodes.h4
-rw-r--r--quantum/template/config.h5
-rw-r--r--tmk_core/rules.mk4
72 files changed, 1824 insertions, 124 deletions
diff --git a/Makefile b/Makefile
index 5ed757dc2..ebad723be 100644
--- a/Makefile
+++ b/Makefile
@@ -19,6 +19,11 @@ endif
19# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly 19# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly
20override SILENT := false 20override SILENT := false
21 21
22QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
23ifneq ($(QMK_VERSION),)
24$(info QMK Firmware v$(QMK_VERSION))
25endif
26
22ON_ERROR := error_occurred=1 27ON_ERROR := error_occurred=1
23 28
24BREAK_ON_ERRORS = no 29BREAK_ON_ERRORS = no
diff --git a/common_features.mk b/common_features.mk
index 0adf81afa..f405d5c07 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -104,6 +104,11 @@ ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
104 SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c 104 SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
105endif 105endif
106 106
107ifeq ($(strip $(KEY_LOCK_ENABLE)), yes)
108 OPT_DEFS += -DKEY_LOCK_ENABLE
109 SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c
110endif
111
107ifeq ($(strip $(PRINTING_ENABLE)), yes) 112ifeq ($(strip $(PRINTING_ENABLE)), yes)
108 OPT_DEFS += -DPRINTING_ENABLE 113 OPT_DEFS += -DPRINTING_ENABLE
109 SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c 114 SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
@@ -156,4 +161,4 @@ QUANTUM_SRC:= \
156 161
157ifndef CUSTOM_MATRIX 162ifndef CUSTOM_MATRIX
158 QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c 163 QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
159endif \ No newline at end of file 164endif
diff --git a/docs/_summary.md b/docs/_summary.md
index 723377de9..0f65de0dd 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -17,6 +17,7 @@
17 * [Mouse keys](mouse_keys.md) 17 * [Mouse keys](mouse_keys.md)
18 * [Unicode](unicode.md) 18 * [Unicode](unicode.md)
19 * [Stenography](stenography.md) 19 * [Stenography](stenography.md)
20 * [Key Lock](key_lock.md)
20 21
21* Reference 22* Reference
22 * [Glossary](glossary.md) 23 * [Glossary](glossary.md)
diff --git a/docs/build_environment_setup.md b/docs/build_environment_setup.md
index 2282e9d13..d2d63defb 100644
--- a/docs/build_environment_setup.md
+++ b/docs/build_environment_setup.md
@@ -50,10 +50,10 @@ If you have trouble and want to ask for help, it is useful to generate a *Win_Ch
50If you're using [homebrew,](http://brew.sh/) you can use the following commands: 50If you're using [homebrew,](http://brew.sh/) you can use the following commands:
51 51
52 brew tap osx-cross/avr 52 brew tap osx-cross/avr
53 brew install avr-libc 53 brew install avr-gcc
54 brew install dfu-programmer 54 brew install dfu-programmer
55 55
56This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. Note that the `make` and `make install` portion during the homebrew installation of avr-libc can take over 20 minutes and exhibit high CPU usage. 56This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. Note that the `make` and `make install` portion during the homebrew installation of avr-gcc can take over 20 minutes and exhibit high CPU usage.
57 57
58You can also try these instructions: 58You can also try these instructions:
59 59
diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md
index d6442ac53..3c2795816 100644
--- a/docs/faq_keymap.md
+++ b/docs/faq_keymap.md
@@ -116,7 +116,9 @@ https://github.com/tekezo/Karabiner/issues/403
116 116
117## Esc and `~ on a key 117## Esc and `~ on a key
118 118
119Use `GRAVE_ESC` or `KC_GESC` in your keymap. 119Use `GRAVE_ESC` or `KC_GESC` in your keymap. `GUI`+`GRAVE_ESC` results in `\`` and `SHIFT`+`GRAVE_ESC` results in `~`.
120
121Note that this will break the CTRL+SHIFT+ESC shortcut to the Windows task manager. Use `#define GRAVE_ESC_CTRL_OVERRIDE` in your `config.h` to get the shortcut back. With this option, `ESC_GRAVE` results in `ESC` if `CTRL` is held, even if `SHIFT` or `GUI` are also held.
120 122
121## Arrow on Right Modifier keys with Dual-Role 123## Arrow on Right Modifier keys with Dual-Role
122This turns right modifer keys into arrow keys when the keys are tapped while still modifiers when the keys are hold. In TMK the dual-role function is dubbed **TAP**. 124This turns right modifer keys into arrow keys when the keys are tapped while still modifiers when the keys are hold. In TMK the dual-role function is dubbed **TAP**.
diff --git a/docs/key_lock.md b/docs/key_lock.md
new file mode 100644
index 000000000..e424061a9
--- /dev/null
+++ b/docs/key_lock.md
@@ -0,0 +1,11 @@
1## Key Lock: Holding down keys for you
2
3Sometimes, you need to hold down a specific key for a long period of time. Whether this is while typing in ALL CAPS, or playing a video game that hasn't implemented auto-run, Key Lock is here to help. Key Lock adds a new keycode, `KC_LOCK`, that will hold down the next key you hit for you. The key is released when you hit it again. Here's an example: let's say you need to type in all caps for a few sentences. You hit KC_LOCK, and then shift. Now, shift will be considered held until you hit it again. You can think of key lock as caps lock, but supercharged.
4
5Here's how to use it:
6
71. Pick a key on your keyboard. This will be the key lock key. Assign it the keycode `KC_LOCK`. This will be a single-action key: you won't be able to use it for anything else.
82. Enable key lock by including `KEY_LOCK_ENABLE = yes` in your Makefile.
93. That's it!
10
11Important: switching layers does not cancel the key lock. Additionally, key lock is only able to hold standard action keys and One Shot modifier keys (for example, if you have your shift defined as `OSM(KC_LSFT)`; see [One Shot Keys](quantum_keycodes.md#one-shot-keys)). This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as KC_LPRN. If it's in the [basic_keycodes](basic_keycodes.md) list, it can be held. If it's not, then it can't be.
diff --git a/docs/make_instructions.md b/docs/make_instructions.md
index 64c1cb0f0..299c5785b 100644
--- a/docs/make_instructions.md
+++ b/docs/make_instructions.md
@@ -158,6 +158,10 @@ This enables using the Quantum SYSEX API to send strings (somewhere?)
158 158
159This consumes about 5390 bytes. 159This consumes about 5390 bytes.
160 160
161`KEY_LOCK_ENABLE`
162
163This enables [key lock](key_lock.md). This consumes an additional 260 bytes.
164
161## Customizing Makefile options on a per-keymap basis 165## Customizing Makefile options on a per-keymap basis
162 166
163If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard. 167If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard.
diff --git a/docs/quantum_keycodes.md b/docs/quantum_keycodes.md
index 36dbda7a9..f13801ef5 100644
--- a/docs/quantum_keycodes.md
+++ b/docs/quantum_keycodes.md
@@ -17,6 +17,7 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
17|`FUNC(n)`/`F(n)`|Call `fn_action(n)`| 17|`FUNC(n)`/`F(n)`|Call `fn_action(n)`|
18|`M(n)`|to call macro n| 18|`M(n)`|to call macro n|
19|`MACROTAP(n)`|to macro-tap n idk FIXME| 19|`MACROTAP(n)`|to macro-tap n idk FIXME|
20|`KC_LOCK`|The [lock key](key_lock.md)|
20 21
21## Bootmagic Keycodes 22## Bootmagic Keycodes
22 23
diff --git a/keyboards/bananasplit/bananasplit.h b/keyboards/bananasplit/bananasplit.h
index 5be3d881a..fa4c13258 100644
--- a/keyboards/bananasplit/bananasplit.h
+++ b/keyboards/bananasplit/bananasplit.h
@@ -19,6 +19,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19 19
20#include "quantum.h" 20#include "quantum.h"
21 21
22/*
23-------------------------------------------------------------------------------------------
24| K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0D |
25-------------------------------------------------------------------------------------------
26| K10 | K11 | K12 | K13 | K14 | K15 | K16 | K17 | K18 | K19 | K1A | K1B | K1C | K1D |
27-------------------------------------------------------------------------------------------
28| K20 | K21 | K22 | K23 | K24 | K25 | K26 | K27 | K28 | K29 | K2A | K2B | K2C |
29-------------------------------------------------------------------------------------------
30| K30 | K32 | K33 | K34 | K35 | K36 | K37 | K38 | K39 | K3A | K3B | K3C | K3D |
31-------------------------------------------------------------------------------------------
32| K40 | K41 | K42 | K44 | K45 | K46 | K48 | K49 | K4A | K4B | K4C |
33-------------------------------------------------------------------------------------------
34*/
22#define KEYMAP( \ 35#define KEYMAP( \
23 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ 36 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
24 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ 37 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
@@ -30,13 +43,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
30 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ 43 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
31 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \ 44 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \
32 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ 45 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
33 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C } \ 46 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C, KC_NO } \
34} 47}
48/* Here is the above keymap filled with KC_TRNS. It's a useful starting point when defining layers.
49KEYMAP( \
50 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
51 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
52 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
53 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,\
54 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______ \
55)
56*/
35 57
36#define KEYMAP_HHKBANANA( \ 58#define KEYMAP_HHKBANANA( \
37 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ 59 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
38 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ 60 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
39 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ 61 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
40 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ 62 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
41 K40, K41, K42, K44, K45, K46, K48, K49, K4A, K4B, K4C \ 63 K40, K41, K42, K44, K45, K46, K48, K49, K4A, K4B, K4C \
42) { \ 64) { \
@@ -44,7 +66,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
44 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ 66 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
45 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ 67 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
46 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \ 68 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \
47 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C } \ 69 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C, KC_NO } \
48} 70}
49 71
50#define KEYMAP_ANSI( \ 72#define KEYMAP_ANSI( \
@@ -58,7 +80,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
58 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ 80 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
59 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \ 81 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \
60 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \ 82 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \
61 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, K48, K49, KC_NO, K4B, K4C } \ 83 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, K48, K49, KC_NO, K4B, K4C, KC_NO } \
62} 84}
63 85
64#define KEYMAP_ISO( \ 86#define KEYMAP_ISO( \
@@ -72,27 +94,40 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
72 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ 94 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
73 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \ 95 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO }, \
74 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \ 96 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \
75 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, K48, K49, KC_NO, K4B, K4C } \ 97 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, K48, K49, KC_NO, K4B, K4C, KC_NO } \
76} 98}
77 99
100/*
101-------------------------------------------------------------------------------------------
102| K00 | K01 | K02 | K03 | K04 | K05 | K06 | K07 | K08 | K09 | K0A | K0B | K0C | K0D | K2D |
103-------------------------------------------------------------------------------------------
104| K10 | K11 | K12 | K13 | K14 | K15 | K16 | K17 | K18 | K19 | K1A | K1B | K1C | K1D |
105-------------------------------------------------------------------------------------------
106| K20 | K21 | K22 | K23 | K24 | K25 | K26 | K27 | K28 | K29 | K2A | K2B | K2C |
107-------------------------------------------------------------------------------------------
108| K30 | K31 | K32 | K33 | K34 | K35 | K36 | K37 | K38 | K39 | K3A | K3B | K3C | K3D |
109-------------------------------------------------------------------------------------------
110| K40 | K41 | K42 | K44 | K45 | K46 | K48 | K49 | K4A | K4B | K4C |
111-------------------------------------------------------------------------------------------
112*/
78#define KEYMAP_ALL( \ 113#define KEYMAP_ALL( \
79 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ 114 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
80 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ 115 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
81 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D,\ 116 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
82 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,\ 117 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
83 K40, K41, K42, K44, K45, K46, K48, K49, K4A, K4B, K4C \ 118 K40, K41, K42, K44, K45, K46, K48, K49, K4A, K4B, K4C \
84) { \ 119) { \
85 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ 120 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
86 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ 121 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
87 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ 122 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
88 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ 123 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
89 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C } \ 124 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C, KC_NO } \
90} 125}
91 126
92#define KEYMAP_HHKB_ARROW( \ 127#define KEYMAP_HHKB_ARROW( \
93 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ 128 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
94 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ 129 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
95 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D,\ 130 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
96 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,\ 131 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,\
97 K40, K41, K42, K44, K45, K46, K48, K49, K4A, K4B, K4C \ 132 K40, K41, K42, K44, K45, K46, K48, K49, K4A, K4B, K4C \
98) { \ 133) { \
@@ -100,7 +135,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
100 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ 135 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
101 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ 136 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
102 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ 137 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
103 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C } \ 138 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C, KC_NO } \
104} 139}
105 140
106 141
diff --git a/keyboards/bananasplit/keymaps/coloneljesus/Makefile b/keyboards/bananasplit/keymaps/coloneljesus/Makefile
new file mode 100644
index 000000000..7d09c322e
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/coloneljesus/Makefile
@@ -0,0 +1,37 @@
1# Copyright 2017 Balz Guenat
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# QMK Build Options
18# change to "no" to disable the options, or define them in the Makefile in
19# the appropriate keymap folder that will get included automatically
20#
21# BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
22# MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
23# EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
24# CONSOLE_ENABLE = no # Console for debug(+400)
25# COMMAND_ENABLE = yes # Commands for debug and configuration
26# NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
27# BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
28# MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
29# AUDIO_ENABLE = no # Audio output on port C6
30# UNICODE_ENABLE = no # Unicode
31# BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32# RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
33# SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
34
35ifndef QUANTUM_DIR
36 include ../../../../Makefile
37endif
diff --git a/keyboards/bananasplit/keymaps/coloneljesus/config.h b/keyboards/bananasplit/keymaps/coloneljesus/config.h
new file mode 100644
index 000000000..af6cf8ef1
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/coloneljesus/config.h
@@ -0,0 +1,25 @@
1/* Copyright 2017 Balz Guenat
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#ifndef CONFIG_USER_H
18#define CONFIG_USER_H
19
20#include "../../config.h"
21
22// place overrides here
23#define GRAVE_ESC_CTRL_OVERRIDE
24
25#endif
diff --git a/keyboards/bananasplit/keymaps/coloneljesus/keymap.c b/keyboards/bananasplit/keymaps/coloneljesus/keymap.c
new file mode 100644
index 000000000..5d67079f8
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/coloneljesus/keymap.c
@@ -0,0 +1,96 @@
1/* Copyright 2017 Balz Guenat
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 "bananasplit.h"
17
18#define ______ KC_TRNS
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21/*
22-------------------------------------------------------------------------------------------
23|GvEsc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
24-------------------------------------------------------------------------------------------
25| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
26-------------------------------------------------------------------------------------------
27| Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
28-------------------------------------------------------------------------------------------
29| Shift | Z | X | C | V | B | N | M | , | . | / | Shift |M(0) |
30-------------------------------------------------------------------------------------------
31| Ctrl | GUI | Alt | Space | Fn1 | Space | Alt | GUI | App | Ctrl |
32-------------------------------------------------------------------------------------------
33*/
34[0] = KEYMAP( \
35 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_BSPC, \
36 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, \
37 MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, M(0),\
39 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_APP, KC_RCTL \
40),
41/*
42-------------------------------------------------------------------------------------------
43| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | |
44-------------------------------------------------------------------------------------------
45| CpsLck |Prev |Vol+ |Next |PgUp | Ins |Home |WrdL |WrdR | End | | | | PrtSc |
46-------------------------------------------------------------------------------------------
47| TRNS |Mute |Vol- |Play |PgDn | Del |Left |Down | Up |Right| | | |
48-------------------------------------------------------------------------------------------
49| | | | | | |DelWL|DelWR| | | | | |
50-------------------------------------------------------------------------------------------
51| | | | | TRNS | | | | | Reset |
52-------------------------------------------------------------------------------------------
53*/
54[1] = KEYMAP( \
55 ______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ______, \
56 KC_CAPS, KC_MPRV, KC_VOLU, KC_MNXT, KC_PGUP, KC_INS, KC_HOME, LCTL(KC_LEFT), LCTL(KC_RGHT), KC_END, ______, ______, ______, KC_PSCR, \
57 ______, KC_MUTE, KC_VOLD, KC_MPLY, KC_PGDN, KC_DEL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, ______, ______, ______, \
58 ______, ______, ______, ______, ______, ______, LCTL(KC_BSPC), LCTL(KC_DEL), ______, ______, ______, ______, ______, \
59 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, RESET \
60),
61};
62
63const uint16_t PROGMEM fn_actions[] = {
64
65};
66
67const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
68 switch(id) {
69 case 0:
70 // Sends Alt+Shift on both key down and key up.
71 // Fesigned to switch between two keyboard layouts on Windows using a locking switch.
72 // Does nothing if right shift is pressed for easier resync.
73 if (!(get_mods() & MOD_BIT(KC_RSFT)))
74 return MACRO(D(LALT), T(LSFT), U(LALT), END);
75 else
76 return MACRO_NONE;
77 }
78 return MACRO_NONE;
79};
80
81
82void matrix_init_user(void) {
83
84}
85
86void matrix_scan_user(void) {
87
88}
89
90bool process_record_user(uint16_t keycode, keyrecord_t *record) {
91 return true;
92}
93
94void led_set_user(uint8_t usb_led) {
95
96}
diff --git a/keyboards/bananasplit/keymaps/coloneljesus/readme.md b/keyboards/bananasplit/keymaps/coloneljesus/readme.md
new file mode 100644
index 000000000..b9ce5f44a
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/coloneljesus/readme.md
@@ -0,0 +1,33 @@
1# /u/Coloneljesus's keymap for the Bananasplit
2
3Default layer:
4
5```
6-------------------------------------------------------------------------------------------
7|GvEsc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
8-------------------------------------------------------------------------------------------
9| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
10-------------------------------------------------------------------------------------------
11| Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
12-------------------------------------------------------------------------------------------
13| Shift | Z | X | C | V | B | N | M | , | . | / | Shift |
14-------------------------------------------------------------------------------------------
15| Ctrl | GUI | Alt | Space | Fn1 | Space | Alt | GUI | App | Ctrl |
16-------------------------------------------------------------------------------------------
17```
18
19Fn1 layer:
20
21```
22-------------------------------------------------------------------------------------------
23| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | |
24-------------------------------------------------------------------------------------------
25| CpsLck |Prev |Vol+ |Next |PgUp | Ins |Home |WrdL |WrdR | End | | | | PrtSc |
26-------------------------------------------------------------------------------------------
27| TRNS |Mute |Vol- |Play |PgDn | Del |Left |Down | Up |Right| | | |
28-------------------------------------------------------------------------------------------
29| | | | | | |DelWL|DelWR| | | | |
30-------------------------------------------------------------------------------------------
31| | | | | TRNS | | | | | Reset |
32-------------------------------------------------------------------------------------------
33``` \ No newline at end of file
diff --git a/keyboards/bananasplit/keymaps/default/Makefile b/keyboards/bananasplit/keymaps/default/Makefile
new file mode 100644
index 000000000..7d09c322e
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/default/Makefile
@@ -0,0 +1,37 @@
1# Copyright 2017 Balz Guenat
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# QMK Build Options
18# change to "no" to disable the options, or define them in the Makefile in
19# the appropriate keymap folder that will get included automatically
20#
21# BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
22# MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
23# EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
24# CONSOLE_ENABLE = no # Console for debug(+400)
25# COMMAND_ENABLE = yes # Commands for debug and configuration
26# NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
27# BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
28# MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
29# AUDIO_ENABLE = no # Audio output on port C6
30# UNICODE_ENABLE = no # Unicode
31# BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32# RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
33# SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
34
35ifndef QUANTUM_DIR
36 include ../../../../Makefile
37endif
diff --git a/keyboards/bananasplit/keymaps/default/config.h b/keyboards/bananasplit/keymaps/default/config.h
new file mode 100644
index 000000000..060f5922f
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/default/config.h
@@ -0,0 +1,24 @@
1/* Copyright 2017 Balz Guenat
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#ifndef CONFIG_USER_H
18#define CONFIG_USER_H
19
20#include "../../config.h"
21
22// place overrides here
23
24#endif
diff --git a/keyboards/bananasplit/keymaps/default/readme.md b/keyboards/bananasplit/keymaps/default/readme.md
new file mode 100644
index 000000000..aaf6daa08
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for the Bananasplit
diff --git a/keyboards/bananasplit/keymaps/hhkbanana/keymap.c b/keyboards/bananasplit/keymaps/hhkbanana/keymap.c
index b6c1d268b..10593de8d 100644
--- a/keyboards/bananasplit/keymaps/hhkbanana/keymap.c
+++ b/keyboards/bananasplit/keymaps/hhkbanana/keymap.c
@@ -5,17 +5,17 @@
5 5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [DEFAULT_LAYER] = KEYMAP_HHKBANANA( \ 7 [DEFAULT_LAYER] = KEYMAP_HHKBANANA( \
8 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_BSLS, \ 8 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_BSLS, KC_PSCR, \
9 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, \ 9 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, \
10 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_PSCR, \ 10 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, \
11 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ 11 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
12 KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, MO(LAYER_1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT \ 12 KC_LCTL, KC_LGUI, KC_LALT, KC_ENT, MO(LAYER_1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT \
13 ), 13 ),
14 14
15 [LAYER_1] = KEYMAP_HHKBANANA( \ 15 [LAYER_1] = KEYMAP_HHKBANANA( \
16 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
16 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 17 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
17 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 18 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
18 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
19 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 19 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
20 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 20 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
21 ), 21 ),
diff --git a/keyboards/bananasplit/keymaps/nic/keymap.c b/keyboards/bananasplit/keymaps/nic/keymap.c
index d8a5d0b17..f9794b5b1 100644
--- a/keyboards/bananasplit/keymaps/nic/keymap.c
+++ b/keyboards/bananasplit/keymaps/nic/keymap.c
@@ -9,33 +9,33 @@
9 9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11 [DEFAULT_LAYER] = KEYMAP_HHKB_ARROW( \ 11 [DEFAULT_LAYER] = KEYMAP_HHKB_ARROW( \
12 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, \ 12 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, \
13 HYPER_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, \ 13 HYPER_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, \
14 CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, \ 14 CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
15 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_UP, TG(NORMAN_LAYER), \ 15 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_UP, TG(NORMAN_LAYER), \
16 KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, MO(THUMB_LAYER), KC_SPC, KC_LGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_RIGHT \ 16 KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, MO(THUMB_LAYER), KC_SPC, KC_LGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_RIGHT \
17 ), 17 ),
18 18
19 [THUMB_LAYER] = KEYMAP_HHKB_ARROW( \ 19 [THUMB_LAYER] = KEYMAP_HHKB_ARROW( \
20 MO(MOD_LAYER), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, \ 20 MO(MOD_LAYER), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, \
21 _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, \ 21 _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, \
22 _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, _______, _______, \ 22 _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, _______, \
23 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 23 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
24 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 24 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
25 ), 25 ),
26 26
27 [NORMAN_LAYER] = KEYMAP_HHKB_ARROW( \ 27 [NORMAN_LAYER] = KEYMAP_HHKB_ARROW( \
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
29 _______, _______, _______, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN, _______, _______, _______, \ 29 _______, _______, _______, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN, _______, _______, _______, \
30 _______, _______, _______, KC_E, KC_T, _______, KC_Y, KC_N, KC_I, KC_O, KC_H, _______, _______, _______, \ 30 _______, _______, _______, KC_E, KC_T, _______, KC_Y, KC_N, KC_I, KC_O, KC_H, _______, _______, \
31 _______, _______, _______, _______, _______, _______, KC_P, _______, _______, _______, _______, _______, _______, \ 31 _______, _______, _______, _______, _______, _______, KC_P, _______, _______, _______, _______, _______, _______, \
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
33 ), 33 ),
34 34
35 [MOD_LAYER] = KEYMAP_HHKB_ARROW( \ 35 [MOD_LAYER] = KEYMAP_HHKB_ARROW( \
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
37 _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 37 _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
41 ), 41 ),
diff --git a/keyboards/ergodox/keymaps/333fred/Makefile b/keyboards/ergodox/keymaps/333fred/Makefile
index 17f736458..299205434 100644
--- a/keyboards/ergodox/keymaps/333fred/Makefile
+++ b/keyboards/ergodox/keymaps/333fred/Makefile
@@ -3,7 +3,7 @@ LCD_BACKLIGHT_ENABLE = yes
3LCD_ENABLE = yes 3LCD_ENABLE = yes
4BACKLIGHT_ENABLE = yes 4BACKLIGHT_ENABLE = yes
5NKRO_ENABLE = yes 5NKRO_ENABLE = yes
6TAP_DANCE_ENABLE = yes 6KEY_LOCK_ENABLE = yes
7 7
8ifndef QUANTUM_DIR 8ifndef QUANTUM_DIR
9 include ../../../../Makefile 9 include ../../../../Makefile
diff --git a/keyboards/ergodox/keymaps/333fred/keymap.c b/keyboards/ergodox/keymaps/333fred/keymap.c
index e3f95132d..c1722c122 100644
--- a/keyboards/ergodox/keymaps/333fred/keymap.c
+++ b/keyboards/ergodox/keymaps/333fred/keymap.c
@@ -40,15 +40,6 @@ enum custom_macros {
40 KEEPASS_TYPE, 40 KEEPASS_TYPE,
41}; 41};
42 42
43// Tap Dance Definitions
44enum tap_dance_custom_keys {
45 TD_SEMICOLON_COLON = 0
46};
47
48qk_tap_dance_action_t tap_dance_actions[] = {
49 [TD_SEMICOLON_COLON] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_COLON)
50};
51
52// NOTE: Cells marked with ACCESS must remain transparent, they're the keys that actually get to that layer 43// NOTE: Cells marked with ACCESS must remain transparent, they're the keys that actually get to that layer
53 44
54const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 45const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -59,14 +50,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 50 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
60 * | TAB | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ | 51 * | TAB | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ |
61 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 52 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
62 * | Esc | A | S | D |LT 3,F| G |------| |------| H | J | K | L |; / : | ' | 53 * | Esc | A | S | D |LT 3,F| G |------| |------| H | J | K | L | ; | ' |
63 * |--------+------+------+------+------+------| L1 | |MO(3) |------+------+------+------+------+--------| 54 * |--------+------+------+------+------+------| L1 | |MO(3) |------+------+------+------+------+--------|
64 * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | 55 * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
65 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 56 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
66 * |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI | 57 * |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI |
67 * `----------------------------------' `----------------------------------' 58 * `----------------------------------' `----------------------------------'
68 * ,-------------. ,-------------. 59 * ,-------------. ,-------------.
69 * | Copy | Paste| | Alt |Ctrl/Esc| 60 * | Copy | Paste| | Alt | Lock |
70 * ,------|------|------| |------+--------+------. 61 * ,------|------|------| |------+--------+------.
71 * | | | PgUp | | PgDn | | | 62 * | | | PgUp | | PgDn | | |
72 * | Bcksp|OSL(2)|------| |------| Ent |Space | 63 * | Bcksp|OSL(2)|------| |------| Ent |Space |
@@ -86,12 +77,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
86 KC_PGUP, 77 KC_PGUP,
87 KC_BSPC,OSL(SYMB), KC_DEL, 78 KC_BSPC,OSL(SYMB), KC_DEL,
88 // right hand 79 // right hand
89 TG(CODE), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 80 TG(CODE), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
90 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 81 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
91 KC_H, KC_J, KC_K, KC_L, TD(TD_SEMICOLON_COLON),KC_QUOT, 82 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
92 MO(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT), 83 MO(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT),
93 KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_RGUI, 84 KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_RGUI,
94 KC_RALT, CTL_T(KC_ESC), 85 KC_RALT, KC_LOCK,
95 KC_PGDN, 86 KC_PGDN,
96 KC_RCTL, KC_ENT, KC_SPC 87 KC_RCTL, KC_ENT, KC_SPC
97 ), 88 ),
diff --git a/keyboards/gonnerd/keymaps/tkl/Makefile b/keyboards/gonnerd/keymaps/tkl/Makefile
new file mode 100644
index 000000000..5854366f9
--- /dev/null
+++ b/keyboards/gonnerd/keymaps/tkl/Makefile
@@ -0,0 +1,21 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
6MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
7EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
8CONSOLE_ENABLE = yes # Console for debug(+400)
9COMMAND_ENABLE = yes # Commands for debug and configuration
10NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
11BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
12MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18
19ifndef QUANTUM_DIR
20 include ../../../../Makefile
21endif
diff --git a/keyboards/gonnerd/keymaps/tkl/keymap.c b/keyboards/gonnerd/keymaps/tkl/keymap.c
new file mode 100644
index 000000000..b0ba335c5
--- /dev/null
+++ b/keyboards/gonnerd/keymaps/tkl/keymap.c
@@ -0,0 +1,31 @@
1#include "gonnerd.h"
2
3#define _x_ KC_NO
4#define TRN KC_TRNS
5
6// Keymap layers
7const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8
9 [0] = KEYMAP_TKL( \
10 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SLCK,KC_PAUS, \
11 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \
12 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, KC_DEL, KC_END, KC_PGDN, \
13 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, _x_, KC_ENT, \
14 KC_LSFT, _x_, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _x_, KC_UP, \
15 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \
16 ),
17
18 [1] = KEYMAP_TKL( \
19 RESET, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, \
20 _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, \
21 _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, \
22 _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, \
23 _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, \
24 _x_, _x_, _x_, _x_, _x_, _x_, TRN, _x_, _x_, _x_, _x_ \
25 )
26
27};
28
29const uint16_t PROGMEM fn_actions[] = {
30
31};
diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h
index efb9ebdd7..ea5f2b76e 100644
--- a/keyboards/handwired/promethium/config.h
+++ b/keyboards/handwired/promethium/config.h
@@ -161,7 +161,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
161 161
162#define ___ KC_NO 162#define ___ KC_NO
163 163
164#define KEYMAP( \ 164#define KEYMAP_CUSTOM( \
165 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ 165 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
166 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ 166 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
167 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ 167 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
index 763fa5a27..e229b67e5 100644
--- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
+++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c
@@ -686,7 +686,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
686 * | Ctrl | Alt | GUI | Punc | Num | Space | Fun |Greek | GUI |AltGr | Ctrl | 686 * | Ctrl | Alt | GUI | Punc | Num | Space | Fun |Greek | GUI |AltGr | Ctrl |
687 * `-----------------------------------------------------------------------------------' 687 * `-----------------------------------------------------------------------------------'
688 */ 688 */
689[_QWERTY] = KEYMAP( 689[_QWERTY] = KEYMAP_CUSTOM(
690 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 690 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
691 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT , 691 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT ,
692 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 692 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
@@ -706,7 +706,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
706 * `-----------------------------------------------------------------------------------' 706 * `-----------------------------------------------------------------------------------'
707 */ 707 */
708#ifdef LAYOUT_DVORAK 708#ifdef LAYOUT_DVORAK
709[_DVORAK] = KEYMAP( 709[_DVORAK] = KEYMAP_CUSTOM(
710 _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______, 710 _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
711 _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______, 711 _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______,
712 _______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______, 712 _______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
@@ -728,7 +728,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
728 */ 728 */
729 729
730#ifdef LAYOUT_COLEMAK 730#ifdef LAYOUT_COLEMAK
731[_COLEMAK] = KEYMAP( 731[_COLEMAK] = KEYMAP_CUSTOM(
732 _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______, 732 _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______,
733 _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______, 733 _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______,
734 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 734 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
@@ -750,7 +750,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
750 */ 750 */
751 751
752#ifdef LAYOUT_NORMAN 752#ifdef LAYOUT_NORMAN
753[_NORMAN] = KEYMAP( 753[_NORMAN] = KEYMAP_CUSTOM(
754 _______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______, 754 _______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______,
755 _______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______, 755 _______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______,
756 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, 756 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
@@ -772,7 +772,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
772 */ 772 */
773 773
774#ifdef LAYOUT_WORKMAN 774#ifdef LAYOUT_WORKMAN
775[_WORKMAN] = KEYMAP( 775[_WORKMAN] = KEYMAP_CUSTOM(
776 _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______, 776 _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______,
777 _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______, 777 _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______,
778 _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______, 778 _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______,
@@ -792,7 +792,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
792 * | | | | | | | | | | : | | 792 * | | | | | | | | | | : | |
793 * `-----------------------------------------------------------------------------------' 793 * `-----------------------------------------------------------------------------------'
794 */ 794 */
795[_PUNC] = KEYMAP( 795[_PUNC] = KEYMAP_CUSTOM(
796 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______, 796 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______,
797 KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______, 797 KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______,
798 KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, 798 KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______,
@@ -811,7 +811,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
811 * | | | x | | | | | 0 | , | . | : | | 811 * | | | x | | | | | 0 | , | . | : | |
812 * `-----------------------------------------------------------------------------------' 812 * `-----------------------------------------------------------------------------------'
813 */ 813 */
814[_NUM] = KEYMAP( 814[_NUM] = KEYMAP_CUSTOM(
815 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_1, KC_2, KC_3, S(KC_D), _______, 815 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_1, KC_2, KC_3, S(KC_D), _______,
816 KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______, 816 KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______,
817 KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_7, KC_8, KC_9, S(KC_F), _______, 817 KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_7, KC_8, KC_9, S(KC_F), _______,
@@ -830,7 +830,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
830 * | | | | | | | | | | | | 830 * | | | | | | | | | | | |
831 * `-----------------------------------------------------------------------------------' 831 * `-----------------------------------------------------------------------------------'
832 */ 832 */
833[_FUN] = KEYMAP( 833[_FUN] = KEYMAP_CUSTOM(
834 XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL, 834 XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL,
835 KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, 835 KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,
836 _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______, 836 _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______,
@@ -849,7 +849,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
849 * | | | | | | | | | | | | | 849 * | | | | | | | | | | | | |
850 * `-----------------------------------------------------------------------------------' 850 * `-----------------------------------------------------------------------------------'
851 */ 851 */
852[_GREEKU] = KEYMAP( 852[_GREEKU] = KEYMAP_CUSTOM(
853 _______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______, 853 _______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______,
854 _______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______, 854 _______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______,
855 _______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______, 855 _______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______,
@@ -868,7 +868,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
868 * | | | | | | | | | | | | | 868 * | | | | | | | | | | | | |
869 * `-----------------------------------------------------------------------------------' 869 * `-----------------------------------------------------------------------------------'
870 */ 870 */
871[_GREEKL] = KEYMAP( 871[_GREEKL] = KEYMAP_CUSTOM(
872 _______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______, 872 _______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______,
873 _______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______, 873 _______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______,
874 _______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______, 874 _______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______,
@@ -887,7 +887,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
887 * | | | | | | | | | | | | | 887 * | | | | | | | | | | | | |
888 * `-----------------------------------------------------------------------------------' 888 * `-----------------------------------------------------------------------------------'
889 */ 889 */
890[_EMPTY] = KEYMAP( 890[_EMPTY] = KEYMAP_CUSTOM(
891 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 891 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
892 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 892 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
893 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 893 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
@@ -906,7 +906,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
906 * | | | | | | | | | | | | | 906 * | | | | | | | | | | | | |
907 * `-----------------------------------------------------------------------------------' 907 * `-----------------------------------------------------------------------------------'
908 */ 908 */
909[_EMOJI] = KEYMAP( 909[_EMOJI] = KEYMAP_CUSTOM(
910 X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW), 910 X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW),
911 X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS), 911 X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS),
912 X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH), 912 X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH),
@@ -925,7 +925,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
925 * | | | | | | | | | | | | | 925 * | | | | | | | | | | | | |
926 * `-----------------------------------------------------------------------------------' 926 * `-----------------------------------------------------------------------------------'
927 */ 927 */
928[_GUI] = KEYMAP( 928[_GUI] = KEYMAP_CUSTOM(
929 XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, 929 XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX,
930 KC_ESC, XXXXXXX, S(KC_TAB),KC_ESC, KC_TAB, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, 930 KC_ESC, XXXXXXX, S(KC_TAB),KC_ESC, KC_TAB, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX,
931 XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, KC_SPC, KC_SPC, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, 931 XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, KC_SPC, KC_SPC, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
@@ -944,7 +944,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
944 * | | | | | | | | | | | | | 944 * | | | | | | | | | | | | |
945 * `-----------------------------------------------------------------------------------' 945 * `-----------------------------------------------------------------------------------'
946 */ 946 */
947[_SYS] = KEYMAP( 947[_SYS] = KEYMAP_CUSTOM(
948 DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO, 948 DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO,
949 XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, 949 XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX,
950 XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 950 XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
diff --git a/keyboards/jc65/Makefile b/keyboards/jc65/Makefile
new file mode 100644
index 000000000..57b2ef62e
--- /dev/null
+++ b/keyboards/jc65/Makefile
@@ -0,0 +1,3 @@
1ifndef MAKEFILE_INCLUDED
2 include ../../Makefile
3endif
diff --git a/keyboards/jc65/config.h b/keyboards/jc65/config.h
new file mode 100644
index 000000000..6e1306b27
--- /dev/null
+++ b/keyboards/jc65/config.h
@@ -0,0 +1,63 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.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#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6060
26#define DEVICE_VER 0x0002
27#define MANUFACTURER dou
28#define PRODUCT KEYCLACK65-V1
29#define DESCRIPTION JC65 PCB
30
31/* key matrix size */
32#define MATRIX_ROWS 5
33#define MATRIX_COLS 16
34
35/* QMK JC65 PCB default pin-out */
36#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
37#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4, F5 }
38#define UNUSED_PINS
39
40#define RGB_DI_PIN E2
41#ifdef RGB_DI_PIN
42#define RGBLIGHT_ANIMATIONS
43#define RGBLED_NUM 20
44#define RGBLIGHT_HUE_STEP 8
45#define RGBLIGHT_SAT_STEP 8
46#define RGBLIGHT_VAL_STEP 8
47#endif
48
49#define BACKLIGHT_PIN B6
50#ifdef BACKLIGHT_PIN
51#define BACKLIGHT_LEVELS 3
52#endif
53
54#define DIODE_DIRECTION COL2ROW
55#define DEBOUNCING_DELAY 5
56
57#define IS_COMMAND() ( \
58 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
59 )
60
61
62
63#endif
diff --git a/keyboards/jc65/jc65.c b/keyboards/jc65/jc65.c
new file mode 100644
index 000000000..82b1d5741
--- /dev/null
+++ b/keyboards/jc65/jc65.c
@@ -0,0 +1,28 @@
1#include "jc65.h"
2
3void matrix_init_kb(void) {
4 // put your keyboard start-up code here
5 // runs once when the firmware starts up
6
7 matrix_init_user();
8}
9
10void matrix_scan_kb(void) {
11 // put your looping keyboard code here
12 // runs every cycle (a lot)
13
14 matrix_scan_user();
15}
16
17bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
18 // put your per-action keyboard code here
19 // runs for every action, just before processing by the firmware
20
21 return process_record_user(keycode, record);
22}
23
24void led_set_kb(uint8_t usb_led) {
25 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
26
27 led_set_user(usb_led);
28}
diff --git a/keyboards/jc65/jc65.h b/keyboards/jc65/jc65.h
new file mode 100644
index 000000000..41ec3cf64
--- /dev/null
+++ b/keyboards/jc65/jc65.h
@@ -0,0 +1,21 @@
1#ifndef JC65_H
2#define JC65_H
3
4#include "quantum.h"
5
6#define KEYMAP( \
7 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
8 K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
9 K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
10 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \
11 K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F \
12)\
13{\
14 {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F}, \
15 {K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F}, \
16 {K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F}, \
17 {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F}, \
18 {K40, K41, KC_NO, K43, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F}, \
19}
20
21#endif
diff --git a/keyboards/jc65/keymaps/default/Makefile b/keyboards/jc65/keymaps/default/Makefile
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/jc65/keymaps/default/Makefile
diff --git a/keyboards/jc65/keymaps/default/config.h b/keyboards/jc65/keymaps/default/config.h
new file mode 100644
index 000000000..a5568e400
--- /dev/null
+++ b/keyboards/jc65/keymaps/default/config.h
@@ -0,0 +1 @@
#include "../../config.h"
diff --git a/keyboards/jc65/keymaps/default/keymap.c b/keyboards/jc65/keymaps/default/keymap.c
new file mode 100644
index 000000000..de787f389
--- /dev/null
+++ b/keyboards/jc65/keymaps/default/keymap.c
@@ -0,0 +1,11 @@
1#include "jc65.h"
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = KEYMAP(
5 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_BSLS, KC_BSPC, KC_INS,
6 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, KC_DEL,
7 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_PGUP,
8 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
9 KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
10 ),
11};
diff --git a/keyboards/jc65/keymaps/default/readme.md b/keyboards/jc65/keymaps/default/readme.md
new file mode 100644
index 000000000..13430a630
--- /dev/null
+++ b/keyboards/jc65/keymaps/default/readme.md
@@ -0,0 +1,10 @@
1Default Keymap
2===
3
4Super simple default keymap with only a base layer.
5
6Keymap Maintainer: [Ethan Madden](https://github.com/jetpacktuxedo)
7
8Difference from base layout: This is (as close as I can tell) the same as the layout that ships on the boards other than default underglow color.
9
10Intended usage: This is mostly provided for testing before you build your own keymap and as a reference to a stock(ish) configuration
diff --git a/keyboards/jc65/keymaps/jetpacktuxedo/Makefile b/keyboards/jc65/keymaps/jetpacktuxedo/Makefile
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/jc65/keymaps/jetpacktuxedo/Makefile
diff --git a/keyboards/jc65/keymaps/jetpacktuxedo/config.h b/keyboards/jc65/keymaps/jetpacktuxedo/config.h
new file mode 100644
index 000000000..a5568e400
--- /dev/null
+++ b/keyboards/jc65/keymaps/jetpacktuxedo/config.h
@@ -0,0 +1 @@
#include "../../config.h"
diff --git a/keyboards/jc65/keymaps/jetpacktuxedo/keymap.c b/keyboards/jc65/keymaps/jetpacktuxedo/keymap.c
new file mode 100644
index 000000000..af02b6f10
--- /dev/null
+++ b/keyboards/jc65/keymaps/jetpacktuxedo/keymap.c
@@ -0,0 +1,25 @@
1#include "jc65.h"
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = KEYMAP(
5 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_BSLS, KC_GRV, KC_INS,
6 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_DEL,
7 MO(1), 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_PGUP,
8 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
9 KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
10 ),
11 [1] = KEYMAP(
12 KC_GRV, 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_TRNS,
13 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_DEL, KC_TRNS,
14 MO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
15 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_TRNS, KC_PGUP, KC_VOLD,
16 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_HOME, KC_PGDN, KC_END
17 ),
18 [2] = KEYMAP(
19 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
20 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
21 MO(1), RGB_SAD, RGB_SAI, KC_TRNS, KC_TRNS, RGB_HUD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
22 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
23 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS
24 ),
25};
diff --git a/keyboards/jc65/keymaps/jetpacktuxedo/readme.md b/keyboards/jc65/keymaps/jetpacktuxedo/readme.md
new file mode 100644
index 000000000..4083d8f47
--- /dev/null
+++ b/keyboards/jc65/keymaps/jetpacktuxedo/readme.md
@@ -0,0 +1,10 @@
1Jetpacktuxedo's Keymap
2===
3
4Split backspace, 6.25u space, caps is fn, my standard fn layer, reset + rgb controls on layer(2)
5
6Keymap Maintainer: [Ethan Madden](https://github.com/jetpacktuxedo)
7
8Difference from base layout: The base layer is the same, except caps is fn, and there are additional tools on layers
9
10Intended usage: This is my daily driver keymap
diff --git a/keyboards/jc65/readme.md b/keyboards/jc65/readme.md
new file mode 100644
index 000000000..55ed72229
--- /dev/null
+++ b/keyboards/jc65/readme.md
@@ -0,0 +1,22 @@
1JC65
2===
3
4![JC65](https://imgur.com/a/C2oa5)
5
6The JC65 PCB actually has two revisions: A QMK native version, and a PS2AVRGB version. Jchan offered both PCBs as options during the M65-A Round 1 group buy, and were also available choices for the 65% acrylic case group buy. In the near future both PCB versions should be available from keyclack.com when the storefront part opens.
7
8These docs are for the QMK version of the PCB. [More info on qmk.fm](http://qmk.fm/planck/)
9
10Keyboard Maintainer: [Ethan Madden](https://github.com/jetpacktuxedo)
11Hardware Supported: JC65 rev.qmk
12Hardware Availability: [keyclack.com](https://keyclack.com/)
13
14Make example for this keyboard (after setting up your build environment):
15
16 make jc65-default
17
18Or to make and flash:
19
20 make jc65-default-dfu
21
22See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
diff --git a/keyboards/jc65/rules.mk b/keyboards/jc65/rules.mk
new file mode 100644
index 000000000..c2c02b614
--- /dev/null
+++ b/keyboards/jc65/rules.mk
@@ -0,0 +1,68 @@
1# MCU name
2#MCU = at90usb1287
3MCU = atmega32u4
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18
19#
20# LUFA specific
21#
22# Target architecture (see library "Board Types" documentation).
23ARCH = AVR8
24
25# Input clock frequency.
26# This will define a symbol, F_USB, in all source code files equal to the
27# input clock frequency (before any prescaling is performed) in Hz. This value may
28# differ from F_CPU if prescaling is used on the latter, and is required as the
29# raw input clock is fed directly to the PLL sections of the AVR for high speed
30# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
31# at the end, this will be done automatically to create a 32-bit value in your
32# source code.
33#
34# If no clock division is performed on the input clock inside the AVR (via the
35# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
36F_USB = $(F_CPU)
37
38# Interrupt driven control endpoint task(+60)
39OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
40
41
42# Boot Section Size in *bytes*
43# Teensy halfKay 512
44# Teensy++ halfKay 1024
45# Atmel DFU loader 4096
46# LUFA bootloader 4096
47# USBaspLoader 2048
48OPT_DEFS += -DBOOTLOADER_SIZE=4096
49
50
51# Build Options
52# change yes to no to disable
53#
54BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
55MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
56EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
57CONSOLE_ENABLE = no # Console for debug(+400)
58COMMAND_ENABLE = no # Commands for debug and configuration
59# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
60SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
61# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
62NKRO_ENABLE = yes # USB Nkey Rollover
63BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
64RGBLIGHT_ENABLE = yes
65MIDI_ENABLE = no # MIDI controls
66UNICODE_ENABLE = no # Unicode
67BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
68AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/lets_split/keymaps/piemod/README.md b/keyboards/lets_split/keymaps/piemod/README.md
new file mode 100644
index 000000000..f2a051da1
--- /dev/null
+++ b/keyboards/lets_split/keymaps/piemod/README.md
@@ -0,0 +1,31 @@
1PieMod
2======
3
4A keymap for users that need:
5
6- *P*: Programming symbols.
7
8- *I*: i3wm.
9
10- *E*: Emacs.
11
12- *M*: Macros.
13
14- *O*: Ortholinear.
15
16- *D*: Dvorak.
17
18Still a work-in-progress. Suggestions welcome @ https://github.com/dwrz/piemod.
19
20### Keymap
21
22![PieMod Keymap](./keymap.png)
23
24### TODO
25
26- [ ] Add Emacs layer.
27- [ ] Add Macro layer.
28- [ ] Add system control keys (rotation, brightness).
29- [ ] Switch " and ' quotes (or function to toggle default).
30- [ ] Add capslock.
31.
diff --git a/keyboards/lets_split/keymaps/piemod/config.h b/keyboards/lets_split/keymaps/piemod/config.h
new file mode 100644
index 000000000..7f33a4363
--- /dev/null
+++ b/keyboards/lets_split/keymaps/piemod/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
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#ifndef CONFIG_USER_H
22#define CONFIG_USER_H
23
24#include "../../config.h"
25
26/* Use I2C or Serial, not both */
27
28#define USE_SERIAL
29// #define USE_I2C
30
31/* Select hand configuration */
32
33#define MASTER_LEFT
34// #define _MASTER_RIGHT
35// #define EE_HANDS
36
37#endif \ No newline at end of file
diff --git a/keyboards/lets_split/keymaps/piemod/keymap.c b/keyboards/lets_split/keymaps/piemod/keymap.c
new file mode 100644
index 000000000..558370fa8
--- /dev/null
+++ b/keyboards/lets_split/keymaps/piemod/keymap.c
@@ -0,0 +1,121 @@
1#include "lets_split.h"
2#include "action_layer.h"
3#include "eeconfig.h"
4
5extern keymap_config_t keymap_config;
6
7#define _DVORAK 0
8#define _ARROW 1 //F(1)
9#define _SYMBOL 2 // F(2)
10#define _NUMBER 3 // F(3)
11#define _FUNCTION 4 // F(4)
12#define _EMACS 5 // F(5)
13#define _MACROS 6 // F(6)
14#define _MOUSE 7 // F(7)
15
16enum custom_keycodes {
17 DVORAK = SAFE_RANGE,
18 ARROW,
19 SYMBOL,
20 NUMBER,
21 FUNCTION,
22 EMACS,
23 MACROS,
24 MOUSE,
25};
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28
29[_DVORAK] = KEYMAP( \
30 KC_ESC, KC_QUOTE, F(7), KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DELETE, \
31 KC_TAB, F(1), F(2), F(3), F(4), KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENTER, \
32 KC_LSHIFT, KC_SCOLON, F(5), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_MINUS, \
33 F(10), F(6), KC_MENU, KC_LALT, KC_LGUI, KC_BSPACE, KC_SPACE, KC_RCTRL, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \
34),
35
36[_ARROW] = KEYMAP( \
37 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, \
38 KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, \
39 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, \
40 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \
41),
42
43[_SYMBOL] = KEYMAP( \
44 KC_TILD, KC_GRAVE, KC_NO, KC_EQUAL, KC_PLUS, KC_NO, KC_LBRACKET, KC_RBRACKET, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
45 KC_NO, KC_NO, KC_TRNS, KC_SCOLON, KC_COLN, KC_NO, KC_LCBR, KC_RCBR, KC_DLR, KC_PERC, KC_CIRC, F(21), \
46 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLASH, KC_SLASH, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, \
47 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_SLASH, KC_MINUS, KC_PLUS, KC_EQUAL \
48),
49
50[_NUMBER] = KEYMAP( \
51 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_NO, \
52 KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_NO, \
53 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_NO, \
54 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_SLASH, KC_MINUS, KC_PLUS, KC_EQUAL \
55),
56
57[_FUNCTION] = KEYMAP( \
58 KC_PSCREEN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, \
59 KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
60 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, \
61 RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DELETE, KC_INSERT, KC_HOME, KC_PGDN, KC_PGUP, KC_END \
62),
63
64[_EMACS] = KEYMAP( \
65 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
66 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
67 KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
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 \
69),
70
71[_MACROS] = KEYMAP( \
72 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
73 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
74 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
75 KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \
76),
77
78[_MOUSE] = KEYMAP( \
79 KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, \
80 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, \
81 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
82 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, KC_NO, KC_NO, KC_NO \
83)
84};
85
86enum function_id {
87 TEENSY_KEY,
88 CUSTOM_KEY,
89 L_CTRL_ALT_ENT,
90 R_CTRL_ALT_ENT,
91};
92
93int CAPSLOCKED = 0;
94
95 const uint16_t PROGMEM fn_actions[] = {
96
97 // DVORAK 0
98 // ARROW 1, F(1)
99 // SYMBOL 2, F(2)
100 // NUMBER 3, F(3)
101 // FUNCTION 4, F(4)
102 // EMACS 5, F(5)
103 // MACROS 6, F(6)
104 // MOUSE 7, F(7)
105
106 // Layers
107 [1] = ACTION_LAYER_TAP_KEY(1, KC_A), // FN1 = Momentary Arrow layer on A.
108 [2] = ACTION_LAYER_TAP_KEY(2, KC_O), // FN2 = Momentary symbOl layer on O.
109 [3] = ACTION_LAYER_TAP_KEY(3, KC_E), // FN3 = Momentary numbEr layer on E.
110 [4] = ACTION_LAYER_TAP_KEY(4, KC_U), // FN4 = Momentary fUnction layer on U.
111 [5] = ACTION_LAYER_TAP_KEY(5, KC_Q), // FN5 = Momentary emaQs layer on Q.
112 [6] = ACTION_LAYER_TAP_KEY(6, KC_LCTRL), // FN6 = Momentary MACROS on ??? key.
113 [7] = ACTION_LAYER_TAP_KEY(7, KC_COMMA), // FN7 = Momentary MOUSE on , key.
114
115 // Special Keys
116 [10] = ACTION_MODS_KEY(KC_LCTRL, KC_LALT), // FN10 = Ctrl + Alt.
117
118 // Symbols
119 [21] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // FN21 = Question mark.
120
121 };
diff --git a/keyboards/nyquist/keymaps/333fred/Makefile b/keyboards/nyquist/keymaps/333fred/Makefile
new file mode 100644
index 000000000..f85443280
--- /dev/null
+++ b/keyboards/nyquist/keymaps/333fred/Makefile
@@ -0,0 +1,7 @@
1KEY_LOCK_ENABLE = yes
2NKRO_ENABLE = yes
3CONSOLE_ENABLE = yes
4
5ifndef QUANTUM_DIR
6 include ../../../../Makefile
7endif
diff --git a/keyboards/nyquist/keymaps/333fred/README.md b/keyboards/nyquist/keymaps/333fred/README.md
new file mode 100644
index 000000000..427659141
--- /dev/null
+++ b/keyboards/nyquist/keymaps/333fred/README.md
@@ -0,0 +1,75 @@
1# 333fred's Nyquist Layout
2
3This nyquist layout is based on my Ergodox Infinity Layout, which is [here](../../../ergodox/keymaps/333fred/README.md). It doesn't have all of my VS extensions, as I have my nyquist at home, not at work.
4
5## Layers
6
7### QWERTY
8The shift modifiers on this layer all use OSM to allow for quick single capitalization. Press and hold F to go to the VIM movement layer. Layer is also a one-shot layer toggle, and can be held down to type multiple characters on the Lower layer. Game is a regular toggle layer.
9
10```
11Qwerty
12,-----------------------------------------------------------------------------------.
13| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
14|------+------+------+------+------+------+------+------+------+------+------+------|
15| Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
16|------+------+------+------+------+-------------+------+------+------+------+------|
17| Esc | A | S | D |LTVIMF| G | H | J | K | L | ; | " |
18|------+------+------+------+------+------|------+------+------+------+------+------|
19| Shift| Z | X | C | V | B | N | M | , | . |/ Ctrl| Shift|
20|------+------+------+------+------+------+------+------+------+------+------+------|
21| Ctrl | Alt | F4 | GUI |Lower | Bksp | Spc | Ent | Lock | = | Game | Del |
22`-----------------------------------------------------------------------------------'
23```
24
25### Lower
26My symbol and numpad layer. APscr is a macro that sends ALT+PRSC, to take a screenshot of the current application.
27
28```
29Lower
30,-----------------------------------------------------------------------------------.
31| Caps | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
32|------+------+------+------+------+-------------+------+------+------+------+------|
33| | ! | @ | ( | ) | | | 7 | 8 | 9 | * | ) | F12 |
34|------+------+------+------+------+-------------+------+------+------+------+------|
35| | # | $ | { | } | ` | 4 | 5 | 6 | + | } | | |
36|------+------+------+------+------+------|------+------+------+------+------+------|
37| APscr| % | ^ | [ | ] | ~ | 1 | 2 | 3 | \ | Vol- | Vol+ |
38|------+------+------+------+------+------+------+------+------+------+------+------|
39| Pscr | | | | | | 0 | . | = | Prev | Next | Play |
40`-----------------------------------------------------------------------------------'
41```
42
43### VIM Movement
44Pressing and holding F moves to this layer, which turns hjkl into vim movement keys. a and d are macros which send WIN+Left and WIN+Right, respectively. Shift and CTRL have been remapped for ease of selecting text.
45```
46Vim Movement (Hold down F)
47,-----------------------------------------------------------------------------------.
48| | | | | | | | | | | | |
49|------+------+------+------+------+------+------+------+------+------+------+------|
50| | | | | | | | | | | | |
51|------+------+------+------+------+------+------+------+------+------+------+------|
52| | DLeft|DRight| LCTRL| | | Left | Down | Up | Right| | |
53|------+------+------+------+------+------+------+------+------+------+------+------|
54| | | | | | | | | | | | |
55|------+------+------+------+------+------+------+------+------+------+------+------|
56| | | | | LShft| | | | | | | |
57`-----------------------------------------------------------------------------------'
58 ```
59
60### Gaming
61This layer is designed for playing games. All one-shot modification has been turned off, and the common game controls keys have been moved around for easier access.
62```
63Gaming mode (Raise)
64,-----------------------------------------------------------------------------------.
65| ESC | | | | | | | | | | | |
66|------+------+------+------+------+------+------+------+------+------+------+------|
67| | | | | | | | | | | | |
68|------+------+------+------+------+------+------+------+------+------+------+------|
69| CTRL | | | | F | | | | | | | |
70|------+------+------+------+------+------+------+------+------+------+------+------|
71| Shift| Z | | | | | | | | | | |
72|------+------+------+------+------+------+------+------+------+------+------+------|
73| Enter| | Lock | | Alt | Spc | Lower| Left | Up | Down | Right|QWERTY|
74`-----------------------------------------------------------------------------------'
75```
diff --git a/keyboards/nyquist/keymaps/333fred/config.h b/keyboards/nyquist/keymaps/333fred/config.h
new file mode 100644
index 000000000..86fe52165
--- /dev/null
+++ b/keyboards/nyquist/keymaps/333fred/config.h
@@ -0,0 +1,14 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#define USE_SERIAL
7#define MASTER_LEFT
8
9#undef TAPPING_TERM
10#define TAPPING_TERM 150
11
12#define PERMISSIVE_HOLD
13
14#endif
diff --git a/keyboards/nyquist/keymaps/333fred/keymap.c b/keyboards/nyquist/keymaps/333fred/keymap.c
new file mode 100644
index 000000000..2edfeefe7
--- /dev/null
+++ b/keyboards/nyquist/keymaps/333fred/keymap.c
@@ -0,0 +1,135 @@
1#include "nyquist.h"
2#include "action_layer.h"
3#include "eeconfig.h"
4
5extern keymap_config_t keymap_config;
6
7#define _QWERTY 0
8#define _LOWER 1
9#define _VIM 2
10#define _GAME 3
11
12enum custom_macros {
13 DLEFT,
14 DRIGHT,
15 PSCREEN_APP
16};
17
18// Fillers to make layering more clear
19#define _______ KC_TRNS
20#define XXXXXXX KC_NO
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24/* Qwerty
25 * ,-----------------------------------------------------------------------------------.
26 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
27 * |------+------+------+------+------+------+------+------+------+------+------+------|
28 * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
29 * |------+------+------+------+------+-------------+------+------+------+------+------|
30 * | Esc | A | S | D |LTVIMF| G | H | J | K | L | ; | " |
31 * |------+------+------+------+------+------|------+------+------+------+------+------|
32 * | Shift| Z | X | C | V | B | N | M | , | . |/ Ctrl| Shift|
33 * |------+------+------+------+------+------+------+------+------+------+------+------|
34 * | Ctrl | Alt | F4 | GUI |Lower | Bksp | Spc | Ent | Alt | + | Game | Del |
35 * `-----------------------------------------------------------------------------------'
36 */
37[_QWERTY] = KEYMAP( \
38 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, \
39 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, \
40 KC_ESC, KC_A, KC_S, KC_D, LT(_VIM, KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
41 OSM(MOD_LSFT), LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RCTL_T(KC_SLSH), OSM(MOD_RSFT), \
42 KC_LCTL, KC_LALT, KC_F4, KC_LGUI, OSL(_LOWER), KC_BSPC, KC_SPC, KC_ENT, KC_LOCK, KC_EQL, TG(_GAME), KC_DEL \
43),
44
45/* Lower
46 * ,-----------------------------------------------------------------------------------.
47 * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
48 * |------+------+------+------+------+-------------+------+------+------+------+------|
49 * | | ! | @ | ( | ) | | | 7 | 8 | 9 | * | ) | F12 |
50 * |------+------+------+------+------+-------------+------+------+------+------+------|
51 * | | # | $ | { | } | ` | 4 | 5 | 6 | + | } | | |
52 * |------+------+------+------+------+------|------+------+------+------+------+------|
53 * | APscr| % | ^ | [ | ] | ~ | 1 | 2 | 3 | \ | Vol- | Vol+ |
54 * |------+------+------+------+------+------+------+------+------+------+------+------|
55 * | Pscr | | | | | | 0 | . | = | Prev | Next | Play |
56 * `-----------------------------------------------------------------------------------'
57 */
58[_LOWER] = KEYMAP( \
59 KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
60 _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_7, KC_8, KC_9, KC_ASTR, KC_RPRN, KC_F12, \
61 _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_4, KC_5, KC_6, KC_PLUS, KC_RCBR, KC_PIPE, \
62 M(PSCREEN_APP), KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_1, KC_2, KC_3, KC_BSLS, KC_VOLD, KC_VOLU, \
63 KC_PSCR, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, KC_MPRV, KC_MNXT, KC_MPLY \
64),
65
66/* Vim Movement (Hold down F)
67 * ,-----------------------------------------------------------------------------------.
68 * | | | | | | | | | | | | |
69 * |------+------+------+------+------+------+------+------+------+------+------+------|
70 * | | | | | | | | | | | | |
71 * |------+------+------+------+------+------+------+------+------+------+------+------|
72 * | | DLeft|DRight| LCTRL| | | Left | Down | Up | Right| | |
73 * |------+------+------+------+------+------+------+------+------+------+------+------|
74 * | | | | | | | | | | | | |
75 * |------+------+------+------+------+------+------+------+------+------+------+------|
76 * | | | | | LShft| | | | | | | |
77 * `-----------------------------------------------------------------------------------'
78 */
79[_VIM] = KEYMAP( \
80 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
81 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
82 _______, M(DLEFT), M(DRIGHT), KC_LCTL, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \
83 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
84 _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______ \
85),
86
87/* Gaming mode (Raise)
88 * All one-shot mods are disabled on this layer
89 * ,-----------------------------------------------------------------------------------.
90 * | ESC | | | | | | | | | | | |
91 * |------+------+------+------+------+------+------+------+------+------+------+------|
92 * | | | | | | | | | | | | |
93 * |------+------+------+------+------+------+------+------+------+------+------+------|
94 * | CTRL | | | | F | | | | | | | |
95 * |------+------+------+------+------+------+------+------+------+------+------+------|
96 * | Shift| Z | | | | | | | | | | |
97 * |------+------+------+------+------+------+------+------+------+------+------+------|
98 * | Enter| | Lock | | Alt | Spc | Lower| Left | Up | Down | Right|QWERTY|
99 * `-----------------------------------------------------------------------------------'
100 */
101[_GAME] = KEYMAP( \
102 KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
103 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
104 KC_LCTL, _______, _______, _______, KC_F, _______, _______, _______, _______, _______, _______, _______, \
105 KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
106 KC_ENT, _______, KC_LOCK, _______, KC_LALT, KC_SPC, OSL(_LOWER), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TO(_QWERTY) \
107)
108
109};
110
111void persistent_default_layer_set(uint16_t default_layer) {
112 eeconfig_update_default_layer(default_layer);
113 default_layer_set(default_layer);
114}
115
116const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
117 switch(id) {
118 case DLEFT:
119 if (record->event.pressed) { // Windows move desktop left
120 return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END);
121 }
122 break;
123 case DRIGHT:
124 if (record->event.pressed) { // Windows move desktop right
125 return MACRO(D(LCTL), D(LGUI), T(RIGHT), U(LGUI), U(LCTL), END);
126 }
127 break;
128 case PSCREEN_APP:
129 if (record->event.pressed) {
130 return MACRO(D(LALT), T(PSCR), U(LALT), END);
131 }
132 break;
133 }
134 return MACRO_NONE;
135}
diff --git a/keyboards/org60/Makefile b/keyboards/org60/Makefile
new file mode 100644
index 000000000..57b2ef62e
--- /dev/null
+++ b/keyboards/org60/Makefile
@@ -0,0 +1,3 @@
1ifndef MAKEFILE_INCLUDED
2 include ../../Makefile
3endif
diff --git a/keyboards/org60/config.h b/keyboards/org60/config.h
new file mode 100644
index 000000000..62b3b69a0
--- /dev/null
+++ b/keyboards/org60/config.h
@@ -0,0 +1,82 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.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#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6060
26#define DEVICE_VER 0x0001
27#define MANUFACTURER 大橘子外设 (Large orange peripherals)
28#define PRODUCT Org60
29#define DESCRIPTION Org60 Keyboard PCB by 大橘子外设 (Large orange peripherals)
30
31/* key matrix size */
32#define MATRIX_ROWS 5
33#define MATRIX_COLS 14
34
35/*
36 * Keyboard Matrix Assignments
37 *
38 * Change this to how you wired your keyboard
39 * COLS: AVR pins used for columns, left to right
40 * ROWS: AVR pins used for rows, top to bottom
41 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
42 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
43 *
44*/
45#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
46#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
47#define UNUSED_PINS
48
49/* Backlight Setup */
50#define BACKLIGHT_PIN F5
51#define BACKLIGHT_LEVELS 6
52//#define BACKLIGHT_BREATHING
53
54/* COL2ROW or ROW2COL */
55#define DIODE_DIRECTION COL2ROW
56
57/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
58#define DEBOUNCING_DELAY 5
59
60/* RGB Underglow
61 * F6 PIN for Org60 that has pre-soldered WS2812 LEDs
62 */
63#define RGB_DI_PIN F6
64#define RGBLIGHT_ANIMATIONS
65#define RGBLED_NUM 20 // Number of LEDs
66#define RGBLIGHT_HUE_STEP 10
67#define RGBLIGHT_SAT_STEP 17
68#define RGBLIGHT_VAL_STEP 17
69
70/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
71#define LOCKING_SUPPORT_ENABLE
72/* Locking resynchronize hack */
73#define LOCKING_RESYNC_ENABLE
74
75/* key combination for magic key command */
76#define IS_COMMAND() ( \
77 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
78)
79
80#define TAPPING_TERM 200
81
82#endif
diff --git a/keyboards/org60/keymaps/boardy/Makefile b/keyboards/org60/keymaps/boardy/Makefile
new file mode 100644
index 000000000..0755d5009
--- /dev/null
+++ b/keyboards/org60/keymaps/boardy/Makefile
@@ -0,0 +1,15 @@
1
2# QMK Build Options
3# change to "no" to disable the options, or define them in the Makefile in
4# the appropriate keymap folder that will get included automatically
5#
6CONSOLE_ENABLE = no # Enable debugging console
7COMMAND_ENABLE = no # Commands for debug and configuration
8TAP_DANCE_ENABLE = no # Tap Dance skills
9UNICODE_ENABLE = no # Unicode
10
11ifndef QUANTUM_DIR
12 include ../../../../Makefile
13endif
14
15
diff --git a/keyboards/org60/keymaps/boardy/keymap.c b/keyboards/org60/keymaps/boardy/keymap.c
new file mode 100644
index 000000000..635838f6c
--- /dev/null
+++ b/keyboards/org60/keymaps/boardy/keymap.c
@@ -0,0 +1,121 @@
1#include "org60.h"
2#include "action_layer.h"
3
4// Keyboard Layers
5enum keyboard_layers {
6 _BASE, // Base Layer
7 _FUNCTION, // Function Layer
8};
9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11
12 [_BASE] = KEYMAP(
13 /*
14 0: Base Layer
15 .--------------------------------------------------------------------------------------------------------------------------------------.
16 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | |
17 | | | | | | | | | | | | | | |
18 | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
19 |--------------------------------------------------------------------------------------------------------------------------------------|
20 | | | | | | | | | | | | { | ] | | |
21 | | | | | | | | | | | | | | |
22 | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
23 |--------------------------------------------------------------------------------------------------------------------------------------|
24 | | | | | | | | | | | : | " | |
25 | | | | | | | | | | | | | |
26 | PrntScr | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
27 |--------------------------------------------------------------------------------------------------------------------------------------|
28 | | | | | | | | | < | > | ? |░░░░░░| |░░░░░░░░|
29 | | | | | | | | | | | |░░░░░░| |░░░░░░░░|
30 | Shift | Z | X | C | V | B | N | M | , | . | / |░░░░░░| Up |░░░░░░░░|
31 |--------------------------------------------------------------------------------------------------------------------------------------|
32 | | | | | |░░░░░░| | | |
33 | | | | | |░░░░░░| | | |
34 | Ctrl | Win | Alt | Space | FnO |░░░░░░| Left | Down | Right |
35 '--------------------------------------------------------------------------------------------------------------------------------------'
36 */
37
38 //--------------------------------------------------------------------------------------------------------------------------------------.
39 // | | | | | | | | | | | | | |
40 // | | | | | | | | | | | | | |
41 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_BSPC, KC_NO,
42 //--------------------------------------------------------------------------------------------------------------------------------------|
43 // | | | | | | | | | | | | | |
44 // | | | | | | | | | | | | | |
45 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,
46 //--------------------------------------------------------------------------------------------------------------------------------------|
47 // | | | | | | | | | | | | |
48 // | | | | | | | | | | | | |
49 KC_PSCR, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
50 //--------------------------------------------------------------------------------------------------------------------------------------|
51 // | | | | | | | | | | |░░░░░░| |░░░░░░░░|
52 // | | | | | | | | | | |░░░░░░| |░░░░░░░░|
53 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_UP, KC_NO,
54 //--------------------------------------------------------------------------------------------------------------------------------------|
55 // | | | | |░░░░░░| | | |
56 // | | | | |░░░░░░| | | |
57 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, F(0), KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT),
58 //--------------------------------------------------------------------------------------------------------------------------------------'
59
60
61 [_FUNCTION] = KEYMAP(
62 /*
63 1: Function Layer
64 .--------------------------------------------------------------------------------------------------------------------------------------.
65 | | | | | | | | | | | | | | |
66 | | | | | | | | | | | | | | |
67 | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete |
68 |--------------------------------------------------------------------------------------------------------------------------------------|
69 | | | | | | | | | | | | | | |
70 | | | | | RGB | RGB | RGB | RGB | | | | | | |
71 | Reset | 7 | 8 | 9 | Toggle | Mode | Pwr+ | Pwr- | | Insert | Pause | Home | End | Sleep |
72 |--------------------------------------------------------------------------------------------------------------------------------------|
73 | | | | | | | | | | | | | |
74 | | | | | RGB | RGB | RGB | RGB | | | Page | Page | |
75 | Caps Lock | 4 | 5 | 6 | Hue+ | Hue- | Sat+ | Sat- | | | Up | Down | Enter |
76 |--------------------------------------------------------------------------------------------------------------------------------------|
77 | | | | | | | | | | | |░░░░░░| |░░░░░░░░|
78 | | | | | | Back | Back | | Prev | Next | |░░░░░░| |░░░░░░░░|
79 | Shift | 1 | 2 | 3 | | Light+ | Light- | | Track | Track | |░░░░░░| Up |░░░░░░░░|
80 |--------------------------------------------------------------------------------------------------------------------------------------|
81 | | | | | |░░░░░░| | | |
82 | | | | | |░░░░░░| | | |
83 | Ctrl | Win | Alt | 0 | Fn0 |░░░░░░| Mute | Down | Right |
84 '--------------------------------------------------------------------------------------------------------------------------------------'
85 */
86
87 //--------------------------------------------------------------------------------------------------------------------------------------.
88 // | | | | | | | | | | | | | |
89 // | | | | | | | | | | | | | |
90 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO,
91 //--------------------------------------------------------------------------------------------------------------------------------------|
92 // | | | | | | | | | | | | | |
93 // | | | | | | | | | | | | | |
94 RESET, KC_7, KC_8, KC_9, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, KC_NO, KC_INS, KC_PAUS, KC_HOME, KC_END, KC_SLEP,
95 //--------------------------------------------------------------------------------------------------------------------------------------|
96 // | | | | | | | | | | | | |
97 // | | | | | | | | | | | | |
98 KC_CAPS, KC_4, KC_5, KC_6, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_NO, KC_NO, KC_PGUP, KC_PGDN, KC_NO, KC_ENT,
99 //--------------------------------------------------------------------------------------------------------------------------------------|
100 // | | | | | | | | | | |░░░░░░| |░░░░░░░░|
101 // | | | | | | | | | | |░░░░░░| |░░░░░░░░|
102 KC_LSFT, KC_NO, KC_1, KC_2, KC_3, KC_NO, BL_INC, BL_DEC, KC_NO, KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_VOLU, KC_NO,
103 //--------------------------------------------------------------------------------------------------------------------------------------|
104 // | | | | |░░░░░░| | | |
105 // | | | | |░░░░░░| | | |
106 KC_LCTL, KC_LGUI, KC_LALT, KC_0, F(0), KC_NO, KC_MUTE, KC_VOLD, KC_MPLY),
107 //--------------------------------------------------------------------------------------------------------------------------------------'
108
109};
110
111
112// Custom Actions
113const uint16_t PROGMEM fn_actions[] = {
114 [0] = ACTION_LAYER_MOMENTARY(_FUNCTION), // to Function overlay
115};
116
117
118// Loop
119void matrix_scan_user(void) {
120 // Empty
121}; \ No newline at end of file
diff --git a/keyboards/org60/keymaps/boardy/readme.md b/keyboards/org60/keymaps/boardy/readme.md
new file mode 100644
index 000000000..3643fbce3
--- /dev/null
+++ b/keyboards/org60/keymaps/boardy/readme.md
@@ -0,0 +1,7 @@
1# Boardy layout
2
3![Uses this layout](http://i.imgur.com/k3g488o.jpg)
4
5This is my custom layout for my board Boardy designed to be used with an [Org60] and custom plate.
6
7[Org60]: https://world.taobao.com/item/544441405112.htm
diff --git a/keyboards/xd60/keymaps/BASE/keymap.c b/keyboards/org60/keymaps/default/keymap.c
index b3ccd5e58..9d18d50e3 100644
--- a/keyboards/xd60/keymaps/BASE/keymap.c
+++ b/keyboards/org60/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
1#include "xd60.h" 1#include "org60.h"
2#include "action_layer.h" 2#include "action_layer.h"
3 3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -43,4 +43,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
43// Loop 43// Loop
44void matrix_scan_user(void) { 44void matrix_scan_user(void) {
45 // Empty 45 // Empty
46}; 46}; \ No newline at end of file
diff --git a/keyboards/xd60/keymaps/BASE/readme.md b/keyboards/org60/keymaps/default/readme.md
index 89f9acaa9..89f9acaa9 100644
--- a/keyboards/xd60/keymaps/BASE/readme.md
+++ b/keyboards/org60/keymaps/default/readme.md
diff --git a/keyboards/org60/org60.c b/keyboards/org60/org60.c
new file mode 100644
index 000000000..77a5e7c18
--- /dev/null
+++ b/keyboards/org60/org60.c
@@ -0,0 +1,19 @@
1#include "org60.h"
2
3
4extern inline void org60_caps_led_on(void);
5extern inline void org60_bl_led_on(void);
6
7extern inline void org60_caps_led_off(void);
8extern inline void org60_bl_led_off(void);
9
10
11void led_set_kb(uint8_t usb_led) {
12 if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
13 org60_caps_led_on();
14 } else {
15 org60_caps_led_off();
16 }
17
18 led_set_user(usb_led);
19}
diff --git a/keyboards/org60/org60.h b/keyboards/org60/org60.h
new file mode 100644
index 000000000..7c1004342
--- /dev/null
+++ b/keyboards/org60/org60.h
@@ -0,0 +1,37 @@
1#ifndef Org60_H
2#define Org60_H
3
4#include "quantum.h"
5#include "led.h"
6
7/* Org60 LEDs
8 * GPIO pads
9 * 0 F7 not connected
10 * 1 F6 RGB PWM Underglow
11 * 2 F5 Backlight LED
12 * 3 F4 not connected
13 * B2 Capslock LED
14 * B0 not connected
15 */
16inline void org60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
17inline void org60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
18
19inline void org60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
20inline void org60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
21
22/* Org60 Keymap Definition Macro */
23#define KEYMAP( \
24 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
26 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
27 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K47, K3D, K3C, \
28 K40, K41, K42, K45, K4A, K4B, K48, K4C, K4D \
29) { \
30 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
31 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
32 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
33 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
34 { K40, K41, K42, KC_NO,KC_NO,K45, KC_NO,K47, K48, K49, K4A, K4B, K4C, K4D } \
35}
36
37#endif
diff --git a/keyboards/org60/readme.md b/keyboards/org60/readme.md
new file mode 100644
index 000000000..8e02a4021
--- /dev/null
+++ b/keyboards/org60/readme.md
@@ -0,0 +1,21 @@
1# QMK Firmware for 大橘子外设 (Large Orange Peripheral)'s 60% Org60 PCB
2
3![Top View of a pair of XD60 Keyboards (same layout as Org60)](https://i.imgur.com/3Jq2743.jpg)
4
5
6## Quantum MK Firmware
7For the full Quantum feature list, see [the parent readme.md](/readme.md).
8
9
10## Additional Notes
11The Org60 seems to be a variant of the XD60 (which is essentially a GH60 rev. C, with support for a right-hand arrow cluster), which has USB-C and built-in RGB underlighting.
12
13Compatibility with GH60 expansion boards is unknown.
14
15Board also supports in-switch LEDs (two-pin, single colour), as well as WS2182 LED strips for underglow lighting.
16
17Default keymap included, matching configuration on sale page.
18
19
20## Build
21To build the default keymap, simply run `make org60-default`. \ No newline at end of file
diff --git a/keyboards/org60/rules.mk b/keyboards/org60/rules.mk
new file mode 100644
index 000000000..566ac0cb8
--- /dev/null
+++ b/keyboards/org60/rules.mk
@@ -0,0 +1,64 @@
1# MCU name
2MCU = atmega32u4
3
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18
19# LUFA specific
20# Target architecture (see library "Board Types" documentation).
21ARCH = AVR8
22
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37
38# Interrupt driven control endpoint task(+60)
39OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
40
41
42# Boot Section Size in *bytes*
43# Teensy halfKay 512
44# Teensy++ halfKay 1024
45# Atmel DFU loader 4096
46# LUFA bootloader 4096
47# USBaspLoader 2048
48OPT_DEFS += -DBOOTLOADER_SIZE=4096
49
50
51# Build Options
52AUDIO_ENABLE = no # Audio output on port C6
53BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
54BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
55BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
56COMMAND_ENABLE = no # Commands for debug and configuration
57CONSOLE_ENABLE = no # Console for debug(+400)
58EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
59MIDI_ENABLE = no # MIDI controls
60MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
61NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
62RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
63SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
64UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/planck/keymaps/piemod/Makefile b/keyboards/planck/keymaps/piemod/Makefile
new file mode 100755
index 000000000..1e48872e3
--- /dev/null
+++ b/keyboards/planck/keymaps/piemod/Makefile
@@ -0,0 +1,10 @@
1SUBPROJECT_DEFAULT = rev4
2
3MOUSEKEY_ENABLE = yes
4BLUETOOTH_ENABLE = yes
5EXTRAKEY_ENABLE = yes
6AUDIO_ENABLE = yes
7
8ifndef QUANTUM_DIR
9 include ../../../../Makefile
10endif
diff --git a/keyboards/planck/keymaps/piemod/README.md b/keyboards/planck/keymaps/piemod/README.md
new file mode 100644
index 000000000..f2a051da1
--- /dev/null
+++ b/keyboards/planck/keymaps/piemod/README.md
@@ -0,0 +1,31 @@
1PieMod
2======
3
4A keymap for users that need:
5
6- *P*: Programming symbols.
7
8- *I*: i3wm.
9
10- *E*: Emacs.
11
12- *M*: Macros.
13
14- *O*: Ortholinear.
15
16- *D*: Dvorak.
17
18Still a work-in-progress. Suggestions welcome @ https://github.com/dwrz/piemod.
19
20### Keymap
21
22![PieMod Keymap](./keymap.png)
23
24### TODO
25
26- [ ] Add Emacs layer.
27- [ ] Add Macro layer.
28- [ ] Add system control keys (rotation, brightness).
29- [ ] Switch " and ' quotes (or function to toggle default).
30- [ ] Add capslock.
31.
diff --git a/keyboards/planck/keymaps/piemod/keymap.c b/keyboards/planck/keymaps/piemod/keymap.c
new file mode 100644
index 000000000..e6e7a8a5a
--- /dev/null
+++ b/keyboards/planck/keymaps/piemod/keymap.c
@@ -0,0 +1,111 @@
1#include "planck.h"
2#include "action_layer.h"
3#ifdef AUDIO_ENABLE
4 #include "audio.h"
5#endif
6#include "eeconfig.h"
7
8#define DVORAK 0
9#define ARROW 1 //F(1)
10#define SYMBOL 2 // F(2)
11#define NUMBER 3 // F(3)
12#define FUNCTION 4 // F(4)
13#define EMACS 5 // F(5)
14#define CUSTOM_MACROS 6 // F(6)
15#define MOUSE 7 // F(7)
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 [DVORAK] = {
19 {KC_ESC, KC_QUOTE, F(7), KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DELETE},
20 {KC_TAB, F(1), F(2), F(3), F(4), KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENTER},
21 {KC_LSHIFT, KC_SCOLON, F(5), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_MINUS},
22 {F(10), F(6), KC_MENU, KC_LALT, KC_LGUI, KC_BSPACE, KC_SPACE, KC_RCTRL, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT},
23 },
24
25 [ARROW] = {
26 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP},
27 {KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN},
28 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO},
29 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}
30 },
31
32 [SYMBOL] = {
33 {KC_TILD, KC_GRAVE, KC_NO, KC_EQUAL, KC_PLUS, KC_NO, KC_LBRACKET, KC_RBRACKET, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN},
34 {KC_NO, KC_NO, KC_TRNS, KC_SCOLON, KC_COLN, KC_NO, KC_LCBR, KC_RCBR, KC_DLR, KC_PERC, KC_CIRC, F(21)},
35 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLASH, KC_SLASH, KC_EXLM, KC_AT, KC_HASH, KC_PIPE},
36 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_SLASH, KC_MINUS, KC_PLUS, KC_EQUAL}
37 },
38
39 [NUMBER] = {
40 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_NO},
41 {KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_NO},
42 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_NO},
43 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_SLASH, KC_MINUS, KC_PLUS, KC_EQUAL}
44 },
45
46 [FUNCTION] = {
47 {KC_PSCREEN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6},
48 {KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
49 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE},
50 {RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DELETE, KC_INSERT, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
51 },
52
53 [EMACS] = {
54 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
55 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
56 {KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
57 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}
58 },
59
60 [CUSTOM_MACROS] = {
61 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
62 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
63 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
64 {KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}
65 },
66
67 [MOUSE] = {
68 {KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO},
69 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO},
70 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
71 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, KC_NO, KC_NO, KC_NO}
72 },
73
74 };
75
76 enum function_id {
77 TEENSY_KEY,
78 CUSTOM_KEY,
79 L_CTRL_ALT_ENT,
80 R_CTRL_ALT_ENT,
81 };
82
83 int CAPSLOCKED = 0;
84
85 const uint16_t PROGMEM fn_actions[] = {
86
87 // DVORAK 0
88 // ARROW 1, F(1)
89 // SYMBOL 2, F(2)
90 // NUMBER 3, F(3)
91 // FUNCTION 4, F(4)
92 // EMACS 5, F(5)
93 // MACROS 6, F(6)
94 // MOUSE 7, F(7)
95
96 // Layers
97 [1] = ACTION_LAYER_TAP_KEY(1, KC_A), // FN1 = Momentary Arrow layer on A.
98 [2] = ACTION_LAYER_TAP_KEY(2, KC_O), // FN2 = Momentary symbOl layer on O.
99 [3] = ACTION_LAYER_TAP_KEY(3, KC_E), // FN3 = Momentary numbEr layer on E.
100 [4] = ACTION_LAYER_TAP_KEY(4, KC_U), // FN4 = Momentary fUnction layer on U.
101 [5] = ACTION_LAYER_TAP_KEY(5, KC_Q), // FN5 = Momentary emaQs layer on Q.
102 [6] = ACTION_LAYER_TAP_KEY(6, KC_LCTRL), // FN6 = Momentary MACROS on ??? key.
103 [7] = ACTION_LAYER_TAP_KEY(7, KC_COMMA), // FN7 = Momentary MOUSE on , key.
104
105 // Special Keys
106 [10] = ACTION_MODS_KEY(KC_LCTRL, KC_LALT), // FN10 = Ctrl + Alt.
107
108 // Symbols
109 [21] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // FN21 = Question mark.
110
111 };
diff --git a/keyboards/planck/keymaps/priyadi/config.h b/keyboards/planck/keymaps/priyadi/config.h
index adc1c69aa..448ae3b90 100644
--- a/keyboards/planck/keymaps/priyadi/config.h
+++ b/keyboards/planck/keymaps/priyadi/config.h
@@ -23,7 +23,7 @@
23#define DOUBLESPACE_LAYER_ENABLE 23#define DOUBLESPACE_LAYER_ENABLE
24 // #define TOLELOT_ENABLE 24 // #define TOLELOT_ENABLE
25 25
26#define KEYMAP( \ 26#define KEYMAP_CUSTOM( \
27 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ 27 k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
28 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ 28 k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
29 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ 29 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
diff --git a/keyboards/planck/planck.h b/keyboards/planck/planck.h
index 8cfee5d1c..10f17b4a4 100644
--- a/keyboards/planck/planck.h
+++ b/keyboards/planck/planck.h
@@ -36,4 +36,6 @@
36 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ 36 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
37} 37}
38 38
39#define KEYMAP PLANCK_GRID
40
39#endif 41#endif
diff --git a/keyboards/uk78/config.h b/keyboards/uk78/config.h
index 859fbf90f..e538ad33b 100644
--- a/keyboards/uk78/config.h
+++ b/keyboards/uk78/config.h
@@ -73,4 +73,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
73#define RGBLIGHT_VAL_STEP 8 73#define RGBLIGHT_VAL_STEP 8
74#endif 74#endif
75 75
76#endif \ No newline at end of file 76#endif
diff --git a/keyboards/xd60/keymaps/base/keymap.c b/keyboards/xd60/keymaps/base/keymap.c
deleted file mode 100644
index b3ccd5e58..000000000
--- a/keyboards/xd60/keymaps/base/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
1#include "xd60.h"
2#include "action_layer.h"
3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5
6 // 0: Base Layer
7 KEYMAP(
8 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_NO, \
9 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, \
10 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_NO, KC_ENT, \
11 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, KC_RSFT ,KC_UP, KC_DEL, \
12 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
13
14 // 1: Function Layer
15 KEYMAP(
16 RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \
17 KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
18 KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
19 KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_RSFT, KC_NO ,KC_PGUP, KC_INS, \
20 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END),
21
22};
23
24// Custom Actions
25const uint16_t PROGMEM fn_actions[] = {
26 [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
27};
28
29// Macros
30const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
31
32 // MACRODOWN only works in this function
33 switch(id) {
34 case 0:
35 if (record->event.pressed) { register_code(KC_RSFT); }
36 else { unregister_code(KC_RSFT); }
37 break;
38 }
39
40 return MACRO_NONE;
41};
42
43// Loop
44void matrix_scan_user(void) {
45 // Empty
46};
diff --git a/keyboards/xd60/keymaps/base/readme.md b/keyboards/xd60/keymaps/base/readme.md
deleted file mode 100644
index 89f9acaa9..000000000
--- a/keyboards/xd60/keymaps/base/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
1![Uses this layout](https://i.redd.it/v64eqwsrk8jx.jpg)
2
3All of the keys which CAN have a function should be assigned one.
4
5The keys with KC_NO cannot be assigned a value
diff --git a/lib/chibios b/lib/chibios
Subproject 8fce03b3a75c743e5d5c40b9d59c1637c59d22a Subproject d34e8eb83101a95f98892bf68605fe545821f32
diff --git a/quantum/process_keycode/process_key_lock.c b/quantum/process_keycode/process_key_lock.c
new file mode 100644
index 000000000..d7978f91c
--- /dev/null
+++ b/quantum/process_keycode/process_key_lock.c
@@ -0,0 +1,138 @@
1/* Copyright 2017 Fredric Silberberg
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 "inttypes.h"
18#include "stdint.h"
19#include "process_key_lock.h"
20
21#define BV_64(shift) (((uint64_t)1) << (shift))
22#define GET_KEY_ARRAY(code) (((code) < 0x40) ? key_state[0] : \
23 ((code) < 0x80) ? key_state[1] : \
24 ((code) < 0xC0) ? key_state[2] : key_state[3])
25#define GET_CODE_INDEX(code) (((code) < 0x40) ? (code) : \
26 ((code) < 0x80) ? (code) - 0x40 : \
27 ((code) < 0xC0) ? (code) - 0x80 : (code) - 0xC0)
28#define KEY_STATE(code) (GET_KEY_ARRAY(code) & BV_64(GET_CODE_INDEX(code))) == BV_64(GET_CODE_INDEX(code))
29#define SET_KEY_ARRAY_STATE(code, val) do { \
30 switch (code) { \
31 case 0x00 ... 0x3F: \
32 key_state[0] = (val); \
33 break; \
34 case 0x40 ... 0x7F: \
35 key_state[1] = (val); \
36 break; \
37 case 0x80 ... 0xBF: \
38 key_state[2] = (val); \
39 break; \
40 case 0xC0 ... 0xFF: \
41 key_state[3] = (val); \
42 break; \
43 } \
44} while(0)
45#define SET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code) | BV_64(GET_CODE_INDEX(code))))
46#define UNSET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code)) & ~(BV_64(GET_CODE_INDEX(code))))
47#define IS_STANDARD_KEYCODE(code) ((code) <= 0xFF)
48
49// Locked key state. This is an array of 256 bits, one for each of the standard keys supported qmk.
50uint64_t key_state[4] = { 0x0, 0x0, 0x0, 0x0 };
51bool watching = false;
52
53// Translate any OSM keycodes back to their unmasked versions.
54uint16_t inline translate_keycode(uint16_t keycode) {
55 if (keycode > QK_ONE_SHOT_MOD && keycode <= QK_ONE_SHOT_MOD_MAX) {
56 return keycode ^ QK_ONE_SHOT_MOD;
57 } else {
58 return keycode;
59 }
60}
61
62bool process_key_lock(uint16_t *keycode, keyrecord_t *record) {
63 // We start by categorizing the keypress event. In the event of a down
64 // event, there are several possibilities:
65 // 1. The key is not being locked, and we are not watching for new keys.
66 // In this case, we bail immediately. This is the common case for down events.
67 // 2. The key was locked, and we need to unlock it. In this case, we will
68 // reset the state in our map and return false. When the user releases the
69 // key, the up event will no longer be masked and the OS will observe the
70 // released key.
71 // 3. KC_LOCK was just pressed. In this case, we set up the state machine
72 // to watch for the next key down event, and finish processing
73 // 4. The keycode is below 0xFF, and we are watching for new keys. In this case,
74 // we will send the key down event to the os, and set the key_state for that
75 // key to mask the up event.
76 // 5. The keycode is above 0xFF, and we're wathing for new keys. In this case,
77 // the user pressed a key that we cannot "lock", as it's a series of keys,
78 // or a macro invocation, or a layer transition, or a custom-defined key, or
79 // or some other arbitrary code. In this case, we bail immediately, reset
80 // our watch state, and return true.
81 //
82 // In the event of an up event, there are these possibilities:
83 // 1. The key is not being locked. In this case, we return true and bail
84 // immediately. This is the common case.
85 // 2. The key is being locked. In this case, we will mask the up event
86 // by returning false, so the OS never sees that the key was released
87 // until the user pressed the key again.
88
89 // We translate any OSM keycodes back to their original keycodes, so that if the key being
90 // one-shot modded is a standard keycode, we can handle it. This is the only set of special
91 // keys that we handle
92 uint16_t translated_keycode = translate_keycode(*keycode);
93
94 if (record->event.pressed) {
95 // Non-standard keycode, reset and return
96 if (!(IS_STANDARD_KEYCODE(translated_keycode) || translated_keycode == KC_LOCK)) {
97 watching = false;
98 return true;
99 }
100
101 // If we're already watching, turn off the watch.
102 if (translated_keycode == KC_LOCK) {
103 watching = !watching;
104 return false;
105 }
106
107 if (IS_STANDARD_KEYCODE(translated_keycode)) {
108 // We check watching first. This is so that in the following scenario, we continue to
109 // hold the key: KC_LOCK, KC_F, KC_LOCK, KC_F
110 // If we checked in reverse order, we'd end up holding the key pressed after the second
111 // KC_F press is registered, when the user likely meant to hold F
112 if (watching) {
113 watching = false;
114 SET_KEY_STATE(translated_keycode);
115 // We need to set the keycode passed in to be the translated keycode, in case we
116 // translated a OSM back to the original keycode.
117 *keycode = translated_keycode;
118 // Let the standard keymap send the keycode down event. The up event will be masked.
119 return true;
120 }
121
122 if (KEY_STATE(translated_keycode)) {
123 UNSET_KEY_STATE(translated_keycode);
124 // The key is already held, stop this process. The up event will be sent when the user
125 // releases the key.
126 return false;
127 }
128 }
129
130 // Either the key isn't a standard key, or we need to send the down event. Continue standard
131 // processing
132 return true;
133 } else {
134 // Stop processing if it's a standard key and we're masking up.
135 return !(IS_STANDARD_KEYCODE(translated_keycode) && KEY_STATE(translated_keycode));
136 }
137}
138
diff --git a/quantum/process_keycode/process_key_lock.h b/quantum/process_keycode/process_key_lock.h
new file mode 100644
index 000000000..876db4a32
--- /dev/null
+++ b/quantum/process_keycode/process_key_lock.h
@@ -0,0 +1,24 @@
1/* Copyright 2017 Fredric Silberberg
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#ifndef PROCESS_KEY_LOCK_H
18#define PROCESS_KEY_LOCK_H
19
20#include "quantum.h"
21
22bool process_key_lock(uint16_t *keycode, keyrecord_t *record);
23
24#endif // PROCESS_KEY_LOCK_H
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 1f8ce6c46..aac1d07a9 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -40,13 +40,12 @@ extern backlight_config_t backlight_config;
40 #ifndef AG_SWAP_SONG 40 #ifndef AG_SWAP_SONG
41 #define AG_SWAP_SONG SONG(AG_SWAP_SOUND) 41 #define AG_SWAP_SONG SONG(AG_SWAP_SOUND)
42 #endif 42 #endif
43 #ifndef DEFAULT_LAYER_SONGS
44 #define DEFAULT_LAYER_SONGS { }
45 #endif
46 float goodbye_song[][2] = GOODBYE_SONG; 43 float goodbye_song[][2] = GOODBYE_SONG;
47 float ag_norm_song[][2] = AG_NORM_SONG; 44 float ag_norm_song[][2] = AG_NORM_SONG;
48 float ag_swap_song[][2] = AG_SWAP_SONG; 45 float ag_swap_song[][2] = AG_SWAP_SONG;
49 float default_layer_songs[][16][2] = DEFAULT_LAYER_SONGS; 46 #ifdef DEFAULT_LAYER_SONGS
47 float default_layer_songs[][16][2] = DEFAULT_LAYER_SONGS;
48 #endif
50#endif 49#endif
51 50
52static void do_code16 (uint16_t code, void (*f) (uint8_t)) { 51static void do_code16 (uint16_t code, void (*f) (uint8_t)) {
@@ -193,6 +192,10 @@ bool process_record_quantum(keyrecord_t *record) {
193 // } 192 // }
194 193
195 if (!( 194 if (!(
195 #if defined(KEY_LOCK_ENABLE)
196 // Must run first to be able to mask key_up events.
197 process_key_lock(&keycode, record) &&
198 #endif
196 process_record_kb(keycode, record) && 199 process_record_kb(keycode, record) &&
197 #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) 200 #if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
198 process_midi(keycode, record) && 201 process_midi(keycode, record) &&
@@ -475,6 +478,13 @@ bool process_record_quantum(keyrecord_t *record) {
475 void (*method)(uint8_t) = (record->event.pressed) ? &add_key : &del_key; 478 void (*method)(uint8_t) = (record->event.pressed) ? &add_key : &del_key;
476 uint8_t shifted = get_mods() & ((MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT) 479 uint8_t shifted = get_mods() & ((MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)
477 |MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI))); 480 |MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)));
481
482#ifdef GRAVE_ESC_CTRL_OVERRIDE
483 // if CTRL is pressed, ESC is always read as ESC, even if SHIFT or GUI is pressed.
484 // this is handy for the ctrl+shift+esc shortcut on windows, among other things.
485 if (get_mods() & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)))
486 shifted = 0;
487#endif
478 488
479 method(shifted ? KC_GRAVE : KC_ESCAPE); 489 method(shifted ? KC_GRAVE : KC_ESCAPE);
480 send_keyboard_report(); 490 send_keyboard_report();
@@ -556,7 +566,7 @@ void send_string_with_delay(const char *str, uint8_t interval) {
556} 566}
557 567
558void set_single_persistent_default_layer(uint8_t default_layer) { 568void set_single_persistent_default_layer(uint8_t default_layer) {
559 #ifdef AUDIO_ENABLE 569 #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS)
560 PLAY_SONG(default_layer_songs[default_layer]); 570 PLAY_SONG(default_layer_songs[default_layer]);
561 #endif 571 #endif
562 eeconfig_update_default_layer(1U<<default_layer); 572 eeconfig_update_default_layer(1U<<default_layer);
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 453cb43f8..9a6d691a1 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -99,6 +99,10 @@ extern uint32_t default_layer_state;
99 #include "process_combo.h" 99 #include "process_combo.h"
100#endif 100#endif
101 101
102#ifdef KEY_LOCK_ENABLE
103 #include "process_key_lock.h"
104#endif
105
102#define SEND_STRING(str) send_string(PSTR(str)) 106#define SEND_STRING(str) send_string(PSTR(str))
103extern const bool ascii_to_shift_lut[0x80]; 107extern const bool ascii_to_shift_lut[0x80];
104extern const uint8_t ascii_to_keycode_lut[0x80]; 108extern const uint8_t ascii_to_keycode_lut[0x80];
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index acdb9248d..1bb6706ba 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -419,6 +419,10 @@ enum quantum_keycodes {
419 OUT_BT, 419 OUT_BT,
420#endif 420#endif
421 421
422#ifdef KEY_LOCK_ENABLE
423 KC_LOCK,
424#endif
425
422 // always leave at the end 426 // always leave at the end
423 SAFE_RANGE 427 SAFE_RANGE
424}; 428};
diff --git a/quantum/template/config.h b/quantum/template/config.h
index dbca45765..700a56f52 100644
--- a/quantum/template/config.h
+++ b/quantum/template/config.h
@@ -67,6 +67,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
67/* Locking resynchronize hack */ 67/* Locking resynchronize hack */
68#define LOCKING_RESYNC_ENABLE 68#define LOCKING_RESYNC_ENABLE
69 69
70/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
71 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
72 */
73// #define GRAVE_ESC_CTRL_OVERRIDE
74
70/* 75/*
71 * Force NKRO 76 * Force NKRO
72 * 77 *
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index b7cb0a559..be06d611b 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -382,7 +382,7 @@ $(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir -p $(OUTPUT) 2>/dev/null)))
382 382
383 383
384# Listing of phony targets. 384# Listing of phony targets.
385.PHONY : all finish sizebefore sizeafter gccversion \ 385.PHONY : all finish sizebefore sizeafter qmkversion \
386build elf hex eep lss sym coff extcoff \ 386gccversion build elf hex eep lss sym coff extcoff \
387clean clean_list debug gdb-config show_path \ 387clean clean_list debug gdb-config show_path \
388program teensy dfu flip dfu-ee flip-ee dfu-start \ No newline at end of file 388program teensy dfu flip dfu-ee flip-ee dfu-start \ No newline at end of file