summaryrefslogtreecommitdiffstats
path: root/keyboards/planck
diff options
context:
space:
mode:
authorOlivier <olivier@gid0.org>2016-08-20 18:07:02 +0200
committerOlivier <olivier@gid0.org>2016-08-20 18:07:02 +0200
commit009ab77d3e26bd348e45a9a8102b2737c9367979 (patch)
treeb01491320736c818584098c4b7a6dce8de53f405 /keyboards/planck
parent4cfb262faab653247f4d66d44bf5f3339d82bd36 (diff)
parenta3f726174c0f8f358f7970767a1bf743fd9ad761 (diff)
Merge https://github.com/jackhumbert/qmk_firmware
Diffstat (limited to 'keyboards/planck')
-rw-r--r--keyboards/planck/keymaps/bone2planck/keymap.c200
-rw-r--r--keyboards/planck/keymaps/callum/Makefile25
-rw-r--r--keyboards/planck/keymaps/callum/keymap.c138
-rw-r--r--keyboards/planck/keymaps/callum/readme.md48
-rw-r--r--keyboards/planck/keymaps/cbbrowne/keymap.c1
-rw-r--r--keyboards/planck/keymaps/circuit/Makefile25
-rw-r--r--keyboards/planck/keymaps/circuit/Readme.md44
-rw-r--r--keyboards/planck/keymaps/circuit/config.h91
-rw-r--r--keyboards/planck/keymaps/circuit/keyboard-layout.pngbin0 -> 154368 bytes
-rw-r--r--keyboards/planck/keymaps/circuit/keymap.c258
-rw-r--r--keyboards/planck/keymaps/dbroqua/keymap.c314
-rw-r--r--keyboards/planck/keymaps/default/Makefile2
-rw-r--r--keyboards/planck/keymaps/default/keymap.c16
-rw-r--r--keyboards/planck/keymaps/experimental/Makefile6
-rw-r--r--keyboards/planck/keymaps/experimental/config.h8
-rw-r--r--keyboards/planck/keymaps/experimental/keymap.c74
-rw-r--r--keyboards/planck/keymaps/jeebak/Makefile25
-rw-r--r--keyboards/planck/keymaps/jeebak/keymap.c459
-rw-r--r--keyboards/planck/keymaps/jeebak/readme.md127
-rw-r--r--keyboards/planck/keymaps/premek/Makefile25
-rw-r--r--keyboards/planck/keymaps/premek/keymap.c231
-rw-r--r--keyboards/planck/keymaps/premek/readme.md4
-rw-r--r--keyboards/planck/keymaps/pvc/config.h5
-rw-r--r--keyboards/planck/keymaps/xyverz/keymap.c262
-rw-r--r--keyboards/planck/keymaps/xyverz/makefile.mk25
-rw-r--r--keyboards/planck/keymaps/yang/config.h5
-rw-r--r--keyboards/planck/keymaps/yang/keymap.c66
27 files changed, 2323 insertions, 161 deletions
diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c
index f40b08685b..66cf9386df 100644
--- a/keyboards/planck/keymaps/bone2planck/keymap.c
+++ b/keyboards/planck/keymaps/bone2planck/keymap.c
@@ -1,91 +1,135 @@
-
-#include "planck.h"
+#include "planck.h"
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
#endif
#include "keymap_german.h"
+#define _______ KC_TRNS
+
/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
- It has Umlauts and "ß" as it is optimized for a mix of German & English.
- My favourite features are the placement of the special characters often used for programming right on the home row
- and the number & navigation block combo, so you never have to move your hands from their home position.
-
- Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
+It has "üäöß" as it is optimized for a mix of German & English.
+My favourite features are the placement of the special characters often used for programming right on the home row
+and the number & navigation block combo, so you never have to move your hands from their home position.
+
+Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Bone2
- * ,-----------------------------------------------------------------------------------.
- * | Q | J | D | U | A | X | P | H | L | M | W | ẞ |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | M1 | C | T | I | E | O | B | N | R | S | G | M1 |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
- * `-----------------------------------------------------------------------------------'
- */
- [0] = {
- { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS },
- { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) },
- { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S },
- { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT }
- },
-
- /* M1 Special Characters
- * ,-----------------------------------------------------------------------------------.
- * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | # | $ | | | ~ | € | + | % | " | ' | ; | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
- * `-----------------------------------------------------------------------------------'
- */
- [1] = {
- { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO },
- { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS },
- { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO },
- { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
- },
-
- /* Navigation & Number Blocks
- * ,-----------------------------------------------------------------------------------.
- * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter |
- * `-----------------------------------------------------------------------------------'
- */
- [2] = {
- { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO },
- { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO },
- { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S },
- { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }
- },
-
- /* Function & Media Keys
- * ,-----------------------------------------------------------------------------------.
- * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter |
- * `-----------------------------------------------------------------------------------'
- */
- [3] = {
- { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO },
- { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO },
- { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS},
- { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
- }
+/* Bone2
+* ,-----------------------------------------------------------------------------------.
+* | Q | J | D | U | A | X | P | H | L | M | W | ẞ |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* |M1/Tab| C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Tab/Enter
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | | Ctrl | Esc |
+* `-----------------------------------------------------------------------------------'
+*/
+[0] = {
+ { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS },
+ { LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) },
+ { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT },
+ { KC_LGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_NO, KC_RCTL, KC_ESC }
+},
+
+/* M1 Special Characters
+very ergonomic placement for coding
+* ,-----------------------------------------------------------------------------------.
+* | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* |M1/Tab| \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| //hold for M1, tap for Tab/Enter
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| # | $ | | | ~ | € | + | % | " | ' | ; |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | | Ctrl | Esc |
+* `-----------------------------------------------------------------------------------'
+*/
+[1] = {
+ { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, DE_ACUT },
+ { _______, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, _______ },
+ { _______, DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
+},
+
+/* Navigation & Number Blocks
+very easy to get used to & intuituve placement
+* ,-----------------------------------------------------------------------------------.
+* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | Tab | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | Enter|
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | GUI | Ctrl | Alt | M3 | M2 | Space | M2 | M3 | | Ctrl | Esc |
+* `-----------------------------------------------------------------------------------'
+*/
+[2] = {
+ { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO },
+ { KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_ENT },
+ { _______, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, DE_0, DE_1, DE_2, DE_3, DE_SCLN, _______ },
+ { _______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______ }
+},
+
+/* Flipped Navigation & Number Blocks for one handed use
+accessed by sliding from M2 to M3 with thumb
+* ,-----------------------------------------------------------------------------------.
+* | | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | Tab | . | 4 | 5 | 6 | , | Home | Left | Down | Right| End | Enter|
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| 0 | 1 | 2 | 3 | ; | | Tab | Ins | Enter| |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | GUI | Ctrl | Alt | M3 | | Space | | M3 | | Ctrl | Esc |
+* `-----------------------------------------------------------------------------------'
+*/
+
+[3] = {
+ { KC_NO, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO },
+ { _______, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ },
+ { _______, DE_0, DE_1, DE_2, DE_3, DE_SCLN, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, _______ },
+ { _______, _______, _______, _______, KC_NO, _______, _______, KC_NO, _______, _______, _______, _______ }
+},
+
+
+/* Function & Media Keys
+slide from m4 to m5 to access flipped version
+* ,-----------------------------------------------------------------------------------.
+* | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | |
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | GUI | Ctrl | Alt | M4 | M5 | Space | M5 | M4 | | Ctrl | Esc |
+* `-----------------------------------------------------------------------------------'
+*/
+[4] = {
+ { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO },
+ { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO },
+ { _______, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ },
+ { _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ }
+},
+
+
+/* flipped Function & Media Keys
+* ,-----------------------------------------------------------------------------------.
+* | | | F7 | F8 | F9 | | | Print|Scroll| Pause| | |
+* |------+------+------+------+------+-------------+------+------+------+------+------|
+* | | ³ | F4 | F5 | F6 | | | Mute | Vol- | Vol+ | | |
+* |------+------+------+------+------+------|------+------+------+------+------+------|
+* | Shift| ² | F1 | F2 | F3 | | | Prev | Play | Next | |Shift |
+* |------+------+------+------+------+------+------+------+------+------+------+------|
+* | GUI | Ctrl | Alt | | M5 | Space | M5 | | | Ctrl | Esc |
+* `-----------------------------------------------------------------------------------'
+*/
+[5] = {
+ { KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO },
+ { KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO },
+ { _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ },
+ { _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO, _______, _______, _______ }
+}
};
const uint16_t PROGMEM fn_actions[] = {
diff --git a/keyboards/planck/keymaps/callum/Makefile b/keyboards/planck/keymaps/callum/Makefile
new file mode 100644
index 0000000000..1d76966a6c
--- /dev/null
+++ b/keyboards/planck/keymaps/callum/Makefile
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c
new file mode 100644
index 0000000000..ed187df1da
--- /dev/null
+++ b/keyboards/planck/keymaps/callum/keymap.c
@@ -0,0 +1,138 @@
+#include "planck.h"
+#include "action_layer.h"
+#ifdef AUDIO_ENABLE
+ #include "audio.h"
+#endif
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _BASE 0
+#define _MOVE 1
+#define _SYMB 2
+#define _FUNC 3
+
+enum planck_keycodes {
+ BASE = SAFE_RANGE,
+ MOVE,
+ SYMB,
+ FUNC
+};
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* BASE
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | - |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Bksp | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Func | GUI | Alt | Ctrl | Symb |Enter |Space | Move | GUI | Alt | Ctrl |Caps |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_BASE] = {
+ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS},
+ {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT},
+ {FUNC, KC_LGUI, KC_LALT, KC_LCTL, SYMB, KC_ENT, KC_SPC, MOVE, KC_RGUI, KC_RALT, KC_RCTL, KC_CAPS}
+},
+
+/* MOVE
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | | Home | Up | End | | | Home | Up | End | | Esc |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | | Left | Down |Right | | | Left | Down |Right | | Del |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | |Pg Up |Pg Dn | | |Pg Dn |Pg Up | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_MOVE] = {
+ {KC_ESC, _______, KC_HOME, KC_UP, KC_END, _______, _______, KC_HOME, KC_UP, KC_END, _______, KC_ESC},
+ {KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL},
+ {_______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, KC_PGDN, KC_PGUP, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* SYMB
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Esc |
+ * |-----------------------------------------------------------------------------------.
+ * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | ~ | ` | + | = | | | \ | [ | ] | { | } | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_SYMB] = {
+ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESC },
+ {KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
+ {_______, KC_TILD, KC_GRV, KC_PLUS, KC_EQL, KC_PIPE, KC_BSLS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* FUNC
+ * ,-----------------------------------------------------------------------------------.
+ * | F12 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |-----------------------------------------------------------------------------------.
+ * | | Play | Prev | Next | BL+ | | | | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | Mute | Vol- | Vol+ | BL- | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |Reset |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNC] = {
+ {KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 },
+ {_______, KC_MPLY, KC_MPRV, KC_MNXT, KC_PAUS, _______, _______, _______, _______, _______, _______, _______},
+ {_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_SLCK, _______, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET }
+}
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MOVE:
+ if (record->event.pressed) {
+ layer_on(_MOVE);
+ update_tri_layer(_MOVE, _SYMB, _FUNC);
+ } else {
+ layer_off(_MOVE);
+ update_tri_layer(_MOVE, _SYMB, _FUNC);
+ }
+ return false;
+ break;
+ case SYMB:
+ if (record->event.pressed) {
+ layer_on(_SYMB);
+ update_tri_layer(_MOVE, _SYMB, _FUNC);
+ } else {
+ layer_off(_SYMB);
+ update_tri_layer(_MOVE, _SYMB, _FUNC);
+ }
+ return false;
+ break;
+ case FUNC:
+ if (record->event.pressed) {
+ layer_on(_FUNC);
+ } else {
+ layer_off(_FUNC);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md
new file mode 100644
index 0000000000..030def7f77
--- /dev/null
+++ b/keyboards/planck/keymaps/callum/readme.md
@@ -0,0 +1,48 @@
+# callum’s planck layout
+
+This is a layout for the grid planck, built with a few ideals in mind. These ideals are just my opinion mind! The great thing about *qmk* is that we can all afford to have different opinions about what makes a good layout:
+
+- Minimal response times should be maintained. i.e. keys that react differently depending on whether they are tapped or held, keys that react differently if they are double tapped, etc. should be avoided --- since they inevitably send their keycode later than a normal key, interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording.
+- The hands should never need to leave the home position. The usual culprit for this is the arrow cluster, so the arrow cluster should be as close to home as possible.
+- There should be two of every modifier (one on each side), since otherwise certain long key combinations become hard to make.
+- Backspace should be in the “capslock position” as God intended.
+- The keyboard should be usable without any firmware changes on any operating system. In my case that means it should work on *Windows* and *Linux* without any software modifications, while I can change the behaviour slightly on *macOS* in software since that’s my home OS. The images reflect the intended use on *macOS* **after** minor software tweaks; which will be noted.
+
+We have four layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow cluster etc, a `SYMB` layer, with numbers and symbols; and a `FUNC` layer, with function keys and media keys.
+
+## The `BASE` layer
+![](http://i.imgur.com/aEXOlWl.png)
+
+This is the default layer; in [colemak](https://colemak.com). `esc` and `del` are conspicuously absent but are especially easy to reach from either of the other main layers (see below). The `backspace` location is standard colemak. The `caps` key is still on the `BASE` layer but only because I don’t really use the bottom corners so there’s nothing else I would rather put there. Having `enter` on a thumb means I can still have `quote` immediately to the right of `O`, something that would have annoyed me endlessly otherwise. `minus` is in the upper right because I had an extra space and it’s probably my next most used key that didn’t yet have a home.
+
+The `MOVE` and `SYMB` layers are reached by holding down the `move` and `symb` keys respectively. The `FUNC` layer is reached by holding down both the `move` and `symb` keys simultaneosly, *or* by holding down the `fn` key. The intended use is that whenever both hands are on the keyboard, the former method is used, and the latter is only used when, for example, reaching over to the keyboard with one hand to access the media controls.
+
+The `ctrl`, `alt`, `cmd` cluster is asymmetric around the centre so that at least one of each of the modifiers can be reached with the thumbs. The intended use is to always hit the left `cmd` and the right `ctrl`, unless an awkward key combination dictates otherwise.
+
+In firmware `ctrl` and `cmd`/`GUI` are swapped with respect to the image above --- I swap them to the illustrated location when using *macOS* and leave them be for *Windows* and *Linux*. (so that `cmd-z,x,c,v,...` becomes `ctrl-z,x,c,v,...` saving me some confusion)
+
+## The `MOVE` layer
+![](http://i.imgur.com/KXRSuHT.png)
+
+This is fairly self explanatory. I almost exclusively use the right hand cluster so that movement is a one handed affair, but the left hand cluster is there if it’s needed.
+
+On *macOS* I recommend using [Karabiner](https://pqrs.org/osx/karabiner/) and ticking *Use PC Style Home/End #2* and *Use PC Style PageUp/PageDown* so that `home` and `end` jump you to the beginning and end of the line respectively and so that `pg up` and `pg dn` move the cursor instead of just scrolling.
+
+None of the modifiers are overwritten so that `shift-alt-arrows` etc work as expected.
+
+## The `SYMB` layer
+![](http://i.imgur.com/thh1ne2.png)
+
+The symbol layer has all the numbers and their usual corresponding symbols in the first two rows, with the symbols on the home row since I use them more frequently than the numbers. The third row contains all the remaining symbols, arranged roughly so that the most used symbols are accessible with the strongest fingers.
+
+`esc` and `del` are repeated here since I wanted to be able to reach either, one handed, with either hand.
+
+Again none of the modifiers are overwritten so that shortcuts involving numbers or symbols work as expected.
+
+## The `FUNC` layer
+![](http://i.imgur.com/skxRZiH.png)
+
+The only thing of note here is that `bl+` and `bl-` are short for *backlight up* and *backlight down* respectively, and in firmware are actually `KC_PAUS` and `KC_SLCK` respectively, since *macOS* interprets these as the backlight keys.
+
+## Other changes from the default
+I have LEDs and sound disabled, simply because I have no need of them. \ No newline at end of file
diff --git a/keyboards/planck/keymaps/cbbrowne/keymap.c b/keyboards/planck/keymaps/cbbrowne/keymap.c
index 14a5be1708..70eaefb7be 100644
--- a/keyboards/planck/keymaps/cbbrowne/keymap.c
+++ b/keyboards/planck/keymaps/cbbrowne/keymap.c
@@ -4,6 +4,7 @@
#endif
#include "config.h"
#include "quantum.h"
+#include "version.h"
/* Each layer is given a name to aid in readability, which is then
used in the keymap matrix below. The underscores do not denote
diff --git a/keyboards/planck/keymaps/circuit/Makefile b/keyboards/planck/keymaps/circuit/Makefile
new file mode 100644
index 0000000000..1ed0ff9568
--- /dev/null
+++ b/keyboards/planck/keymaps/circuit/Makefile
@@ -0,0 +1,25 @@
+
+# Build Options
+# change to "no" to disable the options, or define them in the makefile.mk in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+TAP_DANCE_ENABLE = yes # Enables the double-tap functionality of keys
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/circuit/Readme.md b/keyboards/planck/keymaps/circuit/Readme.md
new file mode 100644
index 0000000000..cbdf5de4e5
--- /dev/null
+++ b/keyboards/planck/keymaps/circuit/Readme.md
@@ -0,0 +1,44 @@
+##Design goals:
+1. Arrow keys always available.
+2. As close to a to my US layout 107-key QWERTY keyboard as I could manage, (i.e. as few arbitrary decisions as possible).
+3. Togglable DVORAK keyboard.
+4. most frequently used things in the easiest to reach places.
+5. Ability to game on it, just for fun.
+
+My layout differs from most in the placement the ARROW keys, `ESC`, VOL keys, use of double-tap `CAPS`, and the GAME LOCK function.
+
+I put the layer buttons in the usual spots. I originally wanted only function/symbols layer, but that proved detrimental. I use some timed press actions to save some space, but this has been accounted for, (see GAME LOCK below). I'm not fully satisfied with the current product (see NOTES below), so it may change in the future.
+
+##Effective layers:
+* Default later is obviously your letters and modifiers.
+* Lower layer [NUMBER] is your numbers and punctuation.
+* Upper layer [ACTION] is your symbols and actions.
+* Function layer is the infrequently used function keys, layout toggle, game lock, and reset.
+
+There is also a toggle for the DVORAK/QWERTY layers, but in normal typing this is not of concern.
+
+###Special keys:
+* `RSHFT` and `ENTER` are combined. Tap once for `ENTER` and hold for `RSHFT`. `ENTER` will be registered on release if released within 200 ms, else `RSHFT` is registered starting at 201 ms until release.
+* If for some reason, this interferes with the normal usage of the `ENTER` key in any way, (some problem that may never happen), I have added a regular non-modified `ENTER` key on the same key in the [ACTION] layer.
+* `LSHFT` and `CAPS` are also combined. The key works like a normal `LSHFT` unless double-tapped, in which case it counts as `CAPS`. This functionality unfortunately delays all key presses by at most 200 ms, but I have added ways to disable this both temporarily or permanently, described below.
+* A failsafe `CAPS` key is on the same key in the [ACTION] layer.
+* There are `UNDO`, `CUT`, `COPY`, and `PASTE` keys. This was intended to be a universal way to use these commands since in macOS cut is `⌘ + C` but in Windows it is `⌃ + C`. Unfortunately these special keys only work in Windows. ¯\\\_(ツ)\_/¯
+
+##Game lock:
+**TL;DR** the game lock toggle disables the double-tap `CAPS`, and disables `GUI` keys (WINDOWS key).
+
+I wished for this keyboard to be fully usable in the most demanding of games. The most demanding game I know of is ARMA 3 which has a binding to practically every individual key of a 107-key keyboard. This means I need to have pretty much every key possible somewhere. I also wanted the keyboard to be responsive in games for every critical keypress. This means having a way to disable features that introduce an inherent delay to registering keys, such as double-tap.
+
+I do not expect to see this used by the pros, but I enjoyed making it. As for use in ARMA 3, I got a little ways into the APEX campaign, but I found a few flaws. For Example, I cannot enable my HUD GPS since that requires `RCTRL`+`M` but `RCTRL` is not bound. The obvious fix is to rebind the action to a new key, but I still take this as a shortcoming of my layout.
+
+###If you wish to disable double-tap
+####Disable it temporarily
+Turn on the game lock. While on, it registers as normal `LSHFT` and has no delay. Whether in game mode or not, `CAPS` is on the same key in the [ACTION] layer.
+
+####Disable it permanently
+Open the `Makefile` and set `TAP_DANCE_ENABLE = no`. I wrote the layout to compensate for this change, and no further changes to the code should be necessary. Whether or not it's disabled, `CAPS` is on the same key in the [ACTION] layer.
+
+##Notes:
+* `ALT` and `