1 #include QMK_KEYBOARD_H
2 #include "keymap_german.h"
4 // for intellisense, has to be commented for building
6 #include "..\..\..\..\quantum\keymap_extras\keymap_german.h"
7 #include "..\..\..\..\tmk_core\common\keycode.h"
10 /* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
11 It has "üäöß" as it is optimized for a mix of German & English.
12 My favourite features are the placement of the special characters often used for programming right on the home row
13 and the number & navigation block combo, so you never have to move your hands from their home position.
15 Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
18 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
21 * ,-----------------------------------------------------------------------------------.
22 * | ß | J | D | U | A | X | P | H | L | M | W | Q |
23 * |------+------+------+------+------+-------------+------+------+------+------+------|
24 * | M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Enter
25 * |------+------+------+------+------+------|------+------+------+------+------+------|
26 * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
27 * |------+------+------+------+------+------+------+------+------+------+------+------|
28 * | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
29 * `-----------------------------------------------------------------------------------'
31 [0] = LAYOUT_planck_grid(
32 DE_SS
, DE_J
, DE_D
, DE_U
, DE_A
, DE_X
, DE_P
, DE_H
, DE_L
, DE_M
, DE_W
, DE_Q
,
33 // 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) ,
34 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
) ,
35 KC_LSFT
, DE_F
, DE_V
, DE_UE
, DE_AE
, DE_OE
, DE_Y
, DE_Z
, DE_COMM
, DE_DOT
, DE_K
, KC_LSFT
,
36 KC_LCTL
, KC_LGUI
, KC_LALT
, MO(4), MO(2), KC_SPC
, KC_SPC
, MO(2), MO(4), KC_RALT
, KC_ESC
, KC_RCTL
39 /* M1 Special Characters
40 * very ergonomic placement for coding
41 * ,-----------------------------------------------------------------------------------.
42 * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
43 * |------+------+------+------+------+-------------+------+------+------+------+------|
44 * | M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| //hold for M1, tap for Enter
45 * |------+------+------+------+------+------|------+------+------+------+------+------|
46 * | Shift| # | ~ | | | $ | € | + | % | " | ' | ; |Shift |
47 * |------+------+------+------+------+------+------+------+------+------+------+------|
48 * | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
49 * `-----------------------------------------------------------------------------------'
51 [1] = LAYOUT_planck_grid(
52 DE_RING
, DE_AT
, DE_UNDS
, DE_LBRC
, DE_RBRC
, DE_CIRC
, DE_EXLM
, DE_LESS
, DE_MORE
, DE_EQL
, DE_AMPR
, DE_ACUT
,
53 _______
, DE_BSLS
, DE_SLSH
, DE_LCBR
, DE_RCBR
, DE_ASTR
, DE_QST
, DE_LPRN
, DE_RPRN
, DE_MINS
, DE_COLN
, _______
,
54 _______
, DE_HASH
, DE_TILD
, DE_PIPE
, DE_DLR
, DE_EURO
, DE_PLUS
, DE_PERC
, DE_DQOT
, DE_QUOT
, DE_SCLN
, _______
,
55 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
58 /* M2 Navigation & Number Blocks
59 * very easy to get used to & intuituve placement
60 * ,-----------------------------------------------------------------------------------.
61 * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
62 * |------+------+------+------+------+-------------+------+------+------+------+------|
63 * | Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
64 * |------+------+------+------+------+------|------+------+------+------+------+------|
65 * | Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
66 * |------+------+------+------+------+------+------+------+------+------+------+------|
67 * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
68 * `-----------------------------------------------------------------------------------'
70 [2] = LAYOUT_planck_grid(
71 XXXXXXX
, KC_PGUP
, KC_BSPC
, KC_UP
, KC_DEL
, KC_PGDN
, XXXXXXX
, DE_7
, DE_8
, DE_9
, XXXXXXX
, KC_INS
,
72 KC_TAB
, KC_HOME
, KC_LEFT
, KC_DOWN
, KC_RGHT
, KC_END
, XXXXXXX
, DE_4
, DE_5
, DE_6
, DE_DOT
, KC_ENT
,
73 _______
, XXXXXXX
, KC_TAB
, XXXXXXX
, KC_ENT
, XXXXXXX
, DE_0
, DE_1
, DE_2
, DE_3
, DE_COMM
, _______
,
74 _______
, _______
, _______
, MO(3), _______
, _______
, _______
, _______
, MO(3), _______
, _______
, _______
77 /* M3 Switched Navigation & Number Blocks for one handed use
78 * accessed by sliding from M2 to M3 with thumb
79 * ,-----------------------------------------------------------------------------------.
80 * | Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
81 * |------+------+------+------+------+-------------+------+------+------+------+------|
82 * | Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
83 * |------+------+------+------+------+------|------+------+------+------+------+------|
84 * | Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
85 * |------+------+------+------+------+------+------+------+------+------+------+------|
86 * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
87 * `-----------------------------------------------------------------------------------'
90 [3] = LAYOUT_planck_grid(
91 KC_INS
, XXXXXXX
, DE_7
, DE_8
, DE_9
, XXXXXXX
, KC_PGUP
, KC_BSPC
, KC_UP
, KC_DEL
, KC_PGDN
, XXXXXXX
,
92 _______
, XXXXXXX
, DE_4
, DE_5
, DE_6
, DE_DOT
, KC_HOME
, KC_LEFT
, KC_DOWN
, KC_RGHT
, KC_END
, _______
,
93 _______
, DE_0
, DE_1
, DE_2
, DE_3
, DE_COMM
, XXXXXXX
, KC_TAB
, XXXXXXX
, KC_ENT
, XXXXXXX
, _______
,
94 _______
, _______
, _______
, _______
, XXXXXXX
, _______
, _______
, XXXXXXX
, _______
, _______
, _______
, _______
98 /* M4 Function & Media Keys
99 * ,-----------------------------------------------------------------------------------.
100 * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
101 * |------+------+------+------+------+-------------+------+------+------+------+------|
102 * | Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
103 * |------+------+------+------+------+------|------+------+------+------+------+------|
104 * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
105 * |------+------+------+------+------+------+------+------+------+------+------+------|
106 * | Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl |
107 * `-----------------------------------------------------------------------------------'
109 [4] = LAYOUT_planck_grid(
110 XXXXXXX
, XXXXXXX
, KC_PSCR
, KC_SLCK
, KC_PAUS
, XXXXXXX
, XXXXXXX
, KC_F7
, KC_F8
, KC_F9
, KC_F12
, XXXXXXX
,
111 KC_TAB
, XXXXXXX
, KC_MUTE
, KC_VOLD
, KC_VOLU
, XXXXXXX
, DE_SQ3
, KC_F4
, KC_F5
, KC_F6
, KC_F11
, KC_ENT
,
112 _______
, XXXXXXX
, KC_MPRV
, KC_MPLY
, KC_MNXT
, XXXXXXX
, DE_SQ2
, KC_F1
, KC_F2
, KC_F3
, KC_F10
, _______
,
113 _______
, _______
, _______
, _______
, MO(5), _______
, _______
, MO(5), _______
, _______
, _______
, _______
117 /* M5 Switched Function & Media Keys|
118 * accessed by sliding from M4 to M5 with thumb
119 * ,-----------------------------------------------------------------------------------.
120 * | | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
121 * |------+------+------+------+------+-------------+------+------+------+------+------|
122 * | Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
123 * |------+------+------+------+------+------|------+------+------+------+------+------|
124 * | Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
125 * |------+------+------+------+------+------+------+------+------+------+------+------|
126 * | Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl |
127 * `-----------------------------------------------------------------------------------'
129 [5] = LAYOUT_planck_grid(
130 XXXXXXX
, XXXXXXX
, KC_F7
, KC_F8
, KC_F9
, KC_F12
, XXXXXXX
, KC_PSCR
, KC_SLCK
, KC_PAUS
, XXXXXXX
, XXXXXXX
,
131 _______
, DE_SQ3
, KC_F4
, KC_F5
, KC_F6
, KC_F11
, XXXXXXX
, KC_MUTE
, KC_VOLD
, KC_VOLU
, XXXXXXX
, _______
,
132 _______
, DE_SQ2
, KC_F1
, KC_F2
, KC_F3
, KC_F10
, XXXXXXX
, KC_MPRV
, KC_MPLY
, KC_MNXT
, XXXXXXX
, _______
,
133 _______
, _______
, _______
, XXXXXXX
, _______
, _______
, _______
, _______
, XXXXXXX
, _______
, _______
, _______
137 const macro_t
*action_get_macro(keyrecord_t
*record
, uint8_t id
, uint8_t opt
)
139 // MACRODOWN only works in this function
142 if (record
->event
.pressed
) {
143 register_code(KC_RSFT
);
144 #ifdef BACKLIGHT_ENABLE
149 unregister_code(KC_RSFT
);