AMJ40 Refactor (#11854)
* update keyboard source files - add license headers (attributed to original keyboard submitter) - #pragma once include guards - file template matching - readme update and template matching * set sensible default keyboard settings - enable Bootmagic Lite and Mouse Keys - disable Console and Command - remove default keymap's rules.mk file * remove unnecessary files from default keymap * refactor default keymap * add additional layouts/keymaps * update keyboard readme - add images and bootloader instructions - reformat link list * convert tabs to spaces in default keymap
This commit is contained in:
		
							parent
							
								
									e768fb83bd
								
							
						
					
					
						commit
						fa740f8129
					
				
					 13 changed files with 587 additions and 244 deletions
				
			
		| 
						 | 
				
			
			@ -1 +1,17 @@
 | 
			
		|||
/* Copyright 2017 Fabian Topfstedt
 | 
			
		||||
 *
 | 
			
		||||
 * 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, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "amj40.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,26 +1,52 @@
 | 
			
		|||
#ifndef AMJ40_H
 | 
			
		||||
#define AMJ40_H
 | 
			
		||||
/* Copyright 2017 Fabian Topfstedt
 | 
			
		||||
 * Copyright 2021 James Young (@noroadsleft)
 | 
			
		||||
 *
 | 
			
		||||
 * 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, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
// readability  
 | 
			
		||||
#define XXX KC_NO
 | 
			
		||||
 | 
			
		||||
/* AMJ40 ver2.0 layout1 配列一
 | 
			
		||||
 * ,-----------------------------------------------------------.
 | 
			
		||||
 * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B |
 | 
			
		||||
 * |-----------------------------------------------------------|
 | 
			
		||||
 * | 10   | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1B    |
 | 
			
		||||
 * |-----------------------------------------------------------|
 | 
			
		||||
 * | 20     | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |  2A | 2B |
 | 
			
		||||
 * |-----------------------------------------------------------|
 | 
			
		||||
 * | 30  | 31 | 32  |   34      |  35         | 39  | 3A | 3B  |
 | 
			
		||||
 * `-----------------------------------------------------------'
 | 
			
		||||
/* AMJ40 ver2.0 staggered layouts
 | 
			
		||||
 * ,-----------------------------------------------.
 | 
			
		||||
 * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
 | 
			
		||||
 * |-----------------------------------------------|
 | 
			
		||||
 * |10  |11 |12 |13 |14 |15 |16 |17 |18 |19 |1b    |
 | 
			
		||||
 * |-----------------------------------------------|
 | 
			
		||||
 * |20    |22 |23 |24 |25 |26 |27 |28 |29 |2a  |2b |
 | 
			
		||||
 * |-----------------------------------------------|
 | 
			
		||||
 * |30  |31 |32  |   34   |35        |39  |3a |3b  | Layout 1 Bottom Row
 | 
			
		||||
 * `-----------------------------------------------'
 | 
			
		||||
 * ,-----------------------------------------------.
 | 
			
		||||
 * |30  |31 |32 |           35           |3a  |3b  | Layout 2
 | 
			
		||||
 * `-----------------------------------------------'
 | 
			
		||||
 * ,-----------------------------------------------.
 | 
			
		||||
 * |30   |31 |32   |   34   |    35    |39 |3a |3b | Layout 3
 | 
			
		||||
 * `-----------------------------------------------'
 | 
			
		||||
 * ,-----------------------------------------------.
 | 
			
		||||
 * |30  |31 |32  |           35           |3a |3b  | Layout 4
 | 
			
		||||
 * `-----------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// a.k.a. Layout 1 or Layout 3 (matrix is the same for both)
 | 
			
		||||
#define LAYOUT( \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
 | 
			
		||||
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,      k1b,  \
 | 
			
		||||
    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,  \
 | 
			
		||||
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,      k1b, \
 | 
			
		||||
    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
 | 
			
		||||
    k30, k31, k32,      k34, k35,                k39, k3a, k3b  \
 | 
			
		||||
) { \
 | 
			
		||||
    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \
 | 
			
		||||
| 
						 | 
				
			
			@ -29,10 +55,55 @@
 | 
			
		|||
    {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// a.k.a. Layout 2 or Layout 4 (matrix is the same for both)
 | 
			
		||||
#define LAYOUT_625u_space( \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
 | 
			
		||||
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,      k1b, \
 | 
			
		||||
    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
 | 
			
		||||
    k30, k31, k32,             k35,                   k3a, k3b  \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
 | 
			
		||||
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b }, \
 | 
			
		||||
    { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
 | 
			
		||||
    { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, XXX, k3a, k3b } \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* AMJ40 ver2.0 ortholinear layouts
 | 
			
		||||
 * ,-----------------------------------------------.
 | 
			
		||||
 * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
 | 
			
		||||
 * |-----------------------------------------------|
 | 
			
		||||
 * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b |
 | 
			
		||||
 * |-----------------------------------------------|
 | 
			
		||||
 * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |
 | 
			
		||||
 * |-----------------------------------------------|
 | 
			
		||||
 * |30 |31 |32 |33 |34 |    35    |38  |39 |3a |3b | 2.75u Spacebar
 | 
			
		||||
 * `-----------------------------------------------'
 | 
			
		||||
 * ,-----------------------------------------------.
 | 
			
		||||
 * |30 |31 |32 |          35           |39 |3a |3b | 6u Spacebar
 | 
			
		||||
 * `-----------------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// equivalent to LAYOUT_all
 | 
			
		||||
#define LAYOUT_ortho_275u_space( \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
 | 
			
		||||
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
 | 
			
		||||
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
 | 
			
		||||
    k30, k31, k32, k33, k34,     k35,      k38,  k39, k3a, k3b  \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
 | 
			
		||||
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
 | 
			
		||||
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
 | 
			
		||||
    { k30, k31, k32, k33, k34, k35, XXX, XXX, k38, k39, k3a, k3b }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_init_user(void);
 | 
			
		||||
void matrix_scan_user(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#define LAYOUT_ortho_600u_space( \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
 | 
			
		||||
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
 | 
			
		||||
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
 | 
			
		||||
    k30, k31, k32,             k35,              k39, k3a, k3b  \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
 | 
			
		||||
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
 | 
			
		||||
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
 | 
			
		||||
    { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, k39, k3a, k3b }  \
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,8 +15,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/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef CONFIG_H
 | 
			
		||||
#define CONFIG_H
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -87,5 +86,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
//#define NO_ACTION_ONESHOT
 | 
			
		||||
//#define NO_ACTION_MACRO
 | 
			
		||||
//#define NO_ACTION_FUNCTION
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,208 @@
 | 
			
		|||
{
 | 
			
		||||
  "keyboard_name": "AMJ40", 
 | 
			
		||||
  "url": "", 
 | 
			
		||||
  "maintainer": "qmk", 
 | 
			
		||||
  "bootloader": "", 
 | 
			
		||||
  "width": 12, 
 | 
			
		||||
  "height": 4, 
 | 
			
		||||
  "layouts": {
 | 
			
		||||
    "LAYOUT": {
 | 
			
		||||
      "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2, "w":1.25}, {"x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3, "w":2.25}, {"x":5.75, "y":3, "w":2.75}, {"x":8.5, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3, "w":1.25}]
 | 
			
		||||
    "keyboard_name": "AMJ40",
 | 
			
		||||
    "url": "",
 | 
			
		||||
    "maintainer": "qmk",
 | 
			
		||||
    "width": 12,
 | 
			
		||||
    "height": 4,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x":0, "y":0},
 | 
			
		||||
                {"x":1, "y":0},
 | 
			
		||||
                {"x":2, "y":0},
 | 
			
		||||
                {"x":3, "y":0},
 | 
			
		||||
                {"x":4, "y":0},
 | 
			
		||||
                {"x":5, "y":0},
 | 
			
		||||
                {"x":6, "y":0},
 | 
			
		||||
                {"x":7, "y":0},
 | 
			
		||||
                {"x":8, "y":0},
 | 
			
		||||
                {"x":9, "y":0},
 | 
			
		||||
                {"x":10, "y":0},
 | 
			
		||||
                {"x":11, "y":0},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":1, "w":1.25},
 | 
			
		||||
                {"x":1.25, "y":1},
 | 
			
		||||
                {"x":2.25, "y":1},
 | 
			
		||||
                {"x":3.25, "y":1},
 | 
			
		||||
                {"x":4.25, "y":1},
 | 
			
		||||
                {"x":5.25, "y":1},
 | 
			
		||||
                {"x":6.25, "y":1},
 | 
			
		||||
                {"x":7.25, "y":1},
 | 
			
		||||
                {"x":8.25, "y":1},
 | 
			
		||||
                {"x":9.25, "y":1},
 | 
			
		||||
                {"x":10.25, "y":1, "w":1.75},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":2, "w":1.75},
 | 
			
		||||
                {"x":1.75, "y":2},
 | 
			
		||||
                {"x":2.75, "y":2},
 | 
			
		||||
                {"x":3.75, "y":2},
 | 
			
		||||
                {"x":4.75, "y":2},
 | 
			
		||||
                {"x":5.75, "y":2},
 | 
			
		||||
                {"x":6.75, "y":2},
 | 
			
		||||
                {"x":7.75, "y":2},
 | 
			
		||||
                {"x":8.75, "y":2},
 | 
			
		||||
                {"x":9.75, "y":2, "w":1.25},
 | 
			
		||||
                {"x":11, "y":2},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":3, "w":1.25},
 | 
			
		||||
                {"x":1.25, "y":3},
 | 
			
		||||
                {"x":2.25, "y":3, "w":1.25},
 | 
			
		||||
                {"x":3.5, "y":3, "w":2.25},
 | 
			
		||||
                {"x":5.75, "y":3, "w":2.75},
 | 
			
		||||
                {"x":8.5, "y":3, "w":1.25},
 | 
			
		||||
                {"x":9.75, "y":3},
 | 
			
		||||
                {"x":10.75, "y":3, "w":1.25}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_625u_space": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x":0, "y":0},
 | 
			
		||||
                {"x":1, "y":0},
 | 
			
		||||
                {"x":2, "y":0},
 | 
			
		||||
                {"x":3, "y":0},
 | 
			
		||||
                {"x":4, "y":0},
 | 
			
		||||
                {"x":5, "y":0},
 | 
			
		||||
                {"x":6, "y":0},
 | 
			
		||||
                {"x":7, "y":0},
 | 
			
		||||
                {"x":8, "y":0},
 | 
			
		||||
                {"x":9, "y":0},
 | 
			
		||||
                {"x":10, "y":0},
 | 
			
		||||
                {"x":11, "y":0},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":1, "w":1.25},
 | 
			
		||||
                {"x":1.25, "y":1},
 | 
			
		||||
                {"x":2.25, "y":1},
 | 
			
		||||
                {"x":3.25, "y":1},
 | 
			
		||||
                {"x":4.25, "y":1},
 | 
			
		||||
                {"x":5.25, "y":1},
 | 
			
		||||
                {"x":6.25, "y":1},
 | 
			
		||||
                {"x":7.25, "y":1},
 | 
			
		||||
                {"x":8.25, "y":1},
 | 
			
		||||
                {"x":9.25, "y":1},
 | 
			
		||||
                {"x":10.25, "y":1, "w":1.75},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":2, "w":1.75},
 | 
			
		||||
                {"x":1.75, "y":2},
 | 
			
		||||
                {"x":2.75, "y":2},
 | 
			
		||||
                {"x":3.75, "y":2},
 | 
			
		||||
                {"x":4.75, "y":2},
 | 
			
		||||
                {"x":5.75, "y":2},
 | 
			
		||||
                {"x":6.75, "y":2},
 | 
			
		||||
                {"x":7.75, "y":2},
 | 
			
		||||
                {"x":8.75, "y":2},
 | 
			
		||||
                {"x":9.75, "y":2, "w":1.25},
 | 
			
		||||
                {"x":11, "y":2},
 | 
			
		||||
 | 
			
		||||
                {"x":0, "y":3, "w":1.25},
 | 
			
		||||
                {"x":1.25, "y":3},
 | 
			
		||||
                {"x":2.25, "y":3},
 | 
			
		||||
                {"x":3.25, "y":3, "w":6.25},
 | 
			
		||||
                {"x":9.5, "y":3, "w":1.25},
 | 
			
		||||
                {"x":10.75, "y":3, "w":1.25}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_ortho_600u_space": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"label":"K00 (F4,F1)", "x":0, "y":0},
 | 
			
		||||
                {"label":"K01 (F4,F0)", "x":1, "y":0},
 | 
			
		||||
                {"label":"K02 (F4,E6)", "x":2, "y":0},
 | 
			
		||||
                {"label":"K03 (F4,C7)", "x":3, "y":0},
 | 
			
		||||
                {"label":"K04 (F4,C6)", "x":4, "y":0},
 | 
			
		||||
                {"label":"K05 (F4,B0)", "x":5, "y":0},
 | 
			
		||||
                {"label":"K06 (F4,D4)", "x":6, "y":0},
 | 
			
		||||
                {"label":"K07 (F4,B1)", "x":7, "y":0},
 | 
			
		||||
                {"label":"K08 (F4,B7)", "x":8, "y":0},
 | 
			
		||||
                {"label":"K09 (F4,B5)", "x":9, "y":0},
 | 
			
		||||
                {"label":"K0A (F4,B4)", "x":10, "y":0},
 | 
			
		||||
                {"label":"K0B (F4,D7)", "x":11, "y":0},
 | 
			
		||||
 | 
			
		||||
                {"label":"K10 (F5,F1)", "x":0, "y":1},
 | 
			
		||||
                {"label":"K11 (F5,F0)", "x":1, "y":1},
 | 
			
		||||
                {"label":"K12 (F5,E6)", "x":2, "y":1},
 | 
			
		||||
                {"label":"K13 (F5,C7)", "x":3, "y":1},
 | 
			
		||||
                {"label":"K14 (F5,C6)", "x":4, "y":1},
 | 
			
		||||
                {"label":"K15 (F5,B0)", "x":5, "y":1},
 | 
			
		||||
                {"label":"K16 (F5,D4)", "x":6, "y":1},
 | 
			
		||||
                {"label":"K17 (F5,B1)", "x":7, "y":1},
 | 
			
		||||
                {"label":"K18 (F5,B7)", "x":8, "y":1},
 | 
			
		||||
                {"label":"K19 (F5,B5)", "x":9, "y":1},
 | 
			
		||||
                {"label":"K1A (F5,B4)", "x":10, "y":1},
 | 
			
		||||
                {"label":"K1B (F5,D7)", "x":11, "y":1},
 | 
			
		||||
 | 
			
		||||
                {"label":"K20 (F6,F1)", "x":0, "y":2},
 | 
			
		||||
                {"label":"K21 (F6,F0)", "x":1, "y":2},
 | 
			
		||||
                {"label":"K22 (F6,E6)", "x":2, "y":2},
 | 
			
		||||
                {"label":"K23 (F6,C7)", "x":3, "y":2},
 | 
			
		||||
                {"label":"K24 (F6,C6)", "x":4, "y":2},
 | 
			
		||||
                {"label":"K25 (F6,B0)", "x":5, "y":2},
 | 
			
		||||
                {"label":"K26 (F6,D4)", "x":6, "y":2},
 | 
			
		||||
                {"label":"K27 (F6,B1)", "x":7, "y":2},
 | 
			
		||||
                {"label":"K28 (F6,B7)", "x":8, "y":2},
 | 
			
		||||
                {"label":"K29 (F6,B5)", "x":9, "y":2},
 | 
			
		||||
                {"label":"K2A (F6,B4)", "x":10, "y":2},
 | 
			
		||||
                {"label":"K2B (F6,D7)", "x":11, "y":2},
 | 
			
		||||
 | 
			
		||||
                {"label":"K30 (F7,F1)", "x":0, "y":3},
 | 
			
		||||
                {"label":"K31 (F7,F0)", "x":1, "y":3},
 | 
			
		||||
                {"label":"K32 (F7,E6)", "x":2, "y":3},
 | 
			
		||||
                {"label":"K35 (F7,B0)", "x":3, "y":3, "w":6},
 | 
			
		||||
                {"label":"K39 (F7,B5)", "x":9, "y":3},
 | 
			
		||||
                {"label":"K3A (F7,B4)", "x":10, "y":3},
 | 
			
		||||
                {"label":"K3B (F7,D7)", "x":11, "y":3}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_ortho_275u_space": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"label":"K00 (F4,F1)", "x":0, "y":0},
 | 
			
		||||
                {"label":"K01 (F4,F0)", "x":1, "y":0},
 | 
			
		||||
                {"label":"K02 (F4,E6)", "x":2, "y":0},
 | 
			
		||||
                {"label":"K03 (F4,C7)", "x":3, "y":0},
 | 
			
		||||
                {"label":"K04 (F4,C6)", "x":4, "y":0},
 | 
			
		||||
                {"label":"K05 (F4,B0)", "x":5, "y":0},
 | 
			
		||||
                {"label":"K06 (F4,D4)", "x":6, "y":0},
 | 
			
		||||
                {"label":"K07 (F4,B1)", "x":7, "y":0},
 | 
			
		||||
                {"label":"K08 (F4,B7)", "x":8, "y":0},
 | 
			
		||||
                {"label":"K09 (F4,B5)", "x":9, "y":0},
 | 
			
		||||
                {"label":"K0A (F4,B4)", "x":10, "y":0},
 | 
			
		||||
                {"label":"K0B (F4,D7)", "x":11, "y":0},
 | 
			
		||||
 | 
			
		||||
                {"label":"K10 (F5,F1)", "x":0, "y":1},
 | 
			
		||||
                {"label":"K11 (F5,F0)", "x":1, "y":1},
 | 
			
		||||
                {"label":"K12 (F5,E6)", "x":2, "y":1},
 | 
			
		||||
                {"label":"K13 (F5,C7)", "x":3, "y":1},
 | 
			
		||||
                {"label":"K14 (F5,C6)", "x":4, "y":1},
 | 
			
		||||
                {"label":"K15 (F5,B0)", "x":5, "y":1},
 | 
			
		||||
                {"label":"K16 (F5,D4)", "x":6, "y":1},
 | 
			
		||||
                {"label":"K17 (F5,B1)", "x":7, "y":1},
 | 
			
		||||
                {"label":"K18 (F5,B7)", "x":8, "y":1},
 | 
			
		||||
                {"label":"K19 (F5,B5)", "x":9, "y":1},
 | 
			
		||||
                {"label":"K1A (F5,B4)", "x":10, "y":1},
 | 
			
		||||
                {"label":"K1B (F5,D7)", "x":11, "y":1},
 | 
			
		||||
 | 
			
		||||
                {"label":"K20 (F6,F1)", "x":0, "y":2},
 | 
			
		||||
                {"label":"K21 (F6,F0)", "x":1, "y":2},
 | 
			
		||||
                {"label":"K22 (F6,E6)", "x":2, "y":2},
 | 
			
		||||
                {"label":"K23 (F6,C7)", "x":3, "y":2},
 | 
			
		||||
                {"label":"K24 (F6,C6)", "x":4, "y":2},
 | 
			
		||||
                {"label":"K25 (F6,B0)", "x":5, "y":2},
 | 
			
		||||
                {"label":"K26 (F6,D4)", "x":6, "y":2},
 | 
			
		||||
                {"label":"K27 (F6,B1)", "x":7, "y":2},
 | 
			
		||||
                {"label":"K28 (F6,B7)", "x":8, "y":2},
 | 
			
		||||
                {"label":"K29 (F6,B5)", "x":9, "y":2},
 | 
			
		||||
                {"label":"K2A (F6,B4)", "x":10, "y":2},
 | 
			
		||||
                {"label":"K2B (F6,D7)", "x":11, "y":2},
 | 
			
		||||
 | 
			
		||||
                {"label":"K30 (F7,F1)", "x":0, "y":3},
 | 
			
		||||
                {"label":"K31 (F7,F0)", "x":1, "y":3},
 | 
			
		||||
                {"label":"K32 (F7,E6)", "x":2, "y":3},
 | 
			
		||||
                {"label":"K33 (F7,C7)", "x":3, "y":3},
 | 
			
		||||
                {"label":"K34 (F7,C6)", "x":4, "y":3},
 | 
			
		||||
                {"label":"K35 (F7,B0)", "x":5, "y":3, "w":2.75},
 | 
			
		||||
                {"label":"K38 (F7,B7)", "x":7.75, "y":3, "w":1.25},
 | 
			
		||||
                {"label":"K39 (F7,B5)", "x":9, "y":3},
 | 
			
		||||
                {"label":"K3A (F7,B4)", "x":10, "y":3},
 | 
			
		||||
                {"label":"K3B (F7,D7)", "x":11, "y":3}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,42 +0,0 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
# adjust for cpu 
 | 
			
		||||
# -j 16 gave best result on a hyperthreaded quad core core i7
 | 
			
		||||
 | 
			
		||||
LIMIT=10
 | 
			
		||||
THREADS="-j 16"
 | 
			
		||||
KMAP=iso_split_rshift
 | 
			
		||||
 | 
			
		||||
echo "We need sudo later"
 | 
			
		||||
sudo ls 2>&1 /dev/null
 | 
			
		||||
 | 
			
		||||
function wait_bootloader {
 | 
			
		||||
	echo "Waiting for Bootloader..."
 | 
			
		||||
	local STARTTIME=$(date +"%s")
 | 
			
		||||
	local REMIND=0
 | 
			
		||||
    local EXEC=dfu-programmer
 | 
			
		||||
    local TARGET=atmega32u4
 | 
			
		||||
	while true
 | 
			
		||||
	do
 | 
			
		||||
		sudo $EXEC $TARGET get > /dev/null 2>&1
 | 
			
		||||
		[ $? -eq 0 ] && break
 | 
			
		||||
		ENDTIME=$(date +"%s")
 | 
			
		||||
		DURATION=$(($ENDTIME-$STARTTIME))
 | 
			
		||||
		if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ]
 | 
			
		||||
		then 
 | 
			
		||||
			echo "Did you forget to press the reset button?"
 | 
			
		||||
			REMIND=1
 | 
			
		||||
		fi
 | 
			
		||||
        sleep 1
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
make clean
 | 
			
		||||
make KEYMAP=${KMAP} ${THREADS}
 | 
			
		||||
if [[ $? -eq 0 ]]
 | 
			
		||||
then
 | 
			
		||||
    echo "please trigger flashing!"
 | 
			
		||||
    wait_bootloader
 | 
			
		||||
    sudo make KEYMAP=${KMAP} dfu ${THREADS}
 | 
			
		||||
else
 | 
			
		||||
    echo "make failed"
 | 
			
		||||
    exit 77
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			@ -1,135 +1,143 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
/* Copyright 2017 Fabian Topfstedt
 | 
			
		||||
 *
 | 
			
		||||
 * 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, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
			
		||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
 | 
			
		||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
 | 
			
		||||
// entirely and just use numbers.
 | 
			
		||||
#define _QWERTY 0
 | 
			
		||||
#define _LOWER 1
 | 
			
		||||
#define _RAISE 2
 | 
			
		||||
#define _ADJUST 3
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
  QWERTY = SAFE_RANGE,
 | 
			
		||||
  LOWER,
 | 
			
		||||
  RAISE,
 | 
			
		||||
  ADJUST,
 | 
			
		||||
enum layer_names {
 | 
			
		||||
    _QWERTY,
 | 
			
		||||
    _LOWER,
 | 
			
		||||
    _RAISE,
 | 
			
		||||
    _ADJUST,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
    QWERTY = SAFE_RANGE,
 | 
			
		||||
    LOWER,
 | 
			
		||||
    RAISE,
 | 
			
		||||
    ADJUST,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define LT1_SPC LT(_LOWER,KC_SPC)
 | 
			
		||||
#define LT2_SPC LT(_RAISE,KC_SPC)
 | 
			
		||||
#define LT3_LGU LT(_ADJUST,KC_LGUI)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
        /* Default Layer
 | 
			
		||||
     * ,-----------------------------------------------------------.
 | 
			
		||||
     * | Esc|  Q |  W |  E |  R |  T |  Y |  U |  I |  O |  P | BS |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * | Tab |  A |  S |  D |  F |  G |  H |  J |  K |  L | Ent    |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * | LSft   |  Z |  X |  C |  V |  B |  N |  M |  ,  |  . | /? |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * | LCtl | LGui| LAlt|  spc fn0  |  spc fn1    |fn2|RAlt|RCtl |
 | 
			
		||||
     * `-----------------------------------------------------------'
 | 
			
		||||
    /* Default Layer
 | 
			
		||||
     * ,-----------------------------------------------.
 | 
			
		||||
     * |Esc| Q | W | E | R | T | Y | U | I | O | P |BS |
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |Tab | A | S | D | F | G | H | J | K | L |Enter |
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * | LSft | Z | X | C | V | B | N | M | , | .  |/? |
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |LCtl|GUI|LAlt|Spc/Fn0 | Spc/Fn1  |Fn2 |Alt|RCtl|
 | 
			
		||||
     * `-----------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_QWERTY] = LAYOUT( \
 | 
			
		||||
        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_ENT,\
 | 
			
		||||
        KC_LSFT, KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH,\
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,          LT(_LOWER, KC_SPC),LT(_RAISE, KC_SPC),LT(_ADJUST, KC_LGUI), KC_RALT, KC_RCTL \
 | 
			
		||||
		),
 | 
			
		||||
    [_QWERTY] = LAYOUT(
 | 
			
		||||
        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_ENT,
 | 
			
		||||
        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,                   LT1_SPC, LT2_SPC,                   LT3_LGU, KC_RALT, KC_RCTL
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* Function Layer 1 HHKB style
 | 
			
		||||
     * ,-----------------------------------------------------------.
 | 
			
		||||
     * |   ~  |   !   |  @  | # | $ | % | ^ | & | * | ( | ) | Bkspc|
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |   F1   | F2 | F3 | F4 | F5 |  F6 | _ | + | [ | ] |  Pipe  |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |    F7    | F8 | F9 |  F10  |  F11 |  F12 | End|PgDn| ↓ |     |    |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |     |    |     |           |             | Stop| App|     |
 | 
			
		||||
     * `-----------------------------------------------------------'
 | 
			
		||||
     * ,-----------------------------------------------.
 | 
			
		||||
     * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |BS |
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * | F1 |F2 |F3 |F4 |F5 |F6 | _ | + | { | } | Pipe |
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |  F7  |F8 |F9 |F10|F11|F12| ~ | | |BL±|BL+ |BL-|
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |    |   |    |        |   Left   |Down|Up |Rght|
 | 
			
		||||
     * `-----------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_LOWER] = LAYOUT( \
 | 
			
		||||
        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
 | 
			
		||||
		KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
 | 
			
		||||
		KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,S(KC_NUHS),S(KC_NUBS),BL_TOGG, BL_INC, BL_DEC, \
 | 
			
		||||
		_______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
 | 
			
		||||
		),
 | 
			
		||||
	
 | 
			
		||||
	/* Function Layer 1 HHKB style
 | 
			
		||||
     * ,-----------------------------------------------------------.
 | 
			
		||||
     * |Caps|    |MSel| ⏮ | ⏯ | ⏭ |PSCR|SkLk|Paus|  ↑ | Ins| Del|
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |      | 🔇 | ⏏ |    |  * |  / |Hone|PgUp|  ← |  → |       |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |        | 🔉 | 🔊 |    |  + |  - | End|PgDn| ↓ |     |    |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |     |    |     |           |             | Stop| App|     |
 | 
			
		||||
     * `-----------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_RAISE] = LAYOUT( \
 | 
			
		||||
        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \
 | 
			
		||||
		KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS, \
 | 
			
		||||
		KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, _______, _______, KC_DEL, \
 | 
			
		||||
		_______, KC_TRNS, _______, KC_TRNS, KC_TRNS, _______, _______, RGB_TOG \
 | 
			
		||||
		),
 | 
			
		||||
	
 | 
			
		||||
	/* Function Layer 1 HHKB style
 | 
			
		||||
     * ,-----------------------------------------------------------.
 | 
			
		||||
     * |Caps|    |MSel| ⏮ | ⏯ | ⏭ |PSCR|SkLk|Paus|  ↑ | Ins| Del|
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |      | 🔇 | ⏏ |    |  * |  / |Hone|PgUp|  ← |  → |       |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |        | 🔉 | 🔊 |    |  + |  - | End|PgDn| ↓ |     |    |
 | 
			
		||||
     * |-----------------------------------------------------------|
 | 
			
		||||
     * |     |    |     |           |             | Stop| App|     |
 | 
			
		||||
     * `-----------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_ADJUST] = LAYOUT( \
 | 
			
		||||
        _______, RESET,   _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
 | 
			
		||||
		_______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, _______, _______, _______,  _______,  \
 | 
			
		||||
		_______, _______, _______, RGB_TOG,  RGB_MOD,  RGB_HUI,  RGB_HUD,  RGB_SAI,  RGB_SAD,  RGB_VAI,  RGB_VAD, \
 | 
			
		||||
		KC_SYSTEM_SLEEP, _______, _______, _______, _______, _______, _______, _______ \
 | 
			
		||||
		),
 | 
			
		||||
    [_LOWER] = LAYOUT(
 | 
			
		||||
        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_BSPC,
 | 
			
		||||
        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS,    KC_LCBR,    KC_RCBR,          KC_PIPE,
 | 
			
		||||
        KC_F7,            KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  S(KC_NUHS), S(KC_NUBS), BL_TOGG, BL_INC,  BL_DEC,
 | 
			
		||||
        _______, _______, _______,                   _______, KC_LEFT,                         KC_DOWN, KC_UP,   KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    /* Function Layer 1 HHKB style
 | 
			
		||||
     * ,-----------------------------------------------.
 | 
			
		||||
     * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |BS |
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * | F1 |F2 |F3 |F4 |F5 |F6 | - | = | [ | ] |  \   |
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |  F7  |F8 |F9 |F10|F11|F12| # | \ |   |    |Del|
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |    |   |    |        |          |    |   |RGB±|
 | 
			
		||||
     * `-----------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_RAISE] = LAYOUT(
 | 
			
		||||
        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
 | 
			
		||||
        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC,          KC_BSLS,
 | 
			
		||||
        KC_F7,            KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, _______, _______, KC_DEL,
 | 
			
		||||
        _______, _______, _______,                   _______, _______,                   _______, _______, RGB_TOG
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    /* Function Layer 1 HHKB style
 | 
			
		||||
     * ,-----------------------------------------------.
 | 
			
		||||
     * |   |RST|   |   |   |   |   |   |   |   |   |Del|
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |    |   |   |Au1|Au0|AGN|AGS|   |   |   |      |
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |      |   |   |RTg|RMd|RH+|RH-|RS+|RS-|RV+ |RV-|
 | 
			
		||||
     * |-----------------------------------------------|
 | 
			
		||||
     * |SLP |   |    |        |          |    |   |RTg |
 | 
			
		||||
     * `-----------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [_ADJUST] = LAYOUT(
 | 
			
		||||
        _______, RESET,   _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
 | 
			
		||||
        _______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, _______, _______, _______,          _______,
 | 
			
		||||
        _______,          _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD,
 | 
			
		||||
        KC_SLEP, _______, _______,                   _______, _______,                   _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
 
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
    
 | 
			
		||||
    case LOWER:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        layer_on(_LOWER);
 | 
			
		||||
        update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
      } else {
 | 
			
		||||
        layer_off(_LOWER);
 | 
			
		||||
        update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
    case RAISE:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        layer_on(_RAISE);
 | 
			
		||||
        update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
      } else {
 | 
			
		||||
        layer_off(_RAISE);
 | 
			
		||||
        update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
    case ADJUST:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        layer_on(_ADJUST);
 | 
			
		||||
      } else {
 | 
			
		||||
        layer_off(_ADJUST);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
    switch (keycode) {
 | 
			
		||||
        case LOWER:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_LOWER);
 | 
			
		||||
                update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
            } else {
 | 
			
		||||
                layer_off(_LOWER);
 | 
			
		||||
                update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case RAISE:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_RAISE);
 | 
			
		||||
                update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
            } else {
 | 
			
		||||
                layer_off(_RAISE);
 | 
			
		||||
                update_tri_layer(_LOWER, _RAISE, _ADJUST);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
        case ADJUST:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                layer_on(_ADJUST);
 | 
			
		||||
            } else {
 | 
			
		||||
                layer_off(_ADJUST);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,20 +0,0 @@
 | 
			
		|||
# Build Options
 | 
			
		||||
#   change to "no" to disable the options, or define them in the Makefile in
 | 
			
		||||
#   the appropriate keymap folder that will get included automatically
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = no  # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE  = no  # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE  = yes # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE   = no  # Console for debug
 | 
			
		||||
COMMAND_ENABLE   = yes # Commands for debug and configuration
 | 
			
		||||
NKRO_ENABLE      = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality
 | 
			
		||||
MIDI_ENABLE      = no  # MIDI controls
 | 
			
		||||
AUDIO_ENABLE     = no  # Audio output on port C6
 | 
			
		||||
UNICODE_ENABLE   = no  # Unicode
 | 
			
		||||
BLUETOOTH_ENABLE = no  # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
			
		||||
RGBLIGHT_ENABLE  = yes  # Enable WS2812 RGB underlight.
 | 
			
		||||
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +0,0 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
git checkout amj60      # gets you on branch amj60
 | 
			
		||||
git fetch origin        # gets you up to date with origin
 | 
			
		||||
git merge origin/master
 | 
			
		||||
							
								
								
									
										41
									
								
								keyboards/amj40/keymaps/default_625u_space/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								keyboards/amj40/keymaps/default_625u_space/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
/* Copyright 2021 James Young (@noroadsleft)
 | 
			
		||||
 *
 | 
			
		||||
 * 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, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define LT1_SCL     LT(1, KC_SCLN)
 | 
			
		||||
#define LT2_QUO     LT(2, KC_QUOT)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [0] = LAYOUT_625u_space(
 | 
			
		||||
        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_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,             KC_ENT,
 | 
			
		||||
        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             LT1_SCL, LT2_QUO
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_625u_space(
 | 
			
		||||
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL,
 | 
			
		||||
        KC_TAB,  KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______,          KC_INS,
 | 
			
		||||
        _______,          KC_SCLN, KC_QUOT, KC_COLN, KC_DQUO, KC_TILD, KC_LABK, KC_RABK, KC_LBRC, KC_RBRC, _______,
 | 
			
		||||
        _______, _______, _______,                            _______,                            _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
    [2] = LAYOUT_625u_space(
 | 
			
		||||
        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
 | 
			
		||||
        RESET,   KC_PWR,  _______, _______, KC_PSCR, KC_PAUS, BL_TOGG, BL_DEC,  BL_INC,  BL_STEP,          _______,
 | 
			
		||||
        KC_UP,            KC_MINS, KC_EQL,  KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LPRN, KC_RPRN, _______,
 | 
			
		||||
        KC_LEFT, KC_DOWN, KC_RGHT,                            _______,                            _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										40
									
								
								keyboards/amj40/keymaps/default_ortho_275u_space/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								keyboards/amj40/keymaps/default_ortho_275u_space/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,40 @@
 | 
			
		|||
/* Copyright 2021 James Young (@noroadsleft)
 | 
			
		||||
 *
 | 
			
		||||
 * 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, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define LT2_SLS     LT(2,KC_SLSH)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [0] = LAYOUT_ortho_275u_space(
 | 
			
		||||
        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_UP,   KC_ENT,
 | 
			
		||||
        KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, MO(1),            KC_SPC,           LT2_SLS, KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_ortho_275u_space(
 | 
			
		||||
        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_QUES, KC_UP,   _______,
 | 
			
		||||
        _______, _______, _______, _______, _______,          _______,          _______, KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [2] = LAYOUT_ortho_275u_space(
 | 
			
		||||
        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,  BL_TOGG, BL_DEC,  BL_INC,  BL_STEP, _______,
 | 
			
		||||
        RESET,   _______, _______, _______, _______,          _______,          _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										38
									
								
								keyboards/amj40/keymaps/default_ortho_600u_space/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								keyboards/amj40/keymaps/default_ortho_600u_space/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
/* Copyright 2021 James Young (@noroadsleft)
 | 
			
		||||
 *
 | 
			
		||||
 * 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, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [0] = LAYOUT_ortho_600u_space(
 | 
			
		||||
        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_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_A,    KC_ENT,
 | 
			
		||||
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
 | 
			
		||||
        KC_LCTL, KC_LGUI, MO(1),                     KC_SPC,                             MO(2),   KC_BSLS, KC_B
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_ortho_600u_space(
 | 
			
		||||
        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_BSPC,
 | 
			
		||||
        KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UP,   _______,
 | 
			
		||||
        KC_UNDS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, KC_GRV,  _______, KC_LEFT, KC_DOWN, KC_RGHT,
 | 
			
		||||
        _______, _______, _______,                   _______,                            _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
    [2] = LAYOUT_ortho_600u_space(
 | 
			
		||||
        RESET,   _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC,  BL_INC,  BL_STEP, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______,                   _______,                            _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -1,14 +1,23 @@
 | 
			
		|||
AMJ40
 | 
			
		||||
===
 | 
			
		||||
# AMJ40
 | 
			
		||||
 | 
			
		||||
\
 | 
			
		||||
[PCB photo](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/amj40/DSC_1718-768x512_640)
 | 
			
		||||
 | 
			
		||||
DIY/Assembled compact 40% keyboard.
 | 
			
		||||
 | 
			
		||||
Keyboard Maintainer: QMK Community  
 | 
			
		||||
Hardware Supported: AMJ40 PCB  
 | 
			
		||||
Hardware Availability: https://geekhack.org/index.php?topic=87961.0
 | 
			
		||||
* Keyboard Maintainer: QMK Community
 | 
			
		||||
* Hardware Supported: AMJ40 PCB
 | 
			
		||||
* Hardware Availability: no longer available
 | 
			
		||||
* References: [Flashquark](https://flashquark.com/product/amj40-40-mechanical-keyboard-kit/), [geekhack](https://geekhack.org/index.php?topic=87961.0)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make amj40:default
 | 
			
		||||
 | 
			
		||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make amj40:default:flash
 | 
			
		||||
 | 
			
		||||
To reset the board into bootloader mode, hold the key at the top left of the keyboard while connecting the USB cable (also erases persistent settings).
 | 
			
		||||
 | 
			
		||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,27 +2,21 @@
 | 
			
		|||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
#   Teensy       halfkay
 | 
			
		||||
#   Pro Micro    caterina
 | 
			
		||||
#   Atmel DFU    atmel-dfu
 | 
			
		||||
#   LUFA DFU     lufa-dfu
 | 
			
		||||
#   QMK DFU      qmk-dfu
 | 
			
		||||
#   ATmega32A    bootloadHID
 | 
			
		||||
#   ATmega328P   USBasp
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   comment out to disable the options.
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = no  # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE  = no  # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE  = yes # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE   = yes # Console for debug
 | 
			
		||||
COMMAND_ENABLE   = yes # Commands for debug and configuration
 | 
			
		||||
NKRO_ENABLE      = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
RGBLIGHT_ENABLE  = yes # Enable keyboard underlight functionality
 | 
			
		||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
 | 
			
		||||
MIDI_ENABLE      = no  # MIDI controls
 | 
			
		||||
AUDIO_ENABLE     = no
 | 
			
		||||
UNICODE_ENABLE   = no  # Unicode
 | 
			
		||||
BLUETOOTH_ENABLE = no  # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
			
		||||
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE = yes       # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug
 | 
			
		||||
COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue