summaryrefslogtreecommitdiff
path: root/keyboards/planck
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/planck')
-rw-r--r--keyboards/planck/config.h2
-rw-r--r--keyboards/planck/keymaps/callum/keymap.c51
-rw-r--r--keyboards/planck/keymaps/callum/readme.md12
-rw-r--r--keyboards/planck/keymaps/cbbrowne/Makefile4
-rw-r--r--keyboards/planck/keymaps/cbbrowne/keymap.c8
-rw-r--r--keyboards/planck/keymaps/default/Makefile22
-rw-r--r--keyboards/planck/keymaps/default/keymap.c17
-rw-r--r--keyboards/planck/keymaps/jeremy-dev/keymap.c180
-rw-r--r--keyboards/planck/keymaps/jeremy-dev/readme.md85
-rw-r--r--keyboards/planck/keymaps/mitch/Makefile5
-rw-r--r--keyboards/planck/keymaps/mitch/config.h2
-rw-r--r--keyboards/planck/keymaps/mitch/keymap.c70
-rw-r--r--keyboards/planck/keymaps/mitch/readme.md26
-rw-r--r--keyboards/planck/keymaps/priyadi/Makefile2
-rw-r--r--keyboards/planck/keymaps/priyadi/keymap.c196
-rw-r--r--keyboards/planck/keymaps/vifon/Makefile5
-rw-r--r--keyboards/planck/keymaps/vifon/config.h5
-rw-r--r--keyboards/planck/keymaps/vifon/keymap.c4
-rw-r--r--keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c49
-rw-r--r--keyboards/planck/out.txt66
-rw-r--r--keyboards/planck/rules.mk12
21 files changed, 612 insertions, 211 deletions
diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h
index 4dd1d22a95..5cf96bb88c 100644
--- a/keyboards/planck/config.h
+++ b/keyboards/planck/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
#define UNUSED_PINS
+#define AUDIO_VOICES
+
#define BACKLIGHT_PIN B7
/* COL2ROW or ROW2COL */
diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c
index 4d0151710e..a1254d9755 100644
--- a/keyboards/planck/keymaps/callum/keymap.c
+++ b/keyboards/planck/keymaps/callum/keymap.c
@@ -7,22 +7,21 @@
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 _MOUSE 3
#define _FUNC 4
+#define CMDLEFT LGUI(KC_LEFT)
+#define CMDRGHT LGUI(KC_RGHT)
+#define ENDASH LALT(KC_MINS)
+#define POUND LALT(KC_3)
+
enum planck_keycodes {
MOVE = SAFE_RANGE,
SYMB,
- FUNC,
- BELOW,
- ABOVE
+ FUNC
};
// Fillers to make layering more clear
@@ -55,16 +54,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | Caps | Left | Down | Right| | | Left | Down | Right| Caps | Del |
* |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | Pg Up| Pg Dn| Above| | Pg Dn| Pg Up| | | |
+ * | | | | Pg Up| Pg Dn| | | Pg Dn| Pg Up| | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | Below| | | | | | |
+ * | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_MOVE] = {
- {KC_ESC, XXXXXXX, LGUI(KC_LEFT), KC_UP, LGUI(KC_RGHT), XXXXXXX, XXXXXXX, LGUI(KC_LEFT), KC_UP, LGUI(KC_RGHT), XXXXXXX, KC_ESC },
+ {KC_ESC, XXXXXXX, CMDLEFT, KC_UP, CMDRGHT, XXXXXXX, XXXXXXX, CMDLEFT, KC_UP, CMDRGHT, XXXXXXX, KC_ESC },
{KC_DEL, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_CAPS, KC_DEL },
- {_______, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, ABOVE, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, _______},
- {_______, _______, _______, _______, _______, BELOW, _______, _______, _______, _______, _______, _______}
+ {_______, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
},
/* SYMB
@@ -79,8 +78,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[_SYMB] = {
- {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, LALT(KC_MINS)},
- {KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, LALT(KC_3)},
+ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, ENDASH },
+ {KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, POUND },
{_______, KC_TILD, KC_GRV, KC_PLUS, KC_EQL, KC_PIPE, KC_BSLS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
},
@@ -153,30 +152,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
- case BELOW:
- if (record->event.pressed) {
- register_code(KC_LGUI);
- register_code(KC_RGHT);
- unregister_code(KC_RGHT);
- unregister_code(KC_LGUI);
- register_code(KC_ENT);
- unregister_code(KC_ENT);
- }
- return false;
- break;
- case ABOVE:
- if (record->event.pressed) {
- register_code(KC_LGUI);
- register_code(KC_LEFT);
- unregister_code(KC_LEFT);
- unregister_code(KC_LGUI);
- register_code(KC_ENT);
- unregister_code(KC_ENT);
- register_code(KC_UP);
- unregister_code(KC_UP);
- }
- return false;
- break;
}
return true;
}
diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md
index 0baeba46d9..f970cd974d 100644
--- a/keyboards/planck/keymaps/callum/readme.md
+++ b/keyboards/planck/keymaps/callum/readme.md
@@ -2,11 +2,11 @@
This is a layout for the grid planck, built with a few ideals in mind:
-- Minimal response times should be maintained. 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 – they inevitably send their keycode later than a normal key – interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording as our only means of getting more than one symbol out of a single physical key.
+- Consistent and minimal response times should be maintained. 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 – they inevitably send their keycode later than a normal key – interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording as our only means of getting more than one symbol out of a single physical key.
- 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), otherwise certain long key combinations become hard to make.
-We have five layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow cluster and other movement keys; a `SYMB` layer, with numbers and symbols; a `FUNC` layer, with function keys and media keys; and a `MOUSE` layer, with mouse emulation.
+We have five layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow cluster and other movement keys; a `SYMB` layer, with numbers and symbols; a `FUNC` layer, with function keys and media keys; and a `MOUSE` layer, with mouse emulation. The `MOUSE` layer is activated by holding the Move and Symb keys simultaniously.
```
/* BASE
@@ -27,9 +27,9 @@ We have five layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow c
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | Caps | Left | Down | Right| | | Left | Down | Right| Caps | Del |
* |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | Pg Up| Pg Dn| Above| | Pg Dn| Pg Up| | | |
+ * | | | | Pg Up| Pg Dn| | | Pg Dn| Pg Up| | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | Below| | | | | | |
+ * | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
@@ -63,9 +63,9 @@ We have five layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow c
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | Vol- |
* |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F21 | F22 | F23 | F24 | | | Lock | | | | |
+ * | | F21 | F22 | F23 | F24 | | | Power| | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | Prev | Mute | Play | Next | | | | |
* `-----------------------------------------------------------------------------------'
*/
-```
+ ```
diff --git a/keyboards/planck/keymaps/cbbrowne/Makefile b/keyboards/planck/keymaps/cbbrowne/Makefile
index b1c70ace70..19e5c2a844 100644
--- a/keyboards/planck/keymaps/cbbrowne/Makefile
+++ b/keyboards/planck/keymaps/cbbrowne/Makefile
@@ -12,11 +12,11 @@ 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 = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
+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.
-API_SYSEX_ENABLE = yes # Enable SYSEX API (+5390)
+API_SYSEX_ENABLE = no # Enable SYSEX API (+5390)
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/planck/keymaps/cbbrowne/keymap.c b/keyboards/planck/keymaps/cbbrowne/keymap.c
index 2be4dab4b1..0448a8d11c 100644
--- a/keyboards/planck/keymaps/cbbrowne/keymap.c
+++ b/keyboards/planck/keymaps/cbbrowne/keymap.c
@@ -110,15 +110,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
},
[_RAISE] = { /* RAISE */
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
- {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
- {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, ALTSLASH,_______},
- {_______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_PGUP}
+ {_______, KC_4, KC_5, KC_6, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
+ {_______, KC_7, KC_8, KC_9, _______, _______, _______, QWERTY, KEYPAD, KEYPAD, ALTSLASH,_______},
+ {_______, KC_0, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_HOME, KC_END, KC_PGUP}
},
[_LOWER] = { /* LOWER */
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
{_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, ALTSLASH, _______},
- {_______, KEYPAD, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_PGUP}
+ {_______, KEYPAD, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_HOME, KC_END, KC_PGUP}
},
[_KEYPAD] = { /* Key Pad */
{KC_ESC, USERNAME, MVERSION, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_KP_ENTER, KC_7, KC_8, KC_9, KC_BSPC},
diff --git a/keyboards/planck/keymaps/default/Makefile b/keyboards/planck/keymaps/default/Makefile
index 17487ebbfc..457a3d01d4 100644
--- a/keyboards/planck/keymaps/default/Makefile
+++ b/keyboards/planck/keymaps/default/Makefile
@@ -1,25 +1,3 @@
-
-
-# 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 = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # 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 = yes # MIDI controls
-AUDIO_ENABLE = yes # 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 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/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c
index ddbe4d7b27..1b1b998b20 100644
--- a/keyboards/planck/keymaps/default/keymap.c
+++ b/keyboards/planck/keymaps/default/keymap.c
@@ -14,13 +14,16 @@ extern keymap_config_t keymap_config;
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
-#define _QWERTY 0
-#define _COLEMAK 1
-#define _DVORAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _PLOVER 5
-#define _ADJUST 16
+
+enum planck_layers {
+ _QWERTY,
+ _COLEMAK,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _PLOVER,
+ _ADJUST
+};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
diff --git a/keyboards/planck/keymaps/jeremy-dev/keymap.c b/keyboards/planck/keymaps/jeremy-dev/keymap.c
new file mode 100644
index 0000000000..e7ed09b122
--- /dev/null
+++ b/keyboards/planck/keymaps/jeremy-dev/keymap.c
@@ -0,0 +1,180 @@
+// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
+
+// Configuration options
+#define PREVENT_STUCK_MODIFIERS
+
+#include "planck.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+enum my_layers {
+ ALPH = 0,
+ NUMS,
+ CURS,
+ SYMB,
+ FKEY
+};
+
+// Each macro gets a name for readability.
+enum my_keycodes {
+ MY_ABVE = SAFE_RANGE,
+ MY_BELW,
+ MY_TERM,
+ MY_DEQL, // /=
+ MY_MEQL, // *=
+ MY_SEQL, // -=
+ MY_PEQL, // +=
+ MY_NEQL, // !=
+ MY_LTGT, // <>
+ MY_DPIP, // ||
+ MY_DAMP, // &&
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [ALPH] = {
+ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P},
+ {KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
+ {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH)},
+ {CTL_T(KC_TAB), OSL(FKEY), OSL(NUMS), OSL(SYMB), KC_SPC, ALT_T(KC_BSPC), GUI_T(KC_DELT), KC_ENT, OSL(SYMB), OSL(CURS), TG(CURS), CTL_T(KC_ESC)}
+ },
+ [NUMS] = {
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_COMM, KC_7, KC_8, KC_9, KC_SLSH},
+ {KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, KC_NO, KC_TRNS, KC_TRNS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR},
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS},
+ {KC_NO, KC_NO, KC_TRNS, TG(NUMS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS}
+ },
+ [CURS] = {
+ {KC_MPLY, KC_BSPC, KC_UP, KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
+ {KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_NO, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT},
+ {KC_VOLD, KC_NO, MY_ABVE, MY_TERM, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT},
+ {KC_MUTE, KC_NO, MY_BELW, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO}
+ },
+ [SYMB] = {
+ {MY_DEQL, MY_MEQL, MY_SEQL, MY_PEQL, MY_NEQL, KC_NO, KC_NO, MY_LTGT, KC_LABK, KC_RABK, KC_COLN, KC_DLR},
+ {KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL, KC_NO, KC_PIPE, MY_DPIP, KC_GRV, KC_QUOT, KC_DQUO, KC_HASH},
+ {KC_BSLS, KC_CIRC, KC_PERC, KC_UNDS, KC_NO, KC_NO, KC_AMPR, MY_DAMP, KC_TILD, KC_AT, KC_EXLM, KC_QUES},
+ {KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO}
+ },
+ [FKEY] = {
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12},
+ {KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_F5, KC_F6, KC_F7, KC_F8},
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4},
+ {KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}
+ }
+};
+
+void press_key(uint16_t key) {
+ register_code(key);
+ unregister_code(key);
+}
+
+void press_two_keys(uint16_t key1, uint16_t key2) {
+ register_code(key1);
+ register_code(key2);
+ unregister_code(key2);
+ unregister_code(key1);
+}
+
+void press_three_keys(uint16_t key1, uint16_t key2, uint16_t key3) {
+ register_code(key1);
+ register_code(key2);
+ register_code(key3);
+ unregister_code(key3);
+ unregister_code(key2);
+ unregister_code(key1);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MY_BELW:
+ if (record->event.pressed) {
+ press_two_keys(KC_LGUI, KC_RGHT);
+ press_key(KC_ENT);
+ }
+
+ return false;
+
+ case MY_ABVE:
+ if (record->event.pressed) {
+ press_two_keys(KC_LGUI, KC_LEFT);
+ press_key(KC_ENT);
+ press_key(KC_UP);
+ }
+
+ return false;
+
+ case MY_TERM:
+ if (record->event.pressed) {
+ press_three_keys(KC_LGUI, KC_LSFT, KC_ENT);
+ }
+
+ return false;
+
+ case MY_DEQL: // /=
+ if (record->event.pressed) {
+ press_key(KC_SLSH);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_MEQL: // *=
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_ASTR);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_SEQL: // -=
+ if (record->event.pressed) {
+ press_key(KC_MINS);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_PEQL: // +=
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_PLUS);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_NEQL: // !=
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_EXLM);
+ press_key(KC_EQL);
+ }
+
+ return false;
+
+ case MY_LTGT: // <>
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_LABK);
+ press_two_keys(KC_LSFT, KC_RABK);
+ }
+
+ return false;
+
+ case MY_DPIP: // ||
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_PIPE);
+ press_two_keys(KC_LSFT, KC_PIPE);
+ }
+
+ return false;
+
+ case MY_DAMP: // &&
+ if (record->event.pressed) {
+ press_two_keys(KC_LSFT, KC_AMPR);
+ press_two_keys(KC_LSFT, KC_AMPR);
+ }
+
+ return false;
+ }
+
+ return true;
+}
diff --git a/keyboards/planck/keymaps/jeremy-dev/readme.md b/keyboards/planck/keymaps/jeremy-dev/readme.md
new file mode 100644
index 0000000000..b6a402d698
--- /dev/null
+++ b/keyboards/planck/keymaps/jeremy-dev/readme.md
@@ -0,0 +1,85 @@
+Jeremy Cowgar's Planck Keymap
+=============================
+
+I am a programmer by trade and suffer from the beginning stages of RSI. As a programmer, I use letters, symbols and cursor navigation most often. To prevent strange finger gymnastics, I wrote a script to rank which non-letter characters occurred in my primary source projects most often and then placed these characters in the easiest to reach locations, within reason and for me. I made heavy use of momentary layer toggling.
+
+Layers
+------
+
+The key mapping is made up of 5 layers: Letters, Symbols, Navigation, Numbers, and Function Keys.
+
+The layout can be viewed visually at:
+
+http://www.keyboard-layout-editor.com/#/gists/319474e5e2d199e583371ed1d2aec316
+
+* Purple buttons are dual function keys.
+* Green buttons are layer momentary toggle keys.
+* Red buttons are layer persistent toggle keys.
+
+The keys have multiple symbols:
+
+* Upper left: standard layer, the letter layer
+* Upper right: function layer
+* Lower left: navigation layer
+* Lower right: symbol layer
+
+The symbols in the layout editor are not entirely clear.
+
+The Z and ? keys double as shift keys. Hold for a shift, tap for a Z or ?
+
+The bottom row from left to right:
+
+* Tab when pressed, Control when held. It also is the volume mute key when in the "Navigation" layer
+* Function layer momentary toggle
+* Number layer momentary toggle
+* Symbol layer momentary toggle. When in the "Number" layer, this key also makes the "Number" layer sticky for using the 10 key for quite a bit of entry
+* Space
+* Backspace when tapped, Option when held
+* Delete when tapped, Command when held
+* Return
+* Symbol layer momentary toggle. When in the "Number" layer, key also is the zero key.
+* Navigation layer momentary toggle
+* Navigation layer toggle. This was included for when you are browsing a website, document or otherwise wish to stay in navigation mode. When in the "Number" layer, the key is the = symbol
+* Escape when pressed, Control when held. When in the "Number" layer, the key is the + symbol
+
+General Notes
+-------------
+
+The letter layer is separated by 2 center rows of keys. This spreads the hands out a little further which helps not twist the wrists as much. The 2 center rows are [], (), [], and Ctrl and Alt keys.
+
+The symbol layer keys are accessed by the thumbs. They are the closest to the thumbs, instead of the number toggle, because in my code I found I used symbols much more often than numbers. There are two symbol layer keys because the symbols spread across the right and left half of the keyboard. Thus, some symbols are easier hit with the left hand modifier or right hand modifier.
+
+The number layer key is only accessible by the left thumb because all of the number keys are on the right side of the keyboard. When in the number layer, you can press the key to the right to make that layer sticky when you are going to do a lot of number entry.
+
+The function layer key is only accessible by the left thumb because all of the function keys are on the right side of the keyboard.
+
+The navigation layer key is only accessible by the right thumb because all of the navigation keys are on the left side of the keyboard. You can press the key to the right of the navigation layer to make the navigation layer sticky when you are doing a lot of navigation, reading a web page for example.
+
+When using the number or navigation layers, the same hand that accesses the momentary layer toggle key also has the 4 primary modifiers under their home row.
+
+* Pointer finger is control
+* Middle finger is option
+* Ring finger is command
+* Pinky finger is shift
+
+This is so you can easily press Cmd+Shift+F4 or when navigating, select text or words of text by pressing Shift+Control, for example.
+
+Some keys are duplicated. For example, () are available in easy to reach locations while in the Number layer because they are often used in math.
+
+The symbol layer has additional helpers for programming including a single keys that enter /=, \*=, -=, +=, !=, <>, ||, and &&. It also includes three special Return keys on the left:
+
+* Up CR which moves the cursor up, to the end of the line and then presses CR
+* Down CR which moves the cursor to the end of the line and then presses CR
+* Right ; which moves the cursor to the end of the line and presses ; for C styled languages, such as JavaScript which is a primary language I use
+
+Word of Warning
+---------------
+
+I have been using the keymap for some time now and believe it to be a good keymap. There are a few things through the week that I wonder if it would have been better if this key were moved to that location.
+
+This keymap may change for further optimization.
+
+Please Give Feedback!
+---------------------
+
+I am very interested in your feedback. Send me a message here on GitHub, r/jcowgar or @jcowgar.
diff --git a/keyboards/planck/keymaps/mitch/Makefile b/keyboards/planck/keymaps/mitch/Makefile
new file mode 100644
index 0000000000..7955003d47
--- /dev/null
+++ b/keyboards/planck/keymaps/mitch/Makefile
@@ -0,0 +1,5 @@
+SUBPROJECT = rev3
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/planck/keymaps/mitch/config.h b/keyboards/planck/keymaps/mitch/config.h
new file mode 100644
index 0000000000..73bc50bc2d
--- /dev/null
+++ b/keyboards/planck/keymaps/mitch/config.h
@@ -0,0 +1,2 @@
+#include "../../config.h"
+#define PREVENT_STUCK_MODIFIERS
diff --git a/keyboards/planck/keymaps/mitch/keymap.c b/keyboards/planck/keymaps/mitch/keymap.c
new file mode 100644
index 0000000000..79b5204f07
--- /dev/null
+++ b/keyboards/planck/keymaps/mitch/keymap.c
@@ -0,0 +1,70 @@
+#include "keymap.h"
+#include "quantum.h"
+
+#define QWERTY 0
+#define LOWER 1
+#define RAISE 2
+
+// Alias to make layering more clear
+#define _______ KC_TRNS
+
+// In MacOS, switch between windows within an application
+#define GUI_GRV LGUI(KC_GRV)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Ctl | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | Del | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[QWERTY] = {
+ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
+ {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
+ {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT) },
+ {KC_ESC, KC_DEL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | GUIGR| | | | | | | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Caps | | Mute | Vol- | Vol+ | | Bksp | $ | % | ^ | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | ! | @ | # | \ |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | Enter | | | PgUp | PgUn | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[LOWER] = {
+ {GUI_GRV, _______, _______, _______, _______, _______, _______, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},
+ {KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_BSPC, KC_DLR, KC_PERC, KC_CIRC, KC_PIPE, KC_PIPE},
+ {_______, _______, _______, _______, _______, _______, _______, KC_EXLM, KC_AT, KC_HASH, KC_BSLS, KC_ENT},
+ {_______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, _______, KC_PGDN, KC_PGUP, _______}
+},
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | ` | ~ | ( | ) | | | 7 | 8 | 9 | 0 | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | [ | ] | { | } | | | 4 | 5 | 6 | | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | - | _ | = | + | | | 1 | 2 | 3 | |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | Enter | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+[RAISE] = {
+ {KC_GRV, KC_GRV, KC_TILD, KC_LPRN, KC_RPRN, _______, _______, KC_7, KC_8, KC_9, KC_0, _______},
+ {_______, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, _______, KC_4, KC_5, KC_6, _______, KC_BSLS},
+ {_______, KC_MINS, KC_UNDS, KC_EQL, KC_PLUS, _______, _______, KC_1, KC_2, KC_3, _______, KC_ENT},
+ {_______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, _______, KC_PGDN, KC_PGUP, _______}
+}
+};
diff --git a/keyboards/planck/keymaps/mitch/readme.md b/keyboards/planck/keymaps/mitch/readme.md
new file mode 100644
index 0000000000..3869304f44
--- /dev/null
+++ b/keyboards/planck/keymaps/mitch/readme.md
@@ -0,0 +1,26 @@
+## Flashing Keyboard
+
+1. Install `dfu` tools:
+
+ brew tap osx-cross/avr
+ brew install avr-libc
+ brew install dfu-programmer
+
+2. Move to this directory.
+3. Hit the reset button on the keyboard.
+4. run `make dfu`.
+
+## The Keymap
+
+This keymap is designed for a rev3 Planck Keyboard.
+
+The default layer is QWERTY. The raise layer has a ten key on the right
+and common programming punctuation on the left. The lower layer provides the
+rest of the symbols, mostly mapped with the ten key numbers.
+
+The normal right shift key uses the `MT` macro to trigger Enter on tap and right
+shift when held.
+
+This keymap sets the `PREVENT_STUCK_MODIFIERS` flag to avoid the occasional WTF
+moments when using a modifier keys and accidentally releasing them after moving
+to a new layer.
diff --git a/keyboards/planck/keymaps/priyadi/Makefile b/keyboards/planck/keymaps/priyadi/Makefile
index d9d4f3d1d7..336608b8cc 100644
--- a/keyboards/planck/keymaps/priyadi/Makefile
+++ b/keyboards/planck/keymaps/priyadi/Makefile
@@ -10,7 +10,7 @@ COMMAND_ENABLE = no # 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 = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
+AUDIO_ENABLE = yes # Audio output on port C6
UNICODE_ENABLE = no # Unicode
UNICODEMAP_ENABLE = yes # Unicode map
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/planck/keymaps/priyadi/keymap.c b/keyboards/planck/keymaps/priyadi/keymap.c
index f0dafebf3f..2e979221a9 100644
--- a/keyboards/planck/keymaps/priyadi/keymap.c
+++ b/keyboards/planck/keymaps/priyadi/keymap.c
@@ -11,6 +11,8 @@
#include "process_unicode.h"
#include "quantum.h"
+// #define TOLELOT_ENABLE
+
extern keymap_config_t keymap_config;
enum layers {
@@ -21,6 +23,8 @@ enum layers {
_NUM,
_FUNC,
_EMOJI,
+ _GREEKU,
+ _GREEKL,
_GUI,
};
@@ -36,6 +40,7 @@ enum planck_keycodes {
FUNC,
EMOJI,
GUI,
+ GREEK,
// os switchers
LINUX,
@@ -98,6 +103,59 @@ enum unicode_name {
SUN, // sun
MOON, // moon
SKULL, // skull
+
+ // greek letters
+ UALPH,
+ UBETA,
+ UGAMM,
+ UDELT,
+ UEPSI,
+ UZETA,
+ UETA,
+ UTHET,
+ UIOTA,
+ UKAPP,
+ ULAMB,
+ UMU,
+ UNU,
+ UXI,
+ UOMIC,
+ UPI,
+ URHO,
+ USIGM,
+ UTAU,
+ UUPSI,
+ UPHI,
+ UCHI,
+ UPSI,
+ UOMEG,
+
+ LALPH,
+ LBETA,
+ LGAMM,
+ LDELT,
+ LEPSI,
+ LZETA,
+ LETA,
+ LTHET,
+ LIOTA,
+ LKAPP,
+ LLAMB,
+ LMU,
+ LNU,
+ LXI,
+ LOMIC,
+ LPI,
+ LRHO,
+ LSIGM,
+ LTAU,
+ LUPSI,
+ LPHI,
+ LCHI,
+ LPSI,
+ LOMEG,
+
+ FSIGM,
};
const uint32_t PROGMEM unicode_map[] = {
@@ -148,6 +206,57 @@ const uint32_t PROGMEM unicode_map[] = {
[SUN] = 0x2600,
[MOON] = 0x1F314,
[SKULL] = 0x1F480,
+
+ // greek letters
+ [UALPH] = 0x0391,
+ [UBETA] = 0x0392,
+ [UGAMM] = 0x0393,
+ [UDELT] = 0x0394,
+ [UEPSI] = 0x0395,
+ [UZETA] = 0x0396,
+ [UETA] = 0x0397,
+ [UTHET] = 0x0398,
+ [UIOTA] = 0x0399,
+ [UKAPP] = 0x039A,
+ [ULAMB] = 0x039B,
+ [UMU] = 0x039C,
+ [UNU] = 0x039D,
+ [UXI] = 0x039E,
+ [UOMIC] = 0x039F,
+ [UPI] = 0x03A0,
+ [URHO] = 0x03A1,
+ [USIGM] = 0x03A3,
+ [UTAU] = 0x03A4,
+ [UUPSI] = 0x03A5,
+ [UPHI] = 0x03A6,
+ [UCHI] = 0x03A7,
+ [UPSI] = 0x03A8,
+ [UOMEG] = 0x03A9,
+ [LALPH] = 0x03B1,
+ [LBETA] = 0x03B2,
+ [LGAMM] = 0x03B3,
+ [LDELT] = 0x03B4,
+ [LEPSI] = 0x03B5,
+ [LZETA] = 0x03B6,
+ [LETA] = 0x03B7,
+ [LTHET] = 0x03B8,
+ [LIOTA] = 0x03B9,
+ [LKAPP] = 0x03BA,
+ [LLAMB] = 0x03BB,
+ [LMU] = 0x03BC,
+ [LNU] = 0x03BD,
+ [LXI] = 0x03BE,
+ [LOMIC] = 0x03BF,
+ [LPI] = 0x03C0,
+ [LRHO] = 0x03C1,
+ [LSIGM] = 0x03C3,
+ [LTAU] = 0x03C4,
+ [LUPSI] = 0x03C5,
+ [LPHI] = 0x03C6,
+ [LCHI] = 0x03C7,
+ [LPSI] = 0x03C8,
+ [LOMEG] = 0x03C9,
+ [FSIGM] = 0x03C2,
};
@@ -174,14 +283,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |AltGr | GUI | Ctrl |
+ * | Ctrl | GUI | Alt | Punc | Num | Space | Func |Emoji |Greek |AltGr | Ctrl |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT },
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT},
- {KC_LCTL, KC_LGUI, KC_LALT, PUNC, NUM, KC_SPC, KC_SPC, FUNC, EMOJI, KC_RALT, KC_RGUI, KC_RCTL}
+ {KC_LCTL, KC_LALT, KC_LGUI, PUNC, NUM, KC_SPC, KC_SPC, FUNC, EMOJI, GREEK, KC_RALT, KC_RCTL}
},
/* Colemak
@@ -220,6 +329,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
},
+/* Uppercase Greek
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_GREEKU] = {
+ {_______, _______, _______,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______},
+ {_______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), _______, _______},
+ {_______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+/* Lowercase Greek
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_GREEKL] = {
+ {_______, _______,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______},
+ {_______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), _______, _______},
+ {_______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
/* Punc
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | ` |
@@ -323,6 +468,7 @@ float tone_windows[][2] = SONG(SCROLL_LOCK_ON_SOUND);
float tone_osx[][2] = SONG(NUM_LOCK_ON_SOUND);
float tone_click[][2] = SONG(MUSICAL_NOTE(_F3, 2));
float tone_release[][2] = SONG(MUSICAL_NOTE(_A3, 2));
+float tone_tolelot[][2] = SONG(Q__NOTE(_E5), Q__NOTE(_C5), Q__NOTE(_D5));
#endif
void persistant_default_layer_set(uint16_t default_layer) {
@@ -334,19 +480,61 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// faux clicky
// if (record->event.pressed) PLAY_NOTE_ARRAY(tone_click, false, 0);
#ifdef AUDIO_ENABLE
+ #ifdef TOLELOT_ENABLE
+ if (record->event.pressed) {
+ PLAY_NOTE_ARRAY(tone_tolelot, false, 0);
+ }
+ #else
if (record->event.pressed) {
PLAY_NOTE_ARRAY(tone_click, false, 0);
} else {
PLAY_NOTE_ARRAY(tone_release, false, 0);
}
#endif
+ #endif
+
+ bool lshifted = keyboard_report->mods & MOD_BIT(KC_LSFT);
+ bool rshifted = keyboard_report->mods & MOD_BIT(KC_RSFT);
switch (keycode) {
+ // Greek layer handling
+ case GREEK:
+ if (record->event.pressed) {
+ if (lshifted || rshifted) {
+ layer_on(_GREEKU);
+ layer_off(_GREEKL);
+ } else {
+ layer_on(_GREEKL);
+ layer_off(_GREEKU);
+ }
+ } else {
+ layer_off(_GREEKU);
+ layer_off(_GREEKL);
+ }
+ return false;
+ break;
+
+ case KC_LSFT:
+ case KC_RSFT:
+ ;
+ uint8_t layer = biton32(layer_state);
+ if (layer == _GREEKU || layer == _GREEKL) {
+ if (record->event.pressed) {
+ layer_on(_GREEKU);
+ layer_off(_GREEKL);
+ } else {
+ if (lshifted ^ rshifted) { // if only one shift is pressed
+ layer_on(_GREEKL);
+ layer_off(_GREEKU);
+ }
+ }
+ }
+ return true;
+ break;
+
// QWERTZ style comma and dot: semicolon and colon when shifted
case KC_COMM:
if (record->event.pressed) {
- bool lshifted = keyboard_report->mods & MOD_BIT(KC_LSFT);
- bool rshifted = keyboard_report->mods & MOD_BIT(KC_RSFT);
if (lshifted || rshifted) {
if (lshifted) unregister_code(KC_LSFT);
if (rshifted) unregister_code(KC_RSFT);
diff --git a/keyboards/planck/keymaps/vifon/Makefile b/keyboards/planck/keymaps/vifon/Makefile
index 53660a2e76..15a7b736fd 100644
--- a/keyboards/planck/keymaps/vifon/Makefile
+++ b/keyboards/planck/keymaps/vifon/Makefile
@@ -1,6 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
# Build Options
@@ -10,7 +7,7 @@ $(warning Please disable some options in the Makefile to resolve)
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+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 = yes # Enable keyboard backlight functionality
diff --git a/keyboards/planck/keymaps/vifon/config.h b/keyboards/planck/keymaps/vifon/config.h
index 9cb0634fb3..a08b37cbe6 100644
--- a/keyboards/planck/keymaps/vifon/config.h
+++ b/keyboards/planck/keymaps/vifon/config.h
@@ -81,6 +81,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* prevent the modifiers from being stuck, sacrificing some memory */
#define PREVENT_STUCK_MODIFIERS
+/* A larger buffer for the dynamic macros as this keymap is not taking
+ * up that much memory.
+ */
+#define DYNAMIC_MACRO_SIZE 256
+
#ifdef SUBPROJECT_rev3
#include "rev3/config.h"
#endif
diff --git a/keyboards/planck/keymaps/vifon/keymap.c b/keyboards/planck/keymaps/vifon/keymap.c
index 80c4a516c3..ee0c0ac366 100644
--- a/keyboards/planck/keymaps/vifon/keymap.c
+++ b/keyboards/planck/keymaps/vifon/keymap.c
@@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_PPG] = { /* Pure Pro: Gaming */
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
- {_______, _______, _______, _______, _______, _______, _______, _______, _______, DF(_RS), _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, _______, XXXXXXX, _______, KM_RS , _______, _______, KM_LW , _______, _______, _______, _______},
},
[_NM] = { /* Numeric */
@@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{_______, _______, KC_LGUI, KC_LALT, _______, _______, _______, _______, _______, _______, _______, _______}
},
[_DYN]= { /* special */
- {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_PAUS},
+ {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, KC_APP, KC_INS, _______, KC_PSCR, KC_PAUS},
{_______, DYN_REC_START2, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, _______, KC_CAPS, KC_SLCK, KC_NLCK},
{KM_SHLK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c
deleted file mode 100644
index e5a86b4025..0000000000
--- a/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "keymap.h"
-
-const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = KEYMAP(
- TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,
- LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
- LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN3,
- ESC, DEL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT),
-[1] = KEYMAP(
- GRV, GRV, FN22, FN19, FN10, TRNS, TRNS, 7, 8, 9, 0, BSPC,
- TRNS, LBRC, RBRC, FN23, FN24, TRNS, TRNS, 4, 5, 6, TRNS, BSLS,
- TRNS, MINS, FN20, EQL, FN21, TRNS, TRNS, 1, 2, 3, TRNS, ENT,
- TRNS, TRNS, TRNS, TRNS, TRNS, SPC, FN1, TRNS, PGDN, PGUP, TRNS),
-[2] = KEYMAP(
- FN26, FN10, FN11, FN12, FN13, FN14, FN15, FN17, FN18, FN19, FN10, DEL,
- TRNS, TRNS, MUTE, VOLD, VOLU, TRNS, BSPC, FN14, FN15, FN16, TRNS, FN25,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN11, FN12, FN13, TRNS, ENT,
- TRNS, TRNS, TRNS, TRNS, FN2, ENT, TRNS, TRNS, PGDN, PGUP, TRNS),
-};
-
-const uint16_t PROGMEM fn_actions[] = {
- [1] = ACTION_LAYER_MOMENTARY(1), // Switch layer raise
- [2] = ACTION_LAYER_MOMENTARY(2), // Switch layer lower
-
- [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Right shift serves as Enter on tap
-
- // Numeric shift modifiers
- [10] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
- [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
- [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
- [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
- [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
- [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
- [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
- [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
- [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
- [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
-
- // Other shift modifiers
- [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _
- [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // +
- [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~
- [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // {
- [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // }
- [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // |
-
- // Switch windows in app
- [26] = ACTION_MODS_KEY(MOD_LGUI, KC_GRV),
-};
diff --git a/keyboards/planck/out.txt b/keyboards/planck/out.txt
deleted file mode 100644
index 644a6a7774..0000000000
--- a/keyboards/planck/out.txt
+++ /dev/null
@@ -1,66 +0,0 @@
--------- begin --------
-avr-gcc.exe (AVR_8_bit_GNU_Toolchain_3.5.0_1662) 4.9.2
-Copyright (C) 2014 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-Compiling: ../../keyboards/planck/planck.c [OK]
-Compiling: ../../keyboards/planck/keymaps/experimental/keymap.c [WARNINGS]
- |
- | ../../keyboards/planck/keymaps/experimental/keymap.c: In function 'action_get_macro':
- | ../../keyboards/planck/keymaps/experimental/keymap.c:227:17: warning: implicit declaration of function 'breathing_speed_set' [-Wimplicit-function-declaration]
- | breathing_speed_set(2);
- | ^
- | ../../keyboards/planck/keymaps/experimental/keymap.c:228:17: warning: implicit declaration of function 'breathing_pulse' [-Wimplicit-function-declaration]
- | breathing_pulse();
- | ^
- |
-Compiling: ../../quantum/quantum.c [OK]
-Compiling: ../../quantum/keymap.c [OK]
-Compiling: ../../quantum/keycode_config.c [OK]
-Compiling: ../../quantum/matrix.c [OK]
-Compiling: ../../quantum/audio/audio.c [OK]
-Compiling: ../../quantum/audio/voices.c [OK]
-Compiling: ../../quantum/audio/luts.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/lufa.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/descriptor.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Class/Common/HIDParser.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/ConfigDescriptors.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/DeviceStandardReq.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/Events.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/HostStandardReq.c [OK]
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/USBTask.c [OK]
-Compiling: ../../tmk_core/common/host.c [OK]
-Compiling: ../../tmk_core/common/keyboard.c [OK]
-Compiling: ../../tmk_core/common/action.c [OK]
-Compiling: ../../tmk_core/common/action_tapping.c [OK]
-Compiling: ../../tmk_core/common/action_macro.c [OK]
-Compiling: ../../tmk_core/common/action_layer.c [OK]
-Compiling: ../../tmk_core/common/action_util.c [OK]
-Compiling: ../../tmk_core/common/print.c [OK]
-Compiling: ../../tmk_core/common/debug.c [OK]
-Compiling: ../../tmk_core/common/util.c [OK]
-Compiling: ../../tmk_core/common/avr/suspend.c [OK]
-Assembling: ../../tmk_core/common/avr/xprintf.S [OK]
-Compiling: ../../tmk_core/common/avr/timer.c [OK]
-Compiling: ../../tmk_core/common/avr/bootloader.c [OK]
-Compiling: ../../tmk_core/common/magic.c [OK]
-Compiling: ../../tmk_core/common/avr/eeconfig.c [OK]
-Compiling: ../../tmk_core/common/mousekey.c [OK]
-Compiling: ../../tmk_core/common/command.c [OK]
-Compiling: ../../tmk_core/common/backlight.c [OK]
-Linking: .build/planck_experimental.elf [ERRORS]
- |
- | .build/obj_planck_experimental/keyboards/planck/keymaps/experimental/keymap.o: In function `action_get_macro':
- | C:\Users\Fred Wales\Documents\Programming\qmk_firmware\keyboards\planck/../../keyboards/planck/keymaps/experimental/keymap.c:240: undefined reference to `breathing_speed_set'
- | C:\Users\Fred Wales\Documents\Programming\qmk_firmware\keyboards\planck/../../keyboards/planck/keymaps/experimental/keymap.c:241: undefined reference to `breathing_pulse'
- | collect2.exe: error: ld returned 1 exit status
- |
diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk
index fb24e82354..4423d422f6 100644
--- a/keyboards/planck/rules.mk
+++ b/keyboards/planck/rules.mk
@@ -51,17 +51,17 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+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
+COMMAND_ENABLE ?= no # Commands for debug and configuration
NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= no # Audio output on port C6
+BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
+MIDI_ENABLE ?= yes # MIDI controls
+AUDIO_ENABLE ?= yes # 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.
+RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight.
API_SYSEX_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE