Adds support for Planck Rev 6 (#2666)
* initial files for rev 6 with encoder * music map init, dip scan added * adds ws2812 driver for arm * flesh out dip and encoder support * adds default encoder res * adds default encoder res * start muse implementation * muse working with encoder as control * flip direction * try mouse wheel again * dont break other revs * dont break other revs * conditional autio * pwm ws driver (not working) * update build includes for chibios * update ws2812 driver/config * last commit for glasser code * working example * remove rgb for now * finish up rev6 * working encoder keycodes * add warnings to planck keymaps about the LAYOUT
This commit is contained in:
		
							parent
							
								
									96cb9f4661
								
							
						
					
					
						commit
						ade22f8e2c
					
				
					 122 changed files with 4141 additions and 688 deletions
				
			
		| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
#include "keymap.h"
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "backlight.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,6 +67,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef STENO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,8 @@
 | 
			
		|||
 * Designed for aeronautical data entry on the OLKB Planck.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 #include "planck.h"
 | 
			
		||||
 #pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 #include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
 extern keymap_config_t keymap_config;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 | 
			
		||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@
 | 
			
		|||
 * Check qmk_firmware/users/bbaserdem for the main part of the code
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "bbaserdem.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
#include "planck.h"
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
#include "backlight.h"
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -36,11 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
* `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[0] = {
 | 
			
		||||
	{ DE_SS,        DE_J,    DE_D,    DE_U,  DE_A,  DE_X,   DE_P,   DE_H,  DE_L,    DE_M,    DE_W,    DE_Q         },
 | 
			
		||||
	//{ 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) },
 | 
			
		||||
	{ MO(1),        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_LCTL,      KC_LGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4),   KC_RALT, KC_ESC,  KC_RCTL      }
 | 
			
		||||
    { DE_SS,        DE_J,    DE_D,    DE_U,  DE_A,  DE_X,   DE_P,   DE_H,  DE_L,    DE_M,    DE_W,    DE_Q         },
 | 
			
		||||
    //{ 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) },
 | 
			
		||||
    { MO(1),        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_LCTL,      KC_LGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4),   KC_RALT, KC_ESC,  KC_RCTL      }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* M1 Special Characters
 | 
			
		||||
| 
						 | 
				
			
			@ -56,10 +57,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
* `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[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_TILD, DE_PIPE, DE_DLR,  DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
 | 
			
		||||
	{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
 | 
			
		||||
    { 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_TILD, DE_PIPE, DE_DLR,  DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
 | 
			
		||||
    { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* M2 Navigation & Number Blocks
 | 
			
		||||
| 
						 | 
				
			
			@ -75,10 +76,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
* `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[2] = {
 | 
			
		||||
	{ XXXXXXX, KC_PGUP, KC_BSPC, KC_UP,   KC_DEL,  KC_PGDN, XXXXXXX, DE_7,    DE_8,  DE_9,    XXXXXXX, KC_INS  },
 | 
			
		||||
	{ KC_TAB,  KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,  XXXXXXX, DE_4,    DE_5,  DE_6,    DE_DOT,  KC_ENT  },
 | 
			
		||||
	{ _______, XXXXXXX, KC_TAB,  XXXXXXX, KC_ENT,  XXXXXXX, DE_0,    DE_1,    DE_2,  DE_3,    DE_COMM, _______ },
 | 
			
		||||
	{ _______, _______, _______, MO(3),   _______, _______, _______, _______, MO(3), _______, _______, _______ }
 | 
			
		||||
    { XXXXXXX, KC_PGUP, KC_BSPC, KC_UP,   KC_DEL,  KC_PGDN, XXXXXXX, DE_7,    DE_8,  DE_9,    XXXXXXX, KC_INS  },
 | 
			
		||||
    { KC_TAB,  KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,  XXXXXXX, DE_4,    DE_5,  DE_6,    DE_DOT,  KC_ENT  },
 | 
			
		||||
    { _______, XXXXXXX, KC_TAB,  XXXXXXX, KC_ENT,  XXXXXXX, DE_0,    DE_1,    DE_2,  DE_3,    DE_COMM, _______ },
 | 
			
		||||
    { _______, _______, _______, MO(3),   _______, _______, _______, _______, MO(3), _______, _______, _______ }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* M3 Switched Navigation & Number Blocks for one handed use
 | 
			
		||||
| 
						 | 
				
			
			@ -95,10 +96,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
[3] = {
 | 
			
		||||
	{ KC_INS,  XXXXXXX, DE_7,    DE_8,    DE_9,    XXXXXXX, KC_PGUP, KC_BSPC, KC_UP,   KC_DEL,  KC_PGDN, XXXXXXX },
 | 
			
		||||
	{ _______, XXXXXXX, DE_4,    DE_5,    DE_6,    DE_DOT,  KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,  _______ },
 | 
			
		||||
	{ _______, DE_0,    DE_1,    DE_2,    DE_3,    DE_COMM, XXXXXXX, KC_TAB,  XXXXXXX, KC_ENT,  XXXXXXX, _______ },
 | 
			
		||||
	{ _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, _______, _______ }
 | 
			
		||||
    { KC_INS,  XXXXXXX, DE_7,    DE_8,    DE_9,    XXXXXXX, KC_PGUP, KC_BSPC, KC_UP,   KC_DEL,  KC_PGDN, XXXXXXX },
 | 
			
		||||
    { _______, XXXXXXX, DE_4,    DE_5,    DE_6,    DE_DOT,  KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,  _______ },
 | 
			
		||||
    { _______, DE_0,    DE_1,    DE_2,    DE_3,    DE_COMM, XXXXXXX, KC_TAB,  XXXXXXX, KC_ENT,  XXXXXXX, _______ },
 | 
			
		||||
    { _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, _______, _______ }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -114,10 +115,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
* `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[4] = {
 | 
			
		||||
	{ XXXXXXX, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, KC_F7, KC_F8,   KC_F9,   KC_F12,  XXXXXXX },
 | 
			
		||||
	{ KC_TAB,  XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, DE_SQ3,  KC_F4, KC_F5,   KC_F6,   KC_F11,  KC_ENT  },
 | 
			
		||||
	{ _______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, DE_SQ2,  KC_F1, KC_F2,   KC_F3,   KC_F10,  _______ },
 | 
			
		||||
	{ _______, _______, _______, _______, MO(5),   _______, _______, MO(5), _______, _______, _______, _______ }
 | 
			
		||||
    { XXXXXXX, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, KC_F7, KC_F8,   KC_F9,   KC_F12,  XXXXXXX },
 | 
			
		||||
    { KC_TAB,  XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, DE_SQ3,  KC_F4, KC_F5,   KC_F6,   KC_F11,  KC_ENT  },
 | 
			
		||||
    { _______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, DE_SQ2,  KC_F1, KC_F2,   KC_F3,   KC_F10,  _______ },
 | 
			
		||||
    { _______, _______, _______, _______, MO(5),   _______, _______, MO(5), _______, _______, _______, _______ }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -134,10 +135,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
* `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[5] = {
 | 
			
		||||
	{ XXXXXXX, XXXXXXX, KC_F7,   KC_F8,   KC_F9,   KC_F12,  XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX },
 | 
			
		||||
	{ _______, DE_SQ3,  KC_F4,   KC_F5,   KC_F6,   KC_F11,  XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______ },
 | 
			
		||||
	{ _______, DE_SQ2,  KC_F1,   KC_F2,   KC_F3,   KC_F10,  XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______ },
 | 
			
		||||
	{ _______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______ }
 | 
			
		||||
    { XXXXXXX, XXXXXXX, KC_F7,   KC_F8,   KC_F9,   KC_F12,  XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX },
 | 
			
		||||
    { _______, DE_SQ3,  KC_F4,   KC_F5,   KC_F6,   KC_F11,  XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______ },
 | 
			
		||||
    { _______, DE_SQ2,  KC_F1,   KC_F2,   KC_F3,   KC_F10,  XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______ },
 | 
			
		||||
    { _______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______ }
 | 
			
		||||
}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -148,19 +149,19 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
	// MACRODOWN only works in this function
 | 
			
		||||
	switch (id) {
 | 
			
		||||
	case 0:
 | 
			
		||||
		if (record->event.pressed) {
 | 
			
		||||
			register_code(KC_RSFT);
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id) {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
			backlight_step();
 | 
			
		||||
            backlight_step();
 | 
			
		||||
#endif
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			unregister_code(KC_RSFT);
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	return MACRO_NONE;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
#include "backlight.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -7,7 +8,7 @@
 | 
			
		|||
#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 
 | 
			
		||||
   used in the keymap matrix below.  The underscores do not denote
 | 
			
		||||
   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
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +21,7 @@
 | 
			
		|||
/* This was originally based on planck/keymaps/default/default.c, and
 | 
			
		||||
   then cbbrowne has revised things */
 | 
			
		||||
 | 
			
		||||
/* Things I did not like about the default mapping 
 | 
			
		||||
/* Things I did not like about the default mapping
 | 
			
		||||
 | 
			
		||||
   - I found control too hard to get to.  I use it more than Tab, so
 | 
			
		||||
     switched it there.
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +34,7 @@
 | 
			
		|||
 | 
			
		||||
   - All of the above are done :-)
 | 
			
		||||
 | 
			
		||||
   - Dropped out support for Dvorak and friends.  They aren't 
 | 
			
		||||
   - Dropped out support for Dvorak and friends.  They aren't
 | 
			
		||||
     improvements to me
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -177,7 +178,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
    } else {
 | 
			
		||||
      unregister_code(KC_RSFT);
 | 
			
		||||
    }
 | 
			
		||||
    break;	    
 | 
			
		||||
    break;
 | 
			
		||||
  case M_USERNAME:
 | 
			
		||||
    if (record->event.pressed) {
 | 
			
		||||
      SEND_STRING("cbbrowne");
 | 
			
		||||
| 
						 | 
				
			
			@ -195,7 +196,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
    if (record->event.pressed) {
 | 
			
		||||
      /* Here, we mix the LCRNG with low bits from one of the system
 | 
			
		||||
         clocks via XOR in the theory that this may be more random
 | 
			
		||||
         than either separately */ 
 | 
			
		||||
         than either separately */
 | 
			
		||||
      rval = (random_value ^ clockbyte) % 10;
 | 
			
		||||
      /* Note that KC_1 thru KC_0 are a contiguous range */
 | 
			
		||||
      register_code (KC_1 + rval);
 | 
			
		||||
| 
						 | 
				
			
			@ -207,7 +208,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
       a letter chosen at random */
 | 
			
		||||
    /* Here, we mix the LCRNG with low bits from one of the system
 | 
			
		||||
       clocks via XOR in the theory that this may be more random
 | 
			
		||||
       than either separately */ 
 | 
			
		||||
       than either separately */
 | 
			
		||||
    random_value = ((random_value + randadd) * randmul) % randmod;
 | 
			
		||||
    if (record->event.pressed) {
 | 
			
		||||
      rval = (random_value ^ clockbyte) % 26;
 | 
			
		||||
| 
						 | 
				
			
			@ -247,7 +248,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
	update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
      }
 | 
			
		||||
    break;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
  return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -366,4 +367,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
// Layout picture at http://www.keyboard-layout-editor.com/#/gists/125febfad6960add078e6f14256539b6
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -21,21 +22,21 @@ extern keymap_config_t keymap_config;
 | 
			
		|||
#define _FUNCTN 5
 | 
			
		||||
 | 
			
		||||
enum planck_keycodes {
 | 
			
		||||
	QWERTY = SAFE_RANGE,
 | 
			
		||||
	DVORAK,
 | 
			
		||||
	NUMBER,
 | 
			
		||||
	ACTION
 | 
			
		||||
    QWERTY = SAFE_RANGE,
 | 
			
		||||
    DVORAK,
 | 
			
		||||
    NUMBER,
 | 
			
		||||
    ACTION
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Key code names
 | 
			
		||||
#define SFT_ENT FUNC(0)	// Tap for enter, hold for right shift
 | 
			
		||||
#define SFT_ENT FUNC(0) // Tap for enter, hold for right shift
 | 
			
		||||
#define LOCK    FUNC(1)
 | 
			
		||||
#define KC_PSTE KC_PASTE
 | 
			
		||||
#define _______ KC_TRNS
 | 
			
		||||
#define XXXXXXX KC_NO
 | 
			
		||||
 | 
			
		||||
#ifdef TAP_DANCE_ENABLE
 | 
			
		||||
#define SFT_CAP TD(0)	// Left shift, double tap for caps
 | 
			
		||||
#define SFT_CAP TD(0)   // Left shift, double tap for caps
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef TAP_DANCE_ENABLE
 | 
			
		||||
#define SFT_CAP KC_LSFT // Regular left shift
 | 
			
		||||
| 
						 | 
				
			
			@ -44,14 +45,14 @@ enum planck_keycodes {
 | 
			
		|||
// Tap Dance Definitions
 | 
			
		||||
#ifdef TAP_DANCE_ENABLE
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
	[0]  = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
 | 
			
		||||
    [0]  = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Function definitions
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
	[0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
 | 
			
		||||
	[1] = ACTION_LAYER_TOGGLE(_LOCKED)
 | 
			
		||||
    [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
 | 
			
		||||
    [1] = ACTION_LAYER_TOGGLE(_LOCKED)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Layout definitions
 | 
			
		||||
| 
						 | 
				
			
			@ -69,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_QWERTY] = {
 | 
			
		||||
	{KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
 | 
			
		||||
	{KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
	{SFT_CAP, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_UP,   SFT_ENT},
 | 
			
		||||
	{KC_LCTL, KC_LALT, KC_LGUI, KC_VOLD, ACTION,  KC_SPC,  KC_SPC,  NUMBER,  KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT}
 | 
			
		||||
    {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
 | 
			
		||||
    {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
    {SFT_CAP, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_UP,   SFT_ENT},
 | 
			
		||||
    {KC_LCTL, KC_LALT, KC_LGUI, KC_VOLD, ACTION,  KC_SPC,  KC_SPC,  NUMBER,  KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* DVORAK
 | 
			
		||||
| 
						 | 
				
			
			@ -87,10 +88,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_DVORAK] = {
 | 
			
		||||
	{_______, KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    _______},
 | 
			
		||||
	{_______, KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_Z   },
 | 
			
		||||
	{_______, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    _______, _______},
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
    {_______, KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    _______},
 | 
			
		||||
    {_______, KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_Z   },
 | 
			
		||||
    {_______, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    _______, _______},
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* LOCK
 | 
			
		||||
| 
						 | 
				
			
			@ -105,10 +106,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_LOCKED] = {
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
	{KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
	{_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
    {KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
    {_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* NUMBERS
 | 
			
		||||
| 
						 | 
				
			
			@ -123,10 +124,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_NUMBER] = {
 | 
			
		||||
	{_______, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    _______},
 | 
			
		||||
	{_______, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_QUES, KC_SLSH},
 | 
			
		||||
	{_______, KC_GRV,  XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, _______, _______},
 | 
			
		||||
	{_______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______}
 | 
			
		||||
    {_______, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    _______},
 | 
			
		||||
    {_______, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_QUES, KC_SLSH},
 | 
			
		||||
    {_______, KC_GRV,  XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, _______, _______},
 | 
			
		||||
    {_______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* ACTIONS
 | 
			
		||||
| 
						 | 
				
			
			@ -141,10 +142,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_ACTION] = {
 | 
			
		||||
	{_______, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
 | 
			
		||||
	{_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
 | 
			
		||||
	{KC_CAPS, KC_UNDO, KC_CUT,  KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT },
 | 
			
		||||
	{_______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END }
 | 
			
		||||
    {_______, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
 | 
			
		||||
    {_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
 | 
			
		||||
    {KC_CAPS, KC_UNDO, KC_CUT,  KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT },
 | 
			
		||||
    {_______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* FUNCTIONS
 | 
			
		||||
| 
						 | 
				
			
			@ -159,10 +160,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_FUNCTN] = {
 | 
			
		||||
	{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_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20,  KC_F21,  KC_F22,  KC_F23,  KC_F24 },
 | 
			
		||||
	{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY,  DVORAK,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
 | 
			
		||||
	{RESET,   XXXXXXX, LOCK,    XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
 | 
			
		||||
    {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_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20,  KC_F21,  KC_F22,  KC_F23,  KC_F24 },
 | 
			
		||||
    {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY,  DVORAK,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
 | 
			
		||||
    {RESET,   XXXXXXX, LOCK,    XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -177,56 +178,56 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	switch (keycode) {
 | 
			
		||||
		case QWERTY:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				if (IS_LAYER_ON(_DVORAK)) {
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
        case QWERTY:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                if (IS_LAYER_ON(_DVORAK)) {
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
					PLAY_SONG(tone_qwerty);
 | 
			
		||||
                    PLAY_SONG(tone_qwerty);
 | 
			
		||||
#endif
 | 
			
		||||
					layer_off(_DVORAK);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
		case DVORAK:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				if (!IS_LAYER_ON(_DVORAK)) {
 | 
			
		||||
                    layer_off(_DVORAK);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case DVORAK:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                if (!IS_LAYER_ON(_DVORAK)) {
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
					PLAY_SONG(tone_dvorak);
 | 
			
		||||
                    PLAY_SONG(tone_dvorak);
 | 
			
		||||
#endif
 | 
			
		||||
					layer_on(_DVORAK);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
		case NUMBER:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				layer_on(_NUMBER);
 | 
			
		||||
				update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
 | 
			
		||||
			} else {
 | 
			
		||||
				layer_off(_NUMBER);
 | 
			
		||||
				update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
		case ACTION:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				layer_on(_ACTION);
 | 
			
		||||
				update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
 | 
			
		||||
			} else {
 | 
			
		||||
				layer_off(_ACTION);
 | 
			
		||||
				update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
	return true;
 | 
			
		||||
                    layer_on(_DVORAK);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case NUMBER:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_NUMBER);
 | 
			
		||||
                update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
 | 
			
		||||
            } else {
 | 
			
		||||
                layer_off(_NUMBER);
 | 
			
		||||
                update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case ACTION:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_ACTION);
 | 
			
		||||
                update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
 | 
			
		||||
            } else {
 | 
			
		||||
                layer_off(_ACTION);
 | 
			
		||||
                update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_init_user(void) {
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
	startup_user();
 | 
			
		||||
    startup_user();
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -234,25 +235,25 @@ void matrix_init_user(void) {
 | 
			
		|||
 | 
			
		||||
void startup_user()
 | 
			
		||||
{
 | 
			
		||||
	_delay_ms(20); // gets rid of tick
 | 
			
		||||
	PLAY_SONG(tone_startup);
 | 
			
		||||
    _delay_ms(20); // gets rid of tick
 | 
			
		||||
    PLAY_SONG(tone_startup);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void shutdown_user()
 | 
			
		||||
{
 | 
			
		||||
	PLAY_SONG(tone_goodbye);
 | 
			
		||||
	_delay_ms(150);
 | 
			
		||||
	stop_all_notes();
 | 
			
		||||
    PLAY_SONG(tone_goodbye);
 | 
			
		||||
    _delay_ms(150);
 | 
			
		||||
    stop_all_notes();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void music_on_user(void)
 | 
			
		||||
{
 | 
			
		||||
	music_scale_user();
 | 
			
		||||
    music_scale_user();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void music_scale_user(void)
 | 
			
		||||
{
 | 
			
		||||
	PLAY_SONG(music_scale);
 | 
			
		||||
    PLAY_SONG(music_scale);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -258,4 +259,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +28,7 @@ enum custom_keycodes {
 | 
			
		|||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
/* QWERTY 
 | 
			
		||||
/* QWERTY
 | 
			
		||||
 * .----------------------------------------------------------------------------------.
 | 
			
		||||
 * | Esc |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |Enter |
 | 
			
		||||
 * |-----+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
| 
						 | 
				
			
			@ -40,11 +41,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
[_QWERTY] = {
 | 
			
		||||
  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,      KC_O,    KC_P,    KC_ENT}, 
 | 
			
		||||
  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,      KC_L,    KC_SCLN, KC_QUOT}, 
 | 
			
		||||
  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM,   KC_DOT,  KC_SLSH, KC_RSFT}, 
 | 
			
		||||
  {ARROW,   KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_BSPC, KC_SPC,  RAISE,   KC_RGUI,   KC_RALT, KC_RCTL, KC_MINS} 
 | 
			
		||||
},  
 | 
			
		||||
  {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,      KC_O,    KC_P,    KC_ENT},
 | 
			
		||||
  {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,      KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM,   KC_DOT,  KC_SLSH, KC_RSFT},
 | 
			
		||||
  {ARROW,   KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_BSPC, KC_SPC,  RAISE,   KC_RGUI,   KC_RALT, KC_RCTL, KC_MINS}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* Lower
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -58,11 +59,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
[_LOWER] = { 
 | 
			
		||||
[_LOWER] = {
 | 
			
		||||
  {XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  KC_7,    KC_8,    KC_9,    KC_PSLS,  KC_BSLS, KC_GRV},
 | 
			
		||||
  {XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  KC_4,    KC_5,    KC_6,    KC_PAST,  KC_LPRN, KC_RPRN},
 | 
			
		||||
  {_______,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  KC_1,    KC_2,    KC_3,    KC_MINS,  KC_LBRC, KC_RBRC},
 | 
			
		||||
  {XXXXXXX,  XXXXXXX,  XXXXXXX,  _______,  _______,  XXXXXXX,  KC_0,    KC_DOT,  KC_PEQL, KC_PPLS,  KC_LCBR, KC_RCBR} 
 | 
			
		||||
  {XXXXXXX,  XXXXXXX,  XXXXXXX,  _______,  _______,  XXXXXXX,  KC_0,    KC_DOT,  KC_PEQL, KC_PPLS,  KC_LCBR, KC_RCBR}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* Raise
 | 
			
		||||
| 
						 | 
				
			
			@ -78,10 +79,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
[_RAISE] = {
 | 
			
		||||
  {KC_F1,    KC_F2,   KC_F3,    KC_F4,   KC_F5,   KC_F6,   XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, 
 | 
			
		||||
  {KC_F7,    KC_F8,   KC_F9,    KC_F10,  KC_F11,  KC_F12,  XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, 
 | 
			
		||||
  {KC_MPLY,  KC_MUTE, KC_VOLD,  KC_VOLU, KC_MPRV, KC_MNXT, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, 
 | 
			
		||||
  {XXXXXXX,  XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} 
 | 
			
		||||
  {KC_F1,    KC_F2,   KC_F3,    KC_F4,   KC_F5,   KC_F6,   XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
 | 
			
		||||
  {KC_F7,    KC_F8,   KC_F9,    KC_F10,  KC_F11,  KC_F12,  XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
 | 
			
		||||
  {KC_MPLY,  KC_MUTE, KC_VOLD,  KC_VOLU, KC_MPRV, KC_MNXT, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
 | 
			
		||||
  {XXXXXXX,  XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* Arrow
 | 
			
		||||
| 
						 | 
				
			
			@ -100,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  {XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX, KC_UP,   XXXXXXX,  XXXXXXX, XXXXXXX},
 | 
			
		||||
  {XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT,  XXXXXXX, XXXXXXX},
 | 
			
		||||
  {XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX},
 | 
			
		||||
  {_______,  XXXXXXX,  XXXXXXX,  _______,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX} 
 | 
			
		||||
  {_______,  XXXXXXX,  XXXXXXX,  _______,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 | 
			
		||||
//alias for clarity in layering
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +27,7 @@ enum {
 | 
			
		|||
#define SftLck TD(SFT_LCK)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
/* Colemak
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | ESC` |   Q  |   W  |   F  |   P  |   G  |   J  |   L  |   U  |   Y  |   ;  | Bksp |
 | 
			
		||||
| 
						 | 
				
			
			@ -38,14 +39,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * | Del  | GUI  | Ctrl | Alt  | GUI  |    Space    |Symbol| Left | Down |  Up  |Right |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
[_COLEMAK] = {
 | 
			
		||||
  {KC_GESC, KC_Q   , KC_W   , KC_F   , KC_P   , KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
 | 
			
		||||
  {NAV    , KC_A   , KC_R   , KC_S   , KC_T   , KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT},
 | 
			
		||||
  {SftLck , KC_Z   , KC_X   , KC_C   , KC_V   , KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, SftEnt },
 | 
			
		||||
  {KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC,  KC_SPC,  MO(1),   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
 | 
			
		||||
  },
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
/* Symbol
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |   [  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   ]  |
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  },
 | 
			
		||||
 | 
			
		||||
/* Navigation*/
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
[_NAVIGATION] = {
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, C_TAB  , A_LEFT,  KC_UP,   A_RGHT , KC_DEL , _______},
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, GSL    , KC_LEFT, KC_DOWN, KC_RGHT, GSR    , _______},
 | 
			
		||||
| 
						 | 
				
			
			@ -95,4 +96,4 @@ void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		|||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
  //Tap once for Shift, twice for Caps Lock
 | 
			
		||||
  [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
 | 
			
		||||
};
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -229,4 +230,4 @@ void music_scale_user(void)
 | 
			
		|||
    PLAY_SONG(music_scale);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -5,170 +6,170 @@
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
enum planck_layers {
 | 
			
		||||
	_DVORAK,
 | 
			
		||||
	_NUMBERS,
 | 
			
		||||
	_SYMBOLS,
 | 
			
		||||
	_ACTIONS,
 | 
			
		||||
	_SPECIAL
 | 
			
		||||
    _DVORAK,
 | 
			
		||||
    _NUMBERS,
 | 
			
		||||
    _SYMBOLS,
 | 
			
		||||
    _ACTIONS,
 | 
			
		||||
    _SPECIAL
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
enum planck_keycodes {
 | 
			
		||||
	DVORAK,
 | 
			
		||||
	NUMBERS,
 | 
			
		||||
	SYMBOLS,
 | 
			
		||||
	ACTIONS,
 | 
			
		||||
	SPECIAL
 | 
			
		||||
    DVORAK,
 | 
			
		||||
    NUMBERS,
 | 
			
		||||
    SYMBOLS,
 | 
			
		||||
    ACTIONS,
 | 
			
		||||
    SPECIAL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum tap_dance_codes {
 | 
			
		||||
	CT_SC_LP = 0,
 | 
			
		||||
	CT_Q_LBRC,
 | 
			
		||||
	CT_J_LBRK,
 | 
			
		||||
	CT_W_RBRK,
 | 
			
		||||
	CT_V_RBRC,
 | 
			
		||||
	CT_Z_RP,
 | 
			
		||||
	CT_DEL_ESC
 | 
			
		||||
    CT_SC_LP = 0,
 | 
			
		||||
    CT_Q_LBRC,
 | 
			
		||||
    CT_J_LBRK,
 | 
			
		||||
    CT_W_RBRK,
 | 
			
		||||
    CT_V_RBRC,
 | 
			
		||||
    CT_Z_RP,
 | 
			
		||||
    CT_DEL_ESC
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
			
		||||
	//keyevent_t event = record->event;
 | 
			
		||||
    //keyevent_t event = record->event;
 | 
			
		||||
 | 
			
		||||
	switch (id) {
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
	return MACRO_NONE;
 | 
			
		||||
    switch (id) {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
	[0] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_LPRN),
 | 
			
		||||
	[1] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_LCBR),
 | 
			
		||||
	[2] = ACTION_TAP_DANCE_DOUBLE(KC_J, KC_LBRC),
 | 
			
		||||
	[3] = ACTION_TAP_DANCE_DOUBLE(KC_W, KC_RBRC),
 | 
			
		||||
	[4] = ACTION_TAP_DANCE_DOUBLE(KC_V, KC_RCBR),
 | 
			
		||||
	[5] = ACTION_TAP_DANCE_DOUBLE(KC_Z, KC_RPRN)
 | 
			
		||||
    [0] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_LPRN),
 | 
			
		||||
    [1] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_LCBR),
 | 
			
		||||
    [2] = ACTION_TAP_DANCE_DOUBLE(KC_J, KC_LBRC),
 | 
			
		||||
    [3] = ACTION_TAP_DANCE_DOUBLE(KC_W, KC_RBRC),
 | 
			
		||||
    [4] = ACTION_TAP_DANCE_DOUBLE(KC_V, KC_RCBR),
 | 
			
		||||
    [5] = ACTION_TAP_DANCE_DOUBLE(KC_Z, KC_RPRN)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
	/* Dvorak
 | 
			
		||||
	* ,-----------------------------------------------------------------------------------.
 | 
			
		||||
	* | Tab  |  '"  |  ,<  |  .>  |   P  |   Y  |   F  |   G  |   C  |   R  |   L  |  BS  |
 | 
			
		||||
	* |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
	* | Esc  |   A  |   O  |   E  |   U  |   I  |   D  |   H  |   T  |   N  |   S  |  /?  |
 | 
			
		||||
	* |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
	* |LShift| ;:/( |  Q/{ |  J/[ |   K  |   X  |   B  |   M  |  W/] |  V/} |  Z/) |RS/Ent|
 | 
			
		||||
	* |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
	* |Action| Ctrl |  GUI | Alt  |Number| Space/Enter |Symbol| Left | Down |  Up  | Right|
 | 
			
		||||
	* `-----------------------------------------------------------------------------------'
 | 
			
		||||
	*/
 | 
			
		||||
	[_DVORAK] = {
 | 
			
		||||
		{KC_TAB, 		KC_QUOT, 	KC_COMM,	KC_DOT, 	KC_P, 	KC_Y, 	   KC_F, 		KC_G, 	KC_C, 	 KC_R, 	  KC_L,  KC_BSPACE},
 | 
			
		||||
		{KC_ESC,		KC_A,	 	KC_O, 		KC_E, 		KC_U, 	KC_I, 	   KC_D, 		KC_H, 	KC_T, 	 KC_N, 	  KC_S,  KC_SLASH},
 | 
			
		||||
		{KC_LSFT,		TD(0),		TD(1),		TD(2),		KC_K,	KC_X,	   KC_B,		KC_M,	TD(3),	 TD(4),	  TD(5), MT(MOD_RSFT, KC_ENT)},
 | 
			
		||||
		{MO(ACTIONS),	KC_LCTRL, 	KC_LGUI,	KC_LALT,	NUMBERS,	KC_SPACE, KC_SPACE,			SYMBOLS,KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT},
 | 
			
		||||
	},
 | 
			
		||||
    /* Dvorak
 | 
			
		||||
    * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
    * | Tab  |  '"  |  ,<  |  .>  |   P  |   Y  |   F  |   G  |   C  |   R  |   L  |  BS  |
 | 
			
		||||
    * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
    * | Esc  |   A  |   O  |   E  |   U  |   I  |   D  |   H  |   T  |   N  |   S  |  /?  |
 | 
			
		||||
    * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
    * |LShift| ;:/( |  Q/{ |  J/[ |   K  |   X  |   B  |   M  |  W/] |  V/} |  Z/) |RS/Ent|
 | 
			
		||||
    * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
    * |Action| Ctrl |  GUI | Alt  |Number| Space/Enter |Symbol| Left | Down |  Up  | Right|
 | 
			
		||||
    * `-----------------------------------------------------------------------------------'
 | 
			
		||||
    */
 | 
			
		||||
    [_DVORAK] = {
 | 
			
		||||
        {KC_TAB,        KC_QUOT,    KC_COMM,    KC_DOT,     KC_P,   KC_Y,      KC_F,        KC_G,   KC_C,    KC_R,    KC_L,  KC_BSPACE},
 | 
			
		||||
        {KC_ESC,        KC_A,       KC_O,       KC_E,       KC_U,   KC_I,      KC_D,        KC_H,   KC_T,    KC_N,    KC_S,  KC_SLASH},
 | 
			
		||||
        {KC_LSFT,       TD(0),      TD(1),      TD(2),      KC_K,   KC_X,      KC_B,        KC_M,   TD(3),   TD(4),   TD(5), MT(MOD_RSFT, KC_ENT)},
 | 
			
		||||
        {MO(ACTIONS),   KC_LCTRL,   KC_LGUI,    KC_LALT,    NUMBERS,    KC_SPACE, KC_SPACE,         SYMBOLS,KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT},
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
	/* Numbers
 | 
			
		||||
	* ,-----------------------------------------------------------------------------------.
 | 
			
		||||
	* |      |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   7  |   8  |   9  |   *  |      |
 | 
			
		||||
	* |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
	* |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |   4  |   5  |   6  |   -  |      |
 | 
			
		||||
	* |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
	* |      |      |      |      |      |      |   0  |   1  |   2  |   3  |   +  |      |
 | 
			
		||||
	* |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
	* |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
	* `-----------------------------------------------------------------------------------'
 | 
			
		||||
	*/
 | 
			
		||||
	[_NUMBERS] = {
 | 
			
		||||
		{_______, 	KC_F1, 		KC_F2, 		KC_F3, 		KC_F4, 		KC_F5, 		KC_F6, 		KC_7, 		KC_8, 		KC_9, 		KC_KP_ASTERISK, _______}, 
 | 
			
		||||
		{_______, 	KC_F7, 		KC_F8, 		KC_F9, 		KC_F10, 	KC_F11, 	KC_F12, 	KC_4, 		KC_5, 		KC_6, 		KC_KP_MINUS, 	_______}, 
 | 
			
		||||
		{_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	KC_0, 		KC_1, 		KC_2, 		KC_3, 		KC_KP_PLUS, 	_______}, 
 | 
			
		||||
		{_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 		_______},
 | 
			
		||||
	},
 | 
			
		||||
    /* Numbers
 | 
			
		||||
    * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
    * |      |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   7  |   8  |   9  |   *  |      |
 | 
			
		||||
    * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
    * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |   4  |   5  |   6  |   -  |      |
 | 
			
		||||
    * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
    * |      |      |      |      |      |      |   0  |   1  |   2  |   3  |   +  |      |
 | 
			
		||||
    * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
    * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
    * `-----------------------------------------------------------------------------------'
 | 
			
		||||
    */
 | 
			
		||||
    [_NUMBERS] = {
 | 
			
		||||
        {_______,   KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,      KC_F6,      KC_7,       KC_8,       KC_9,       KC_KP_ASTERISK, _______},
 | 
			
		||||
        {_______,   KC_F7,      KC_F8,      KC_F9,      KC_F10,     KC_F11,     KC_F12,     KC_4,       KC_5,       KC_6,       KC_KP_MINUS,    _______},
 | 
			
		||||
        {_______,   _______,    _______,    _______,    _______,    _______,    KC_0,       KC_1,       KC_2,       KC_3,       KC_KP_PLUS,     _______},
 | 
			
		||||
        {_______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,        _______},
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
	/* Symbols
 | 
			
		||||
	* ,-----------------------------------------------------------------------------------.
 | 
			
		||||
	* | `~   |  !   |  @   |  #   |   $  |   %  |   ^  |   &  |   *  |      |      | Del  |
 | 
			
		||||
	* |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
	* | Caps |      |  Ins | Pgup |      |      |      |   _  |   +  |      |      |  \|  |
 | 
			
		||||
	* |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
	* |      | Home |  End | Pgdn |      |      |      |   -  |   =  |      |      |	    |
 | 
			
		||||
	* |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
	* |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
	* `-----------------------------------------------------------------------------------'
 | 
			
		||||
	*/
 | 
			
		||||
	[_SYMBOLS] = {
 | 
			
		||||
		{KC_GRV, 	KC_EXCLAIM, KC_AT,		KC_HASH, 	KC_DOLLAR, 	KC_PERC, 	KC_CIRC, 	KC_AMPR, 	KC_ASTR, 	_______, 	_______, 	KC_DEL},
 | 
			
		||||
		{KC_CAPS,	_______,	KC_INS,		KC_PGUP, 	_______, 	_______, 	_______, 	KC_UNDS, 	KC_PLUS, 	_______, 	_______, 	KC_BSLS},
 | 
			
		||||
		{_______,	KC_HOME, 	KC_END,		KC_PGDN,	_______,	_______,	_______,	KC_MINUS,	KC_EQL,		_______,	_______,	_______},
 | 
			
		||||
		{_______,	_______, 	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______, 	_______, 	_______},
 | 
			
		||||
	},
 | 
			
		||||
    /* Symbols
 | 
			
		||||
    * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
    * | `~   |  !   |  @   |  #   |   $  |   %  |   ^  |   &  |   *  |      |      | Del  |
 | 
			
		||||
    * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
    * | Caps |      |  Ins | Pgup |      |      |      |   _  |   +  |      |      |  \|  |
 | 
			
		||||
    * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
    * |      | Home |  End | Pgdn |      |      |      |   -  |   =  |      |      |        |
 | 
			
		||||
    * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
    * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
    * `-----------------------------------------------------------------------------------'
 | 
			
		||||
    */
 | 
			
		||||
    [_SYMBOLS] = {
 | 
			
		||||
        {KC_GRV,    KC_EXCLAIM, KC_AT,      KC_HASH,    KC_DOLLAR,  KC_PERC,    KC_CIRC,    KC_AMPR,    KC_ASTR,    _______,    _______,    KC_DEL},
 | 
			
		||||
        {KC_CAPS,   _______,    KC_INS,     KC_PGUP,    _______,    _______,    _______,    KC_UNDS,    KC_PLUS,    _______,    _______,    KC_BSLS},
 | 
			
		||||
        {_______,   KC_HOME,    KC_END,     KC_PGDN,    _______,    _______,    _______,    KC_MINUS,   KC_EQL,     _______,    _______,    _______},
 | 
			
		||||
        {_______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______},
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
	/* Actions
 | 
			
		||||
	* ,-----------------------------------------------------------------------------------.
 | 
			
		||||
	* |  LED |      |      |      |      | Sleep|Reset |      |      |      |      | Del  |
 | 
			
		||||
	* |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
	* |      | Redo |      |      |      |      |      | Play |  <<  |  >>  |      |      |
 | 
			
		||||
	* |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
	* |      | Undo | Cut  | Copy | Paste|      |      | Mute | Vol- | Vol+ |      |      |
 | 
			
		||||
	* |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
	* |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
	* `-----------------------------------------------------------------------------------'
 | 
			
		||||
	*/
 | 
			
		||||
	[_ACTIONS] = {
 | 
			
		||||
		{BL_STEP, 	_______, 	_______, 	_______, 	_______, 	KC_SLEP, 	RESET, 		_______, 	_______, 	_______, 	_______, 	KC_DEL}, 
 | 
			
		||||
		{_______, 	LCTL(KC_Y), 	_______, 	_______, 	_______, 	_______, 	_______, 	KC_MPLY, 	KC_MPRV, 	KC_MNXT, 	_______,	_______}, 
 | 
			
		||||
		{_______, 	LCTL(KC_Z), 	LCTL(KC_X), 	LCTL(KC_C), 	LCTL(KC_V), 	_______, 	_______, 	KC_MUTE, 	KC_VOLD, 	KC_VOLU,	_______, 	_______}, 
 | 
			
		||||
		{_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______,	_______,	_______},
 | 
			
		||||
	},
 | 
			
		||||
    /* Actions
 | 
			
		||||
    * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
    * |  LED |      |      |      |      | Sleep|Reset |      |      |      |      | Del  |
 | 
			
		||||
    * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
    * |      | Redo |      |      |      |      |      | Play |  <<  |  >>  |      |      |
 | 
			
		||||
    * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
    * |      | Undo | Cut  | Copy | Paste|      |      | Mute | Vol- | Vol+ |      |      |
 | 
			
		||||
    * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
    * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
    * `-----------------------------------------------------------------------------------'
 | 
			
		||||
    */
 | 
			
		||||
    [_ACTIONS] = {
 | 
			
		||||
        {BL_STEP,   _______,    _______,    _______,    _______,    KC_SLEP,    RESET,      _______,    _______,    _______,    _______,    KC_DEL},
 | 
			
		||||
        {_______,   LCTL(KC_Y),     _______,    _______,    _______,    _______,    _______,    KC_MPLY,    KC_MPRV,    KC_MNXT,    _______,    _______},
 | 
			
		||||
        {_______,   LCTL(KC_Z),     LCTL(KC_X),     LCTL(KC_C),     LCTL(KC_V),     _______,    _______,    KC_MUTE,    KC_VOLD,    KC_VOLU,    _______,    _______},
 | 
			
		||||
        {_______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______},
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
	/* Special
 | 
			
		||||
	* ,-----------------------------------------------------------------------------------.
 | 
			
		||||
	* |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
	* |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
	* |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
	* |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
	* |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
	* |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
	* |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
	* `-----------------------------------------------------------------------------------'
 | 
			
		||||
	*/
 | 
			
		||||
	[_SPECIAL] = {
 | 
			
		||||
		{_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______}, 
 | 
			
		||||
		{_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______,	_______}, 
 | 
			
		||||
		{_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______,	_______, 	_______}, 
 | 
			
		||||
		{_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______, 	_______,	_______,	_______},
 | 
			
		||||
	}
 | 
			
		||||
    /* Special
 | 
			
		||||
    * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
    * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
    * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
    * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
    * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
    * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
    * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
    * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
    * `-----------------------------------------------------------------------------------'
 | 
			
		||||
    */
 | 
			
		||||
    [_SPECIAL] = {
 | 
			
		||||
        {_______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______},
 | 
			
		||||
        {_______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______},
 | 
			
		||||
        {_______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______},
 | 
			
		||||
        {_______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______},
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	switch (keycode) {
 | 
			
		||||
	  case DVORAK:
 | 
			
		||||
		if (record->event.pressed) {
 | 
			
		||||
		  set_single_persistent_default_layer(_DVORAK);
 | 
			
		||||
		}
 | 
			
		||||
		return false;
 | 
			
		||||
		break;
 | 
			
		||||
	  case SYMBOLS:
 | 
			
		||||
		if (record->event.pressed) {
 | 
			
		||||
		  layer_on(_SYMBOLS);
 | 
			
		||||
		  update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL);
 | 
			
		||||
		} else {
 | 
			
		||||
		  layer_off(_SYMBOLS);
 | 
			
		||||
		  update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL);
 | 
			
		||||
		}
 | 
			
		||||
		return false;
 | 
			
		||||
		break;
 | 
			
		||||
	  case NUMBERS:
 | 
			
		||||
		if (record->event.pressed) {
 | 
			
		||||
		  layer_on(_NUMBERS);
 | 
			
		||||
		  update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL);
 | 
			
		||||
		} else {
 | 
			
		||||
		  layer_off(_NUMBERS);
 | 
			
		||||
		  update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL);
 | 
			
		||||
		}
 | 
			
		||||
		return false;
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
      case DVORAK:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
          set_single_persistent_default_layer(_DVORAK);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
        break;
 | 
			
		||||
      case SYMBOLS:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
          layer_on(_SYMBOLS);
 | 
			
		||||
          update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL);
 | 
			
		||||
        } else {
 | 
			
		||||
          layer_off(_SYMBOLS);
 | 
			
		||||
          update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
        break;
 | 
			
		||||
      case NUMBERS:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
          layer_on(_NUMBERS);
 | 
			
		||||
          update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL);
 | 
			
		||||
        } else {
 | 
			
		||||
          layer_off(_NUMBERS);
 | 
			
		||||
          update_tri_layer(_NUMBERS, _SYMBOLS, _SPECIAL);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "keymap_steno.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,4 +37,7 @@
 | 
			
		|||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
 | 
			
		||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
 | 
			
		||||
 | 
			
		||||
// Most tactile encoders have detents every 4 stages
 | 
			
		||||
#define ENCODER_RESOLUTION 4
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,7 @@
 | 
			
		|||
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "muse.h"
 | 
			
		||||
 | 
			
		||||
extern keymap_config_t keymap_config;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -54,12 +55,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * | Brite| Ctrl | 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_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
 | 
			
		||||
  {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
 | 
			
		||||
},
 | 
			
		||||
[_QWERTY] = LAYOUT_planck_grid(
 | 
			
		||||
    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_SCLN, KC_QUOT,
 | 
			
		||||
    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT ,
 | 
			
		||||
    BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Colemak
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -72,12 +73,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * | Brite| Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  |Right |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_COLEMAK] = {
 | 
			
		||||
  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC},
 | 
			
		||||
  {KC_ESC,  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_ENT },
 | 
			
		||||
  {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
 | 
			
		||||
},
 | 
			
		||||
[_COLEMAK] = LAYOUT_planck_grid(
 | 
			
		||||
    KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
 | 
			
		||||
    KC_ESC,  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_ENT ,
 | 
			
		||||
    BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Dvorak
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -90,12 +91,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * | Brite| Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  |Right |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_DVORAK] = {
 | 
			
		||||
  {KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC},
 | 
			
		||||
  {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH},
 | 
			
		||||
  {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT },
 | 
			
		||||
  {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
 | 
			
		||||
},
 | 
			
		||||
[_DVORAK] = LAYOUT_planck_grid(
 | 
			
		||||
    KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC,
 | 
			
		||||
    KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH,
 | 
			
		||||
    KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT ,
 | 
			
		||||
    BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Lower
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -108,12 +109,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_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_DEL,  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,  S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END,  _______},
 | 
			
		||||
  {_______, _______, _______, _______, _______, _______, _______, _______,    KC_MNXT,    KC_VOLD, KC_VOLU, KC_MPLY}
 | 
			
		||||
},
 | 
			
		||||
[_LOWER] = LAYOUT_planck_grid(
 | 
			
		||||
    KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_BSPC,
 | 
			
		||||
    KC_DEL,  KC_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,  S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END,  _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______,    KC_MNXT,    KC_VOLD, KC_VOLU, KC_MPLY
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Raise
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -126,12 +127,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_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_DEL,  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,  KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______},
 | 
			
		||||
  {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
 | 
			
		||||
},
 | 
			
		||||
[_RAISE] = LAYOUT_planck_grid(
 | 
			
		||||
    KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
 | 
			
		||||
    KC_DEL,  KC_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,  KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Plover layer (http://opensteno.org)
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -145,12 +146,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
[_PLOVER] = {
 | 
			
		||||
  {KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1   },
 | 
			
		||||
  {XXXXXXX, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC},
 | 
			
		||||
  {XXXXXXX, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
  {EXT_PLV, XXXXXXX, XXXXXXX, KC_C,    KC_V,    XXXXXXX, XXXXXXX, KC_N,    KC_M,    XXXXXXX, XXXXXXX, XXXXXXX}
 | 
			
		||||
},
 | 
			
		||||
[_PLOVER] = LAYOUT_planck_grid(
 | 
			
		||||
    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1   ,
 | 
			
		||||
    XXXXXXX, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC,
 | 
			
		||||
    XXXXXXX, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
 | 
			
		||||
    EXT_PLV, XXXXXXX, XXXXXXX, KC_C,    KC_V,    XXXXXXX, XXXXXXX, KC_N,    KC_M,    XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Adjust (Lower + Raise)
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -163,12 +164,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |      |      |             |      |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_ADJUST] = {
 | 
			
		||||
  {_______, RESET,   DEBUG,    RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL },
 | 
			
		||||
  {_______, _______, MU_MOD,  AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  PLOVER,  _______},
 | 
			
		||||
  {_______, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  MI_ON,   MI_OFF,  TERM_ON, TERM_OFF, _______, _______, _______},
 | 
			
		||||
  {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
}
 | 
			
		||||
[_ADJUST] = LAYOUT_planck_grid(
 | 
			
		||||
    _______, RESET,   DEBUG,    RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
 | 
			
		||||
    _______, _______, MU_MOD,  AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  PLOVER,  _______,
 | 
			
		||||
    _______, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  MI_ON,   MI_OFF,  TERM_ON, TERM_OFF, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -252,6 +253,81 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool muse_mode = false;
 | 
			
		||||
uint8_t last_muse_note = 0;
 | 
			
		||||
uint16_t muse_counter = 0;
 | 
			
		||||
uint8_t muse_offset = 70;
 | 
			
		||||
uint16_t muse_tempo = 50;
 | 
			
		||||
 | 
			
		||||
void encoder_update(bool clockwise) {
 | 
			
		||||
  if (muse_mode) {
 | 
			
		||||
    if (IS_LAYER_ON(_RAISE)) {
 | 
			
		||||
      if (clockwise) {
 | 
			
		||||
        muse_offset++;
 | 
			
		||||
      } else {
 | 
			
		||||
        muse_offset--;
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      if (clockwise) {
 | 
			
		||||
        muse_tempo+=1;
 | 
			
		||||
      } else {
 | 
			
		||||
        muse_tempo-=1;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  } else {
 | 
			
		||||
    if (clockwise) {
 | 
			
		||||
      register_code(KC_PGDN);
 | 
			
		||||
      unregister_code(KC_PGDN);
 | 
			
		||||
    } else {
 | 
			
		||||
      register_code(KC_PGUP);
 | 
			
		||||
      unregister_code(KC_PGUP);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dip_update(uint8_t index, bool active) {
 | 
			
		||||
  switch (index) {
 | 
			
		||||
    case 0:
 | 
			
		||||
      if (active) {
 | 
			
		||||
        #ifdef AUDIO_ENABLE
 | 
			
		||||
          PLAY_SONG(plover_song);
 | 
			
		||||
        #endif
 | 
			
		||||
        layer_on(_ADJUST);
 | 
			
		||||
      } else {
 | 
			
		||||
        #ifdef AUDIO_ENABLE
 | 
			
		||||
          PLAY_SONG(plover_gb_song);
 | 
			
		||||
        #endif
 | 
			
		||||
        layer_off(_ADJUST);
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case 1:
 | 
			
		||||
      if (active) {
 | 
			
		||||
        muse_mode = true;
 | 
			
		||||
      } else {
 | 
			
		||||
        muse_mode = false;
 | 
			
		||||
        #ifdef AUDIO_ENABLE
 | 
			
		||||
          stop_all_notes();
 | 
			
		||||
        #endif
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
  #ifdef AUDIO_ENABLE
 | 
			
		||||
    if (muse_mode) {
 | 
			
		||||
      if (muse_counter == 0) {
 | 
			
		||||
        uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
 | 
			
		||||
        if (muse_note != last_muse_note) {
 | 
			
		||||
          stop_note(compute_freq_for_midi_note(last_muse_note));
 | 
			
		||||
          play_note(compute_freq_for_midi_note(muse_note), 0xF);
 | 
			
		||||
          last_muse_note = muse_note;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      muse_counter = (muse_counter + 1) % muse_tempo;
 | 
			
		||||
    }
 | 
			
		||||
  #endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool music_mask_user(uint16_t keycode) {
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
    case RAISE:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
SRC += muse.c
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
// Can't Remember Sh*t Keymap for Planck
 | 
			
		||||
// http://www.keyboard-layout-editor.com/#/gists/c6c0ac051b2b118a34ef84ebadab54c7
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -74,8 +75,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,  KC_B,    KC_N,    KC_M,   KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) },
 | 
			
		||||
  {KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC,  KC_SPC,  RAISE,  KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
 | 
			
		||||
},
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Game
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |   1  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -214,7 +215,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      if (record->event.pressed) {
 | 
			
		||||
        set_single_persistent_default_layer(_DVORAK);
 | 
			
		||||
      }
 | 
			
		||||
      return false; 
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
    case LOWER:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
| 
						 | 
				
			
			@ -285,4 +286,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
// Layout picture at http://www.keyboard-layout-editor.com/#/gists/125febfad6960add078e6f14256539b6
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -23,19 +24,19 @@ extern keymap_config_t keymap_config;
 | 
			
		|||
#define _ONESHOT 7
 | 
			
		||||
 | 
			
		||||
enum planck_keycodes {
 | 
			
		||||
	QWERTY = SAFE_RANGE,
 | 
			
		||||
	NUMPAD,
 | 
			
		||||
	RAISE,
 | 
			
		||||
	LOWER,
 | 
			
		||||
	MEDIA,
 | 
			
		||||
	ONESHOT,
 | 
			
		||||
	DYNAMIC_MACRO_RANGE
 | 
			
		||||
    QWERTY = SAFE_RANGE,
 | 
			
		||||
    NUMPAD,
 | 
			
		||||
    RAISE,
 | 
			
		||||
    LOWER,
 | 
			
		||||
    MEDIA,
 | 
			
		||||
    ONESHOT,
 | 
			
		||||
    DYNAMIC_MACRO_RANGE
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#include "dynamic_macro.h"
 | 
			
		||||
 | 
			
		||||
// Key code names
 | 
			
		||||
#define SFT_ENT  FUNC(0)	// Tap for enter, hold for right shift
 | 
			
		||||
#define SFT_ENT  FUNC(0)    // Tap for enter, hold for right shift
 | 
			
		||||
#define LOCK     FUNC(1)
 | 
			
		||||
#define KC_PSTE  KC_PASTE
 | 
			
		||||
#define _______  KC_TRNS
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +46,7 @@ enum planck_keycodes {
 | 
			
		|||
#define ZOOM_NML LCTL(KC_0)
 | 
			
		||||
 | 
			
		||||
#ifdef TAP_DANCE_ENABLE
 | 
			
		||||
#define SFT_CAP  TD(0)	// Left shift, double tap for caps
 | 
			
		||||
#define SFT_CAP  TD(0)  // Left shift, double tap for caps
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef TAP_DANCE_ENABLE
 | 
			
		||||
#define SFT_CAP  KC_LSFT // Regular left shift
 | 
			
		||||
| 
						 | 
				
			
			@ -54,14 +55,14 @@ enum planck_keycodes {
 | 
			
		|||
// Tap Dance Definitions
 | 
			
		||||
#ifdef TAP_DANCE_ENABLE
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
	[0]  = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
 | 
			
		||||
    [0]  = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Function definitions
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
	[0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
 | 
			
		||||
	[1] = ACTION_LAYER_TOGGLE(_LOCKED)
 | 
			
		||||
    [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
 | 
			
		||||
    [1] = ACTION_LAYER_TOGGLE(_LOCKED)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Layout definitions
 | 
			
		||||
| 
						 | 
				
			
			@ -79,10 +80,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_QWERTY] = {
 | 
			
		||||
	{KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
 | 
			
		||||
	{KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
	{SFT_CAP, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_UP,   SFT_ENT},
 | 
			
		||||
	{KC_LCTL, KC_LGUI, KC_LALT, MEDIA,   LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
 | 
			
		||||
    {KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
 | 
			
		||||
    {KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
    {SFT_CAP, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_UP,   SFT_ENT},
 | 
			
		||||
    {KC_LCTL, KC_LGUI, KC_LALT, MEDIA,   LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* NUMPAD
 | 
			
		||||
| 
						 | 
				
			
			@ -115,10 +116,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_LOCKED] = {
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
	{KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,  KC_ENT},
 | 
			
		||||
	{_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
    {KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,  KC_ENT},
 | 
			
		||||
    {_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* RAISE
 | 
			
		||||
| 
						 | 
				
			
			@ -169,10 +170,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_MEDIA] = {
 | 
			
		||||
	{XXXXXXX, XXXXXXX, KC_WHOM, XXXXXXX, XXXXXXX, XXXXXXX, KC_AGAIN, XXXXXXX, KC_INS,   XXXXXXX, KC_PSCR, XXXXXXX},
 | 
			
		||||
	{XXXXXXX, XXXXXXX, KC_WSCH, XXXXXXX, KC_FIND, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX,  XXXXXXX, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2 },
 | 
			
		||||
	{KC_LSFT, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, ZOOM_OUT, ZOOM_IN, KC_MPRV, DYN_REC_STOP },
 | 
			
		||||
	{ONESHOT, XXXXXXX, XXXXXXX, _______, KC_VOLD, KC_MUTE, KC_MUTE,  KC_VOLU, ZOOM_NML, KC_MSTP, KC_MNXT, KC_MPLY }
 | 
			
		||||
    {XXXXXXX, XXXXXXX, KC_WHOM, XXXXXXX, XXXXXXX, XXXXXXX, KC_AGAIN, XXXXXXX, KC_INS,   XXXXXXX, KC_PSCR, XXXXXXX},
 | 
			
		||||
    {XXXXXXX, XXXXXXX, KC_WSCH, XXXXXXX, KC_FIND, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX,  XXXXXXX, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2 },
 | 
			
		||||
    {KC_LSFT, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, ZOOM_OUT, ZOOM_IN, KC_MPRV, DYN_REC_STOP },
 | 
			
		||||
    {ONESHOT, XXXXXXX, XXXXXXX, _______, KC_VOLD, KC_MUTE, KC_MUTE,  KC_VOLU, ZOOM_NML, KC_MSTP, KC_MNXT, KC_MPLY }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* ONESHOT
 | 
			
		||||
| 
						 | 
				
			
			@ -187,10 +188,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_ONESHOT] = {
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2},
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
	{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2},
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
 | 
			
		||||
    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* FUNCTIONS
 | 
			
		||||
| 
						 | 
				
			
			@ -205,10 +206,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_FUNCTN] = {
 | 
			
		||||
	{KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PWR },
 | 
			
		||||
	{KC_WAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
 | 
			
		||||
	{XXXXXXX, XXXXXXX, XXXXXXX, AU_OFF,  MU_OFF,  QWERTY,  NUMPAD,  MU_ON,   AU_ON,   XXXXXXX, MUV_IN,  KC_SYSREQ},
 | 
			
		||||
	{RESET,   XXXXXXX, LOCK,    XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, AG_NORM, MUV_DE,  AG_SWAP}
 | 
			
		||||
    {KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PWR },
 | 
			
		||||
    {KC_WAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
 | 
			
		||||
    {XXXXXXX, XXXXXXX, XXXXXXX, AU_OFF,  MU_OFF,  QWERTY,  NUMPAD,  MU_ON,   AU_ON,   XXXXXXX, MUV_IN,  KC_SYSREQ},
 | 
			
		||||
    {RESET,   XXXXXXX, LOCK,    XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, AG_NORM, MUV_DE,  AG_SWAP}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -227,95 +228,95 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 | 
			
		|||
void press_key(uint16_t key) {
 | 
			
		||||
    register_code(key);
 | 
			
		||||
    unregister_code(key);
 | 
			
		||||
} 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	// uint16_t macro_kc = (keycode == ONESHOT ? DYN_REC_STOP : keycode);
 | 
			
		||||
	if (!process_record_dynamic_macro(keycode, record)) {
 | 
			
		||||
		switch(keycode) {
 | 
			
		||||
		  case DYN_REC_START1:
 | 
			
		||||
		  case DYN_REC_START2:
 | 
			
		||||
    // uint16_t macro_kc = (keycode == ONESHOT ? DYN_REC_STOP : keycode);
 | 
			
		||||
    if (!process_record_dynamic_macro(keycode, record)) {
 | 
			
		||||
        switch(keycode) {
 | 
			
		||||
          case DYN_REC_START1:
 | 
			
		||||
          case DYN_REC_START2:
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
              PLAY_SONG(tone_dyn_macro_rec);
 | 
			
		||||
#endif
 | 
			
		||||
		      break;
 | 
			
		||||
		  case DYN_REC_STOP:
 | 
			
		||||
              break;
 | 
			
		||||
          case DYN_REC_STOP:
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
              PLAY_SONG(tone_dyn_macro_stop);
 | 
			
		||||
#endif
 | 
			
		||||
		      break;
 | 
			
		||||
		}
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	switch (keycode) {
 | 
			
		||||
		case ONESHOT:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				layer_on(_ONESHOT);
 | 
			
		||||
				set_oneshot_layer(_ONESHOT, ONESHOT_START);
 | 
			
		||||
				clear_oneshot_layer_state(ONESHOT_PRESSED);
 | 
			
		||||
              break;
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
        case ONESHOT:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_ONESHOT);
 | 
			
		||||
                set_oneshot_layer(_ONESHOT, ONESHOT_START);
 | 
			
		||||
                clear_oneshot_layer_state(ONESHOT_PRESSED);
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
		        PLAY_SONG(tone_oneshot);
 | 
			
		||||
                PLAY_SONG(tone_oneshot);
 | 
			
		||||
#endif
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
		case QWERTY:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				if (IS_LAYER_ON(_NUMPAD)) {
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case QWERTY:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                if (IS_LAYER_ON(_NUMPAD)) {
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
					PLAY_SONG(tone_qwerty);
 | 
			
		||||
                    PLAY_SONG(tone_qwerty);
 | 
			
		||||
#endif
 | 
			
		||||
					layer_off(_NUMPAD);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
		case NUMPAD:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				if (!IS_LAYER_ON(_NUMPAD)) {
 | 
			
		||||
                    layer_off(_NUMPAD);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case NUMPAD:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                if (!IS_LAYER_ON(_NUMPAD)) {
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
					PLAY_SONG(tone_numpad);
 | 
			
		||||
                    PLAY_SONG(tone_numpad);
 | 
			
		||||
#endif
 | 
			
		||||
					layer_on(_NUMPAD);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
		case RAISE:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				layer_on(_RAISE);
 | 
			
		||||
				update_tri_layer(_RAISE, _LOWER, _FUNCTN);
 | 
			
		||||
			} else {
 | 
			
		||||
				layer_off(_RAISE);
 | 
			
		||||
				update_tri_layer(_RAISE, _LOWER, _FUNCTN);
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
		case LOWER:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				layer_on(_LOWER);
 | 
			
		||||
				update_tri_layer(_RAISE, _LOWER, _FUNCTN);
 | 
			
		||||
			} else {
 | 
			
		||||
				layer_off(_LOWER);
 | 
			
		||||
				update_tri_layer(_RAISE, _LOWER, _FUNCTN);
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
		case MEDIA:
 | 
			
		||||
			if (record->event.pressed) {
 | 
			
		||||
				layer_on(_MEDIA);
 | 
			
		||||
			} else {
 | 
			
		||||
				layer_off(_MEDIA);
 | 
			
		||||
			}
 | 
			
		||||
			return false;
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
	return true;
 | 
			
		||||
                    layer_on(_NUMPAD);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case RAISE:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_RAISE);
 | 
			
		||||
                update_tri_layer(_RAISE, _LOWER, _FUNCTN);
 | 
			
		||||
            } else {
 | 
			
		||||
                layer_off(_RAISE);
 | 
			
		||||
                update_tri_layer(_RAISE, _LOWER, _FUNCTN);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case LOWER:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_LOWER);
 | 
			
		||||
                update_tri_layer(_RAISE, _LOWER, _FUNCTN);
 | 
			
		||||
            } else {
 | 
			
		||||
                layer_off(_LOWER);
 | 
			
		||||
                update_tri_layer(_RAISE, _LOWER, _FUNCTN);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case MEDIA:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_MEDIA);
 | 
			
		||||
            } else {
 | 
			
		||||
                layer_off(_MEDIA);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_init_user(void) {
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
	startup_user();
 | 
			
		||||
    startup_user();
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -323,25 +324,25 @@ void matrix_init_user(void) {
 | 
			
		|||
 | 
			
		||||
void startup_user()
 | 
			
		||||
{
 | 
			
		||||
	_delay_ms(20); // gets rid of tick
 | 
			
		||||
	PLAY_SONG(tone_startup);
 | 
			
		||||
    _delay_ms(20); // gets rid of tick
 | 
			
		||||
    PLAY_SONG(tone_startup);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void shutdown_user()
 | 
			
		||||
{
 | 
			
		||||
	PLAY_SONG(tone_goodbye);
 | 
			
		||||
	_delay_ms(150);
 | 
			
		||||
	stop_all_notes();
 | 
			
		||||
    PLAY_SONG(tone_goodbye);
 | 
			
		||||
    _delay_ms(150);
 | 
			
		||||
    stop_all_notes();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void music_on_user(void)
 | 
			
		||||
{
 | 
			
		||||
	music_scale_user();
 | 
			
		||||
    music_scale_user();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void music_scale_user(void)
 | 
			
		||||
{
 | 
			
		||||
	PLAY_SONG(music_scale);
 | 
			
		||||
    PLAY_SONG(music_scale);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "backlight.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
 | 
			
		||||
// this is the style you want to emulate.
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -132,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  {_______, _______, _______, _______, _______, _______, _______, _______,     KC_PGDN, KC_MPRV, KC_VOLD, KC_MPLY}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* Numpad Layer 
 | 
			
		||||
/* Numpad Layer
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | ESC  |      |      |  (   |   )  |      |      |   7  |   8  |   9  |   +  | Bksp |
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -138,14 +139,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
	    return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_I), UP(KC_LSFT), END );
 | 
			
		||||
    case _CUS5: // Enter your email here
 | 
			
		||||
	    return MACRODOWN( TYPE(KC_F),
 | 
			
		||||
        DOWN(KC_LSFT), TYPE(KC_2), UP(KC_LSFT), 
 | 
			
		||||
        DOWN(KC_LSFT), TYPE(KC_2), UP(KC_LSFT),
 | 
			
		||||
        TYPE(KC_G), TYPE(KC_M), TYPE(KC_A), TYPE(KC_I), TYPE(KC_L), TYPE(KC_DOT), TYPE(KC_C), TYPE(KC_O), TYPE(KC_M), END );
 | 
			
		||||
    case _CUT: //cut macro
 | 
			
		||||
	    return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_X), UP(KC_LCTL), END );
 | 
			
		||||
    case _COPY: // copy macro
 | 
			
		||||
	    return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_C), UP(KC_LCTL), END );
 | 
			
		||||
    case _PASTE: // paste macro
 | 
			
		||||
	    return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_V), UP(KC_LCTL), END ); 
 | 
			
		||||
	    return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_V), UP(KC_LCTL), END );
 | 
			
		||||
    };
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "keymap_steno.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 | 
			
		||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@
 | 
			
		|||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "action_code.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,7 @@
 | 
			
		|||
 | 
			
		||||
/* modified by Gun Pinyo */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,6 +67,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef STENO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,6 +67,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef STENO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
 | 
			
		||||
// this is the style you want to emulate.
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
// #include "dynamic_macro.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -85,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  KC_LSFT,       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, LT_RAI(KC_MINS),
 | 
			
		||||
  KC_ESC,        KC_CAPS, KC_LGUI, KC_LALT, LOWER,   KC_SPC,  KC_SPC,  RAISE, KC_RALT, TG_NUMLAY, KC_APP,  KC_DEL
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* Colemak
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | Tab  |   Q  |   W  |   F  |   P  |   G  |   J  |   L  |   U  |   Y  |   ;  | Bksp |
 | 
			
		||||
| 
						 | 
				
			
			@ -103,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  KC_LSFT,   KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, LT_RAI(KC_MINS),
 | 
			
		||||
  KC_ESC,    KC_CAPS, KC_LGUI, KC_LALT, LOWER,   KC_SPC,  KC_SPC,  RAISE, KC_RALT, TG_NUMLAY, KC_APP,  KC_DEL
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* Dvorak
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | Tab  |   "  |   ,  |   .  |   P  |   Y  |   F  |   G  |   C  |   R  |   L  | Bksp |
 | 
			
		||||
| 
						 | 
				
			
			@ -121,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z, LT_RAI(KC_MINS),
 | 
			
		||||
  KC_ESC,  KC_CAPS, KC_LGUI, KC_LALT, LOWER,   KC_SPC,  KC_SPC,  RAISE, KC_RALT, TG_NUMLAY, KC_APP,  KC_DEL
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* Lower
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   ~  |  \   |
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,S(KC_NUHS),S(KC_NUBS),KC_LCBR, KC_RCBR, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* Raise
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   *  |  \   |
 | 
			
		||||
| 
						 | 
				
			
			@ -157,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  _______, KC_LEFT, KC_DOWN, KC_RIGHT,KC__MUTE, KC_VOLD, KC_1,    KC_2,    KC_3,    KC_UP, KC_SLSH,   _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, KC_SPC,  KC_0,   _______,  KC_LEFT, KC_DOWN, KC_RIGHT,   KC_NLCK
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* Plover layer (http://opensteno.org)
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |
 | 
			
		||||
| 
						 | 
				
			
			@ -169,14 +170,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * | Exit |      |      |   A  |   O  |             |   E  |   U  |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
[_PLOVER] = LAYOUT_planck_grid(
 | 
			
		||||
  KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1   ,
 | 
			
		||||
  XXXXXXX, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC,
 | 
			
		||||
  XXXXXXX, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
 | 
			
		||||
  EXT_PLV, XXXXXXX, XXXXXXX, KC_C,    KC_V,    XXXXXXX, XXXXXXX, KC_N,    KC_M,    XXXXXXX, XXXXXXX, XXXXXXX
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* FN layer on Esc key
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |   +  |
 | 
			
		||||
| 
						 | 
				
			
			@ -194,7 +195,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,S(KC_NUHS),S(KC_NUBS),KC_LCBR, KC_RCBR, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* Num Layer
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |      |   Q  |  Up  |   4  |      |      |   7  |   8  |   9  |   -  |   +  | Bksp |
 | 
			
		||||
| 
						 | 
				
			
			@ -212,7 +213,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  _______, KC_Z,    KC_X,    KC_C,     KC_V,    XXXXXXX,  KC_P1,  KC_P2,  KC_P3,   KC_PDOT, KC_PSLS,  _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,   KC_P0,  KC_PDOT, _______, _______, KC_NLCK, KC_MPLY
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* Mouse Layer (semi-col)
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | ACCL0| ACCL1| ACCL2|Email |Email2| Home | Wh_Up| WHL_L| M_Up | WHL_R|PASS| Meta |
 | 
			
		||||
| 
						 | 
				
			
			@ -224,14 +225,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |      |      |     BTN1    |      |      |      | Citx |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
[_MOUSECURSOR] = LAYOUT_planck_grid(
 | 
			
		||||
  KC_ACL0, KC_ACL1, KC_ACL2, M_EMAIL,M_EMAIL2, KC_HOME, KC_PGUP, KC_WH_L, KC_MS_U, KC_WH_R, P_MPASS, P_META,
 | 
			
		||||
  _______, XXXXXXX, XXXXXXX, XXXXXXX, O_RTQ6H, KC_END , KC_PGDN, KC_MS_L, KC_MS_D, KC_MS_R, _______, O_DAYRN,
 | 
			
		||||
  _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_BTN2, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, P_CITRIX, O_AUTODC
 | 
			
		||||
),
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* Adjust (Lower + Raise)
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | Reset|RGB TG|RGB ST|RGBH -|RGBH +|RGBS -|RGBS +|RGBV -|RGBV +|      |      |  Del |
 | 
			
		||||
| 
						 | 
				
			
			@ -249,7 +250,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  _______, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  MI_ON,   MI_OFF,  _______, BL_DEC, BL_INC, BL_STEP, BL_TOGG,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, _______, _______, CK_RST, CK_DOWN, CK_UP, CK_TOGG
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -392,7 +393,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        bootloader_jump();
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;      
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,11 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
  #include "backlight.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. 
 | 
			
		||||
//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users.
 | 
			
		||||
//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck.
 | 
			
		||||
 | 
			
		||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
// Configuration options
 | 
			
		||||
#define PREVENT_STUCK_MODIFIERS
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 | 
			
		||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,8 +12,9 @@
 | 
			
		|||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */ 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
extern keymap_config_t keymap_config;
 | 
			
		||||
| 
						 | 
				
			
			@ -145,4 +146,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
  #include "backlight.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +1,18 @@
 | 
			
		|||
/*
 | 
			
		||||
 * A keyboard layout for the gridded planck.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2017 Luke Silva
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU General Public License
 | 
			
		||||
 * as published by the Free Software Foundation; either version 2
 | 
			
		||||
 * of the License, or (at your option) any later version.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program; if not, write to the Free Software
 | 
			
		||||
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 | 
			
		||||
| 
						 | 
				
			
			@ -31,7 +31,7 @@
 | 
			
		|||
 * through either double purpose modifiers or colemak style rolling for commonly used symbol clusters
 | 
			
		||||
 * Eg: compare colemak 'this' to '(){\n}' on the symbol layer.
 | 
			
		||||
 *
 | 
			
		||||
 * The layout also supports a range of multilingual characters, covering those 
 | 
			
		||||
 * The layout also supports a range of multilingual characters, covering those
 | 
			
		||||
 * needed for French, German, Swedish and likely some other European Languages.
 | 
			
		||||
 * In the future full support for Colemak's multilingual deadkeys may be introduced.
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -41,6 +41,7 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 | 
			
		||||
#define _______ KC_TRNS
 | 
			
		||||
| 
						 | 
				
			
			@ -61,10 +62,10 @@
 | 
			
		|||
// Macro ID numbers
 | 
			
		||||
#define M_ALT_HASH 1
 | 
			
		||||
#define M_GR_DASH  2
 | 
			
		||||
#define M_SYM_LPRN 3 
 | 
			
		||||
#define M_NAV_UNDS 4 
 | 
			
		||||
#define M_NUM_RPRN 5 
 | 
			
		||||
#define M_CTRL_DLR 6 
 | 
			
		||||
#define M_SYM_LPRN 3
 | 
			
		||||
#define M_NAV_UNDS 4
 | 
			
		||||
#define M_NUM_RPRN 5
 | 
			
		||||
#define M_CTRL_DLR 6
 | 
			
		||||
#define M_LCBR_ENT 7
 | 
			
		||||
#define M_PLOVER   8
 | 
			
		||||
#define M_EXT_PLV  9
 | 
			
		||||
| 
						 | 
				
			
			@ -76,7 +77,7 @@
 | 
			
		|||
#define M_CATCH    15
 | 
			
		||||
 | 
			
		||||
// Macro keys
 | 
			
		||||
#define ALT_HASH MACROTAP(M_ALT_HASH)   // tap for #, hold for Alt 
 | 
			
		||||
#define ALT_HASH MACROTAP(M_ALT_HASH)   // tap for #, hold for Alt
 | 
			
		||||
#define GR_DASH  MACROTAP(M_GR_DASH)    // tap for -, hold for GR layer            a-class-name
 | 
			
		||||
#define SYM_LPRN MACROTAP(M_SYM_LPRN)   // tap for (, hold for symbols layer       if()
 | 
			
		||||
#define NAV_UNDS MACROTAP(M_NAV_UNDS)   // tap for _, hold for navigation layer    snake_case_variable
 | 
			
		||||
| 
						 | 
				
			
			@ -123,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
/* QWERTY
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
 | 
			
		||||
| 
						 | 
				
			
			@ -155,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |      | Sym  |  _   |Space | NUM  |  X2  |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
[_SYM] = {
 | 
			
		||||
  {KC_TAB,  KC_GRV,  KC_AT,   KC_SLSH, KC_ASTR, KC_CIRC, KC_PERC, KC_COLN, KC_PLUS, KC_MINS, KC_DEL,  KC_BSPC},
 | 
			
		||||
  {FUNCTION,KC_LBRC, KC_SCLN, KC_RCBR, KC_LPRN, KC_DQT,  KC_QUOT, KC_RPRN, LCBR_ENT,KC_EXLM, KC_RBRC, KC_BSLS},
 | 
			
		||||
| 
						 | 
				
			
			@ -175,7 +176,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |  GR  | SYM  |  _   |Space | NUM  |  0   |  .   |  f   |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
[_NUM] = {
 | 
			
		||||
  {KC_TAB,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},
 | 
			
		||||
  {KC_BSPC, KC_X,    S(KC_D), S(KC_E), S(KC_F), KC_PLUS, KC_MINS, KC_4,    KC_5,    KC_6,    KC_0,    KC_ENT },
 | 
			
		||||
| 
						 | 
				
			
			@ -195,7 +196,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
[_GR] = {
 | 
			
		||||
  {_______,  UC(0xE4),UC(0xE5), _______,UC(0xA2), UC(0x20AC),_______,UC(0xEB),UC(0xEA),UC(0xFC),UC(0xF9), _______},
 | 
			
		||||
  {_______,  UC(0xE2),UC(0xE0),UC(0xDF), _______, _______,   _______,UC(0xE8),UC(0xE9),UC(0xEF),UC(0xF6), _______},
 | 
			
		||||
| 
						 | 
				
			
			@ -223,7 +224,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |      |      |      |      |      |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
[_ADJ] = {
 | 
			
		||||
  {KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12 },
 | 
			
		||||
  {XXXXXXX, XXXXXXX, KC_PSCR, KC_ESC,  KC_VOLU, KC_MPLY, KC_MPRV, QWERTY,  COLEMAK, PLOVER,  XXXXXXX, XXXXXXX},
 | 
			
		||||
| 
						 | 
				
			
			@ -243,7 +244,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |      |      |      |      |      |  _   |Space | ACL0 | ACL1 | ACL2 |      |TGLNAV|
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
[_NAV] = {
 | 
			
		||||
  {XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN2, KC_BTN1, XXXXXXX, KC_ACL0, KC_HOME, KC_PGDN, KC_PGUP, KC_END,  KC_BSPC},
 | 
			
		||||
  {XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, KC_ACL1, KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT,KC_ENT },
 | 
			
		||||
| 
						 | 
				
			
			@ -312,16 +313,16 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
        layer_and(0);
 | 
			
		||||
        layer_on(_PLOVER);
 | 
			
		||||
        default_layer_set(_PLOVER);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        // Starts plover
 | 
			
		||||
        return MACRO(I(10), D(E), D(R), D(F), D(V), D(I), D(K), U(E), U(R), U(F), U(V), U(I), U(K), END);
 | 
			
		||||
      }
 | 
			
		||||
      break;    
 | 
			
		||||
      break;
 | 
			
		||||
    case M_EXT_PLV:
 | 
			
		||||
      if (!record->event.pressed) {
 | 
			
		||||
        layer_off(_PLOVER);
 | 
			
		||||
        default_layer_set(_COLEMAK);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        //Pauses plover
 | 
			
		||||
        return MACRO(I(10), D(E), D(R), D(F), D(V), D(Y), D(U), U(E), U(R), U(F), U(V), U(Y), U(U), END);
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 | 
			
		||||
enum planck_layers {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
#include "backlight.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
// This is MJT's bastardization of the planck and minivan defaults
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
// This is MJT's bastardization of the planck and minivan defaults
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,7 @@
 | 
			
		|||
// this fork for updates as I probably won't bother jack with my pull requests frequently.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 | 
			
		||||
#define _QWERTY 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
 | 
			
		||||
// this is the style you want to emulate.
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -170,7 +171,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
[_FUNCTION] = { 
 | 
			
		||||
[_FUNCTION] = {
 | 
			
		||||
  {KC_ESC , _______, KC_MPRV, KC_MPLY, KC_MNXT, _______,_______,_______, KC_KP_7, KC_KP_8, KC_KP_9,KC_BSPC},
 | 
			
		||||
  {_______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, KC_PPLS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS},
 | 
			
		||||
  {KC_CALC, _______, _______, _______, _______, _______, _______, KC_DLR, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENT},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
#include "planck.h"
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
#include "backlight.h"
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -21,7 +22,7 @@ The special character layer and the navigation & number block layer are designed
 | 
			
		|||
*/
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
/* 
 | 
			
		||||
/*
 | 
			
		||||
,-----------------------------------------------------------------------------------.
 | 
			
		||||
| Esc  |   X  |   V  |   L  |   C  |   W  |   K  |   H  |   G  |   F  |   Q  | Bksp |
 | 
			
		||||
|------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
| 
						 | 
				
			
			@ -34,17 +35,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
[0] = {
 | 
			
		||||
	{ KC_ESC,        DE_X,    DE_V,    DE_L,  DE_C,  DE_W,   DE_K,   DE_H,  DE_G,    DE_F,     DE_Q,     KC_BSPC      },
 | 
			
		||||
	{ KC_ENT,        DE_U,    DE_I,    DE_A,  DE_E,  DE_O,   DE_S,   DE_N,  DE_R,    DE_T,     DE_D,     DE_Y         },
 | 
			
		||||
	{ KC_LSFT,       DE_UE,   DE_OE,   DE_AE, DE_P,  DE_Z,   DE_B,   DE_M,  DE_COMM, DE_DOT,   DE_J,     KC_LSFT      },
 | 
			
		||||
	{ KC_LCTL ,      KC_RGUI, KC_LALT, MO(2), MO(1), KC_SPC, KC_SPC, MO(1), MO(2),   KC_RALT,  KC_BTN2,  KC_RCTL      }
 | 
			
		||||
    { KC_ESC,        DE_X,    DE_V,    DE_L,  DE_C,  DE_W,   DE_K,   DE_H,  DE_G,    DE_F,     DE_Q,     KC_BSPC      },
 | 
			
		||||
    { KC_ENT,        DE_U,    DE_I,    DE_A,  DE_E,  DE_O,   DE_S,   DE_N,  DE_R,    DE_T,     DE_D,     DE_Y         },
 | 
			
		||||
    { KC_LSFT,       DE_UE,   DE_OE,   DE_AE, DE_P,  DE_Z,   DE_B,   DE_M,  DE_COMM, DE_DOT,   DE_J,     KC_LSFT      },
 | 
			
		||||
    { KC_LCTL ,      KC_RGUI, KC_LALT, MO(2), MO(1), KC_SPC, KC_SPC, MO(1), MO(2),   KC_RALT,  KC_BTN2,  KC_RCTL      }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* M1 
 | 
			
		||||
/* M1
 | 
			
		||||
 ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 |  Esc |      |   _  |   [  |   ]  |   ^  |   !  |   <  |   >  |   =  |   &  |  ß   |
 | 
			
		||||
 |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 |  Tab |   \  |   /  |   {  |   }  |   *  |   ?  |   (  |   )  |   -  |   :  |  @   | 
 | 
			
		||||
 |  Tab |   \  |   /  |   {  |   }  |   *  |   ?  |   (  |   )  |   -  |   :  |  @   |
 | 
			
		||||
 |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 | Shift|   #  |   $  |   |  |   ~  |   `  |   +  |   %  |   "  |   '  |   ;  |Shift |
 | 
			
		||||
 |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
| 
						 | 
				
			
			@ -52,10 +53,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[1] = {
 | 
			
		||||
	{ _______, _______, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL,  DE_AMPR, DE_SS   },
 | 
			
		||||
	{ KC_TAB,  DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST,  DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, DE_AT   },
 | 
			
		||||
	{ _______, DE_HASH, DE_DLR,  DE_PIPE, DE_TILD, DE_ACUT, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
 | 
			
		||||
	{ _______, _______, _______, MO(3),   _______, _______, _______, _______, MO(3),   _______, _______, _______ }
 | 
			
		||||
    { _______, _______, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL,  DE_AMPR, DE_SS   },
 | 
			
		||||
    { KC_TAB,  DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST,  DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, DE_AT   },
 | 
			
		||||
    { _______, DE_HASH, DE_DLR,  DE_PIPE, DE_TILD, DE_ACUT, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
 | 
			
		||||
    { _______, _______, _______, MO(3),   _______, _______, _______, _______, MO(3),   _______, _______, _______ }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* M2 Navigation & Number Blocks
 | 
			
		||||
| 
						 | 
				
			
			@ -71,10 +72,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
* `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[2] = {
 | 
			
		||||
	{ XXXXXXX, KC_PGUP, KC_BSPC, KC_UP,   KC_DEL,  KC_PGDN, XXXXXXX, DE_7,    DE_8,  DE_9,    XXXXXXX, KC_INS  },
 | 
			
		||||
	{ KC_TAB,  KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,  XXXXXXX, DE_4,    DE_5,  DE_6,    DE_DOT,  KC_ENT  },
 | 
			
		||||
	{ _______, XXXXXXX, KC_TAB,  XXXXXXX, KC_ENT,  XXXXXXX, DE_0,    DE_1,    DE_2,  DE_3,    DE_COMM, _______ },
 | 
			
		||||
	{ _______, _______, _______, _______, MO(3), _______, _______, MO(3), _______,  _______, _______, _______ }
 | 
			
		||||
    { XXXXXXX, KC_PGUP, KC_BSPC, KC_UP,   KC_DEL,  KC_PGDN, XXXXXXX, DE_7,    DE_8,  DE_9,    XXXXXXX, KC_INS  },
 | 
			
		||||
    { KC_TAB,  KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,  XXXXXXX, DE_4,    DE_5,  DE_6,    DE_DOT,  KC_ENT  },
 | 
			
		||||
    { _______, XXXXXXX, KC_TAB,  XXXXXXX, KC_ENT,  XXXXXXX, DE_0,    DE_1,    DE_2,  DE_3,    DE_COMM, _______ },
 | 
			
		||||
    { _______, _______, _______, _______, MO(3), _______, _______, MO(3), _______,  _______, _______, _______ }
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* M3 Function & Media Keys
 | 
			
		||||
| 
						 | 
				
			
			@ -89,10 +90,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
* `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[3] = {
 | 
			
		||||
	{ XXXXXXX, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, KC_F7, KC_F8,    KC_F9,   KC_F12,  XXXXXXX },
 | 
			
		||||
	{ KC_TAB,  XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, DE_SQ3,  KC_F4, KC_F5,    KC_F6,   KC_F11,  KC_ENT  },
 | 
			
		||||
	{ _______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, DE_SQ2,  KC_F1, KC_F2,    KC_F3,   KC_F10,  _______ },
 | 
			
		||||
	{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
 | 
			
		||||
    { XXXXXXX, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, KC_F7, KC_F8,    KC_F9,   KC_F12,  XXXXXXX },
 | 
			
		||||
    { KC_TAB,  XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, DE_SQ3,  KC_F4, KC_F5,    KC_F6,   KC_F11,  KC_ENT  },
 | 
			
		||||
    { _______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, DE_SQ2,  KC_F1, KC_F2,    KC_F3,   KC_F10,  _______ },
 | 
			
		||||
    { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
 | 
			
		||||
},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -102,19 +103,19 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
	// MACRODOWN only works in this function
 | 
			
		||||
	switch (id) {
 | 
			
		||||
	case 0:
 | 
			
		||||
		if (record->event.pressed) {
 | 
			
		||||
			register_code(KC_RSFT);
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id) {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
			backlight_step();
 | 
			
		||||
            backlight_step();
 | 
			
		||||
#endif
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			unregister_code(KC_RSFT);
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	return MACRO_NONE;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "backlight.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@ A layout based on the
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "nqn-keys-on-quertz-de-latin1.h"
 | 
			
		||||
#include "nqn-basic-layout.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
//Keymap I created to suit my working style
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -23,10 +24,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
[_QWERTY] = {
 | 
			
		||||
	{KC_ESC,  KC_Q,   KC_W,    KC_E,    KC_R,  KC_T,   KC_Y,   KC_U,  KC_I,    KC_O,    KC_P,    KC_BSPC},
 | 
			
		||||
	{KC_TAB,  KC_A,   KC_S,    KC_D,    KC_F,  KC_G,   KC_H,   KC_J,  KC_K,    KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
	{KC_LSFT, KC_Z,   KC_X,    KC_C,    KC_V,  KC_B,   KC_N,   KC_M,  KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT},
 | 
			
		||||
	{KC_LCTL, KC_ENT, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT}
 | 
			
		||||
    {KC_ESC,  KC_Q,   KC_W,    KC_E,    KC_R,  KC_T,   KC_Y,   KC_U,  KC_I,    KC_O,    KC_P,    KC_BSPC},
 | 
			
		||||
    {KC_TAB,  KC_A,   KC_S,    KC_D,    KC_F,  KC_G,   KC_H,   KC_J,  KC_K,    KC_L,    KC_SCLN, KC_QUOT},
 | 
			
		||||
    {KC_LSFT, KC_Z,   KC_X,    KC_C,    KC_V,  KC_B,   KC_N,   KC_M,  KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT},
 | 
			
		||||
    {KC_LCTL, KC_ENT, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			@ -41,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
*/
 | 
			
		||||
[_LOWER] = {
 | 
			
		||||
	{KC_1,    KC_2,    KC_3,  KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,  KC_0,  KC_MINS, KC_EQL},
 | 
			
		||||
	{KC_GRV,  KC_NO,   KC_NO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO, KC_LBRC, KC_RBRC},
 | 
			
		||||
	{KC_TRNS, KC_NUBS, KC_NO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO, KC_NUHS, KC_TRNS},
 | 
			
		||||
	{KC_TRNS, KC_NO,   KC_NO, KC_NO,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO,   KC_NO}
 | 
			
		||||
    {KC_1,    KC_2,    KC_3,  KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,  KC_0,  KC_MINS, KC_EQL},
 | 
			
		||||
    {KC_GRV,  KC_NO,   KC_NO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO, KC_LBRC, KC_RBRC},
 | 
			
		||||
    {KC_TRNS, KC_NUBS, KC_NO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO, KC_NO, KC_NUHS, KC_TRNS},
 | 
			
		||||
    {KC_TRNS, KC_NO,   KC_NO, KC_NO,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO,   KC_NO}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			@ -60,10 +61,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
[_RAISE] = {
 | 
			
		||||
	{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_CAPS, KC_NO, KC_NO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_PSCR, KC_SLCK, KC_PAUS, KC_NO},
 | 
			
		||||
	{KC_TRNS, KC_NO, KC_NO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_INS,  KC_HOME, KC_PGUP, KC_TRNS},
 | 
			
		||||
	{KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL,  KC_END,  KC_PGDN, KC_NO}
 | 
			
		||||
    {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_CAPS, KC_NO, KC_NO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_PSCR, KC_SLCK, KC_PAUS, KC_NO},
 | 
			
		||||
    {KC_TRNS, KC_NO, KC_NO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_INS,  KC_HOME, KC_PGUP, KC_TRNS},
 | 
			
		||||
    {KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL,  KC_END,  KC_PGDN, KC_NO}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,7 @@
 | 
			
		|||
 * Palleiko Layout
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -98,13 +99,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
    [2] =  ACTION_LAYER_TAP_KEY(2, KC_O),     // FN2 = Momentary symbOl layer on O.
 | 
			
		||||
    [3] =  ACTION_LAYER_TAP_KEY(3, KC_E),     // FN3 = Momentary numbEr layer on E.
 | 
			
		||||
    [4] =  ACTION_LAYER_TAP_KEY(4, KC_U),     // FN4 = Momentary fUnction layer on U.
 | 
			
		||||
    [5] =  ACTION_LAYER_TAP_KEY(5, KC_Q),     // FN5 = Momentary emaQs layer on Q. 
 | 
			
		||||
    [5] =  ACTION_LAYER_TAP_KEY(5, KC_Q),     // FN5 = Momentary emaQs layer on Q.
 | 
			
		||||
    [6] =  ACTION_LAYER_TAP_KEY(6, KC_LCTRL), // FN6 = Momentary MACROS on ??? key.
 | 
			
		||||
    [7] =  ACTION_LAYER_TAP_KEY(7, KC_COMMA), // FN7 = Momentary MOUSE on , key.
 | 
			
		||||
 | 
			
		||||
    // Special Keys
 | 
			
		||||
    [10] =  ACTION_MODS_KEY(KC_LCTRL, KC_LALT), // FN10 = Ctrl + Alt.
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    // Symbols
 | 
			
		||||
    [21] =  ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // FN21 = Question mark.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -602,4 +603,4 @@ void music_scale_user(void)
 | 
			
		|||
	PLAY_SONG(music_scale);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* AUDIO_ENABLE */
 | 
			
		||||
#endif /* AUDIO_ENABLE */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
// This keymap assumes that the keyboard is recognized as JIS keyboard from the OS.
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "version.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
#include "backlight.h"
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,6 +67,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef STENO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
// This is Sean Hunter's keymap file, customized from the canonical layout file for the Quantum project.
 | 
			
		||||
// If you want to add another keyboard, that is the style you want to emulate.
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  {KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,   LOWER,  KC_SPC,  KC_SPC,     RAISE, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* 'Software Dvorak': Designed to look like dvorak in the mapping but depend on software 
 | 
			
		||||
/* 'Software Dvorak': Designed to look like dvorak in the mapping but depend on software
 | 
			
		||||
 * dvorak (ie the OS keymapping changed to dvorak).
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |   "  |   ,  |   .  |   P  |   Y  |   /  |   =  |   F  |   G  |   C  |   R  |   L  |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,7 @@
 | 
			
		|||
// It doesn't have Plover or Dvorak layers because he doesn't use that.
 | 
			
		||||
// It Also doesn't allow for swapping alt with CMD because that only happens in error.
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "keymap_steno.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -253,4 +254,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
//
 | 
			
		||||
//Dropped the Dvorak layer and added two my layer buttons.  Both Raise and lower can be accessed from either side now.
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
  #include "backlight.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -43,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
 * | Shift|   Z  |   X  |   C  |   V  |   B  |   K  |   M  |   ,  |   .  |   /  |Enter |
 | 
			
		||||
 * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
			
		||||
 * | Ctrl | Alt  | GUI  |Func  |Lower |    Space    |Raise | Left | Down |  Up  |Right 
 | 
			
		||||
 * | Ctrl | Alt  | GUI  |Func  |Lower |    Space    |Raise | Left | Down |  Up  |Right
 | 
			
		||||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_CM] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -54,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
},
 | 
			
		||||
/* Raise
 | 
			
		||||
 * ,-----------------------------------------------------------------------------------.
 | 
			
		||||
 * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Bksp 
 | 
			
		||||
 * |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | Bksp
 | 
			
		||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
			
		||||
 * | Esc  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   -  |   =  |   [  |   ]  |  |   |
 | 
			
		||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@
 | 
			
		|||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
 | 
			
		||||
// this is the style you want to emulate.
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
//Author: tong92 <tong92power@gmail.com>
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
  #include "backlight.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
{XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,GO_DEFT,GO_DEFT,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}; 
 | 
			
		||||
};
 | 
			
		||||
//Layout END
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
| 
						 | 
				
			
			@ -143,4 +144,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,7 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
#  include "backlight.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,9 @@
 | 
			
		|||
//
 | 
			
		||||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
	#include "backlight.h"
 | 
			
		||||
    #include "backlight.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
			
		||||
| 
						 | 
				
			
			@ -32,10 +33,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_QWERTY] = {
 | 
			
		||||
	{KC_ESC,		KC_Q,		KC_W,		KC_E,		KC_R,		KC_T,		KC_Y,		KC_U,		KC_I,		KC_O,		KC_P,		KC_BSPC},
 | 
			
		||||
	{CTL_T(KC_TAB),	KC_A,		KC_S,		KC_D,		KC_F,		KC_G,		KC_H,		KC_J,		KC_K,		KC_L,		KC_SCLN,	KC_QUOT},
 | 
			
		||||
	{KC_LSFT,		KC_Z,		KC_X,		KC_C,		KC_V,		KC_B,		KC_N,		KC_M,		KC_COMM,	KC_DOT,		KC_SLSH,	KC_RSFT},
 | 
			
		||||
	{KC_LCTL,		KC_LALT,	KC_LGUI,	KC_LGUI,	MO(_NUM),	KC_SPC,		KC_SPC,		MO(_FUNC),	KC_RGUI,	KC_RALT,	KC_RCTL,	KC_ENT}
 | 
			
		||||
    {KC_ESC,        KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_BSPC},
 | 
			
		||||
    {CTL_T(KC_TAB), KC_A,       KC_S,       KC_D,       KC_F,       KC_G,       KC_H,       KC_J,       KC_K,       KC_L,       KC_SCLN,    KC_QUOT},
 | 
			
		||||
    {KC_LSFT,       KC_Z,       KC_X,       KC_C,       KC_V,       KC_B,       KC_N,       KC_M,       KC_COMM,    KC_DOT,     KC_SLSH,    KC_RSFT},
 | 
			
		||||
    {KC_LCTL,       KC_LALT,    KC_LGUI,    KC_LGUI,    MO(_NUM),   KC_SPC,     KC_SPC,     MO(_FUNC),  KC_RGUI,    KC_RALT,    KC_RCTL,    KC_ENT}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* _NUM
 | 
			
		||||
| 
						 | 
				
			
			@ -50,10 +51,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_NUM] = {
 | 
			
		||||
	{_______,	KC_1,		KC_2,		KC_3,		KC_4,		KC_5,		KC_6,		KC_7,		KC_8,		KC_9,		KC_0,		_______},
 | 
			
		||||
	{KC_LCTL,	KC_GRV,		KC_LBRC,	KC_LCBR,	KC_LPRN,	KC_SLSH,	KC_BSLS,	KC_RPRN,	KC_RCBR,	KC_RBRC,	KC_MINS,	KC_EQL},
 | 
			
		||||
	{_______,	KC_EXLM,	KC_AT,		KC_HASH,	KC_DLR,		KC_PERC,	KC_CIRC,	KC_AMPR,	KC_ASTR,	KC_UNDS,	KC_PLUS,	_______},
 | 
			
		||||
	{_______,	_______,	_______,	_______,	_______,	_______,	_______,	MO(_NAV),	_______,	_______,	_______,	_______}
 | 
			
		||||
    {_______,   KC_1,       KC_2,       KC_3,       KC_4,       KC_5,       KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       _______},
 | 
			
		||||
    {KC_LCTL,   KC_GRV,     KC_LBRC,    KC_LCBR,    KC_LPRN,    KC_SLSH,    KC_BSLS,    KC_RPRN,    KC_RCBR,    KC_RBRC,    KC_MINS,    KC_EQL},
 | 
			
		||||
    {_______,   KC_EXLM,    KC_AT,      KC_HASH,    KC_DLR,     KC_PERC,    KC_CIRC,    KC_AMPR,    KC_ASTR,    KC_UNDS,    KC_PLUS,    _______},
 | 
			
		||||
    {_______,   _______,    _______,    _______,    _______,    _______,    _______,    MO(_NAV),   _______,    _______,    _______,    _______}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
/* _FUNC
 | 
			
		||||
| 
						 | 
				
			
			@ -68,17 +69,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 * `-----------------------------------------------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_FUNC] = {
 | 
			
		||||
	{_______,	KC_1,		KC_2,		KC_3,		KC_4,		KC_5,		KC_6,		KC_7,		KC_8,		KC_9,		KC_0,		_______},
 | 
			
		||||
	{_______,	KC_LSFT,	KC_LCTL,	KC_LALT,	KC_LGUI,	_______,	KC_LEFT,	KC_DOWN,	KC_UP,		KC_RGHT,	KC_DEL,		_______},
 | 
			
		||||
	{_______,	M(0),		_______,	KC_VOLD,	KC_MPRV,	KC_MPLY,	KC_MUTE,	KC_MNXT,	KC_VOLU,	_______,	_______,	_______},
 | 
			
		||||
	{_______,	_______,	_______,	_______,	MO(_NAV),	_______,	_______,	_______,	_______,	_______,	_______,	_______}
 | 
			
		||||
    {_______,   KC_1,       KC_2,       KC_3,       KC_4,       KC_5,       KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       _______},
 | 
			
		||||
    {_______,   KC_LSFT,    KC_LCTL,    KC_LALT,    KC_LGUI,    _______,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_DEL,     _______},
 | 
			
		||||
    {_______,   M(0),       _______,    KC_VOLD,    KC_MPRV,    KC_MPLY,    KC_MUTE,    KC_MNXT,    KC_VOLU,    _______,    _______,    _______},
 | 
			
		||||
    {_______,   _______,    _______,    _______,    MO(_NAV),   _______,    _______,    _______,    _______,    _______,    _______,    _______}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
[_NAV] = {
 | 
			
		||||
	{KC_MS_ACCEL2,	KC_FN1,		KC_FN2,		KC_FN3,		KC_FN4,		XXXXXXX,	XXXXXXX,		KC_WH_D,		KC_WH_U,	XXXXXXX,		XXXXXXX,	XXXXXXX},
 | 
			
		||||
	{KC_MS_ACCEL1,	KC_MS_BTN4,	KC_MS_BTN3,	KC_MS_BTN2,	KC_MS_BTN1,	XXXXXXX,	KC_MS_LEFT,		KC_MS_DOWN,		KC_MS_UP,	KC_MS_RIGHT,	XXXXXXX,	XXXXXXX},
 | 
			
		||||
	{KC_MS_ACCEL0,	KC_FN9,		KC_FN10,	KC_FN11,	KC_FN12,	XXXXXXX,	XXXXXXX,		XXXXXXX,		XXXXXXX,	XXXXXXX,		XXXXXXX,	XXXXXXX},
 | 
			
		||||
	{XXXXXXX,		XXXXXXX,	XXXXXXX,	XXXXXXX,	XXXXXXX,	XXXXXXX,	XXXXXXX,		XXXXXXX,		XXXXXXX,	XXXXXXX,		XXXXXXX,	XXXXXXX}
 | 
			
		||||
    {KC_MS_ACCEL2,  KC_FN1,     KC_FN2,     KC_FN3,     KC_FN4,     XXXXXXX,    XXXXXXX,        KC_WH_D,        KC_WH_U,    XXXXXXX,        XXXXXXX,    XXXXXXX},
 | 
			
		||||
    {KC_MS_ACCEL1,  KC_MS_BTN4, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX,    KC_MS_LEFT,     KC_MS_DOWN,     KC_MS_UP,   KC_MS_RIGHT,    XXXXXXX,    XXXXXXX},
 | 
			
		||||
    {KC_MS_ACCEL0,  KC_FN9,     KC_FN10,    KC_FN11,    KC_FN12,    XXXXXXX,    XXXXXXX,        XXXXXXX,        XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX},
 | 
			
		||||
    {XXXXXXX,       XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,        XXXXXXX,        XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX}
 | 
			
		||||
},
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -89,18 +90,18 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
	// MACRODOWN only works in this function
 | 
			
		||||
			switch(id) {
 | 
			
		||||
				case 0:
 | 
			
		||||
					if (record->event.pressed) {
 | 
			
		||||
						register_code(KC_RSFT);
 | 
			
		||||
						#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
							backlight_step();
 | 
			
		||||
						#endif
 | 
			
		||||
					} else {
 | 
			
		||||
						unregister_code(KC_RSFT);
 | 
			
		||||
					}
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		return MACRO_NONE;
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
            switch(id) {
 | 
			
		||||
                case 0:
 | 
			
		||||
                    if (record->event.pressed) {
 | 
			
		||||
                        register_code(KC_RSFT);
 | 
			
		||||
                        #ifdef BACKLIGHT_ENABLE
 | 
			
		||||
                            backlight_step();
 | 
			
		||||
                        #endif
 | 
			
		||||
                    } else {
 | 
			
		||||
                        unregister_code(KC_RSFT);
 | 
			
		||||
                    }
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#ifdef BACKLIGHT_ENABLE
 | 
			
		||||
  #include "backlight.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
/*enum function_id {
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
};*/
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -83,6 +84,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
 | 
			
		||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
			
		||||
  switch (id) {
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
// Zach Nielsen     Custom Planck Keyboard layout
 | 
			
		||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#define PLANCK_YES                  // This is the Planck
 | 
			
		||||
#include "zach_common_functions.c"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 | 
			
		||||
#include "planck.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -434,7 +435,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			if (timer_elapsed(start) > 100) 
 | 
			
		||||
			if (timer_elapsed(start) > 100)
 | 
			
		||||
			{
 | 
			
		||||
				return MACRO( U(LSHIFT), END);
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue