2 This is the keymap of /u/deepshitgoeshere!
3 Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german.
4 The second layer has all the german umlauts I need and with capital and small letters on the
5 same layer there is no need to press shift+lower.
6 This keymap is made to work with software implemented QWERTZ.
7 The "Gaming" layer is mainly customized for CS:GO.
8 If you have any question about this keymap feel free to shoot me a message on reddit!
11 #include QMK_KEYBOARD_H
12 #include "keymap_german.h"
14 #define LT_SPC LT(4, KC_SPC)
16 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
17 [0] = LAYOUT_planck_grid( /* Colemak
18 * ,-----------------------------------------------------------------------.
19 * | Esc | q | w | f | p | g | j | l | u | y | ; | - |
20 * |-----------------------------------------------------------------------|
21 * | BS | a | r | s | t | d | h | n | e | i | o | ' |
22 * |-----------------------------------------------------------------------|
23 * | SFT | z | x | c | v | b | k | m | , | . | / | Ent |
24 * |-----------------------------------------------------------------------|
25 * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right|
26 * `-----------------------------------------------------------------------'
28 KC_ESC
, KC_Q
, KC_W
, KC_F
, KC_P
, KC_G
, KC_J
, KC_L
, KC_U
, KC_Z
, DE_SCLN
, DE_MINS
,
29 KC_BSPC
, KC_A
, KC_R
, KC_S
, KC_T
, KC_D
, KC_H
, KC_N
, KC_E
, KC_I
, KC_O
, DE_QUOT
,
30 M(0), KC_Y
, KC_X
, KC_C
, KC_V
, KC_B
, KC_K
, KC_M
, DE_COMM
, DE_DOT
, DE_SLSH
, KC_ENT
,
31 KC_LCTL
, KC_LGUI
, KC_TAB
, KC_LALT
, MO(3), LT_SPC
, LT_SPC
, MO(2), KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
33 [1] = LAYOUT_planck_grid( /* Symbols
34 * ,-----------------------------------------------------------------------.
35 * | | | | | | | | | | | : | |
36 * |-----------------------------------------------------------------------|
37 * | | | | | | | | | | | | " |
38 * |-----------------------------------------------------------------------|
39 * | | | | | | | | | < | > | ? | |
40 * |-----------------------------------------------------------------------|
41 * | | | | | | | | | | | |
42 * `-----------------------------------------------------------------------'
44 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, DE_DOT
, KC_TRNS
,
45 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, DE_DQOT
,
46 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, M(1), DE_MORE
, DE_QST
, KC_TRNS
,
47 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
49 [2] = LAYOUT_planck_grid( /* Raise
50 * ,-----------------------------------------------------------------------.
51 * | | Ä | | | | | | | Ü | Ö | |Game |
52 * |-----------------------------------------------------------------------|
53 * | Del | ä | | ß | | | | | ü | ö | |FVol+|
54 * |-----------------------------------------------------------------------|
55 * | | | | | | | | |Stop | Prv | Nxt |FVol-|
56 * |-----------------------------------------------------------------------|
57 * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P |
58 * `-----------------------------------------------------------------------'
60 KC_NO
, S(DE_AE
), KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, S(DE_UE
), S(DE_OE
), KC_NO
, F(4),
61 KC_DEL
, DE_AE
, KC_NO
, DE_SS
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, DE_UE
, DE_OE
, KC_NO
, RALT(KC_F12
),
62 KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_MSTP
, KC_MPRV
, KC_MNXT
, RALT(KC_F11
),
63 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_MUTE
, KC_VOLD
, KC_VOLU
, KC_MPLY
65 [3] = LAYOUT_planck_grid( /* Lower
66 * ,-----------------------------------------------------------------------.
67 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + |
68 * |-----------------------------------------------------------------------|
69 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
70 * |-----------------------------------------------------------------------|
71 * | | | | | | [ | ] | { | } | € | | \ | Ent |
72 * |-----------------------------------------------------------------------|
73 * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End |
74 * `-----------------------------------------------------------------------'
76 DE_TILD
, DE_EXLM
, DE_AT
, DE_HASH
, DE_DLR
, DE_PERC
, DE_CIRC
, DE_AMPR
, DE_ASTR
, DE_LPRN
, DE_RPRN
, DE_PLUS
,
77 DE_GRV
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, DE_EQL
,
78 KC_NO
, KC_NO
, KC_NO
, DE_PIPE
, DE_LBRC
, DE_RBRC
, DE_LCBR
, DE_RCBR
, DE_EURO
, KC_NO
, DE_BSLS
, KC_ENT
,
79 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_HOME
, KC_PGDN
, KC_PGUP
, KC_END
81 [4] = LAYOUT_planck_grid( /* Function
82 * ,-----------------------------------------------------------------------.
83 * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
84 * |-----------------------------------------------------------------------|
85 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
86 * |-----------------------------------------------------------------------|
87 * | | | | | | KP- | KP+ | | | | |Reset|
88 * |-----------------------------------------------------------------------|
89 * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P |
90 * `-----------------------------------------------------------------------'
92 KC_F13
, KC_F14
, KC_F15
, KC_F16
, KC_F17
, KC_F18
, KC_F19
, KC_F20
, KC_F21
, KC_F22
, KC_F23
, KC_F24
,
93 KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
,
94 KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_NO
, KC_PMNS
, KC_PPLS
, KC_NO
, KC_NO
, KC_NO
, RESET
, KC_NO
,
95 KC_NO
, BL_TOGG
, BL_DEC
, BL_INC
, MO(3), KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_MUTE
, KC_VOLD
, KC_VOLU
, KC_MPLY
97 [5] = LAYOUT_planck_grid( /* Gaming
98 * ,-----------------------------------------------------------------------.
99 * | Buy | ESC | q | w | e | r | t | y | u | i | o | p |
100 * |-----------------------------------------------------------------------|
101 * | ENT | BS | a | s | d | f | g | h | j | k | l | ; |
102 * |-----------------------------------------------------------------------|
103 * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / |
104 * |-----------------------------------------------------------------------|
105 * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right|
106 * `-----------------------------------------------------------------------'
108 MO(6), KC_ESC
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Z
, KC_U
, KC_I
, KC_O
, F(4),
109 KC_ENT
, KC_BSPC
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, DE_SCLN
,
110 KC_LCTL
, KC_LSFT
, KC_Y
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, DE_DOT
, KC_UP
, DE_SLSH
,
111 KC_NO
, KC_NO
, KC_TAB
, KC_LALT
, KC_NO
, KC_SPC
, KC_SPC
, LCTL(KC_SPC
), KC_LGUI
, KC_LEFT
, KC_DOWN
, KC_RGHT
113 [6] = LAYOUT_planck_grid( /* Gaming
115 * ,-----------------------------------------------------------------------.
116 * | | | | | | | | | 7 | 8 | 9 | |
117 * |-----------------------------------------------------------------------|
118 * | BS | | | | | | | | 6 | 5 | 4 | End |
119 * |-----------------------------------------------------------------------|
120 * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn |
121 * |-----------------------------------------------------------------------|
122 * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt |
123 * `-----------------------------------------------------------------------'
125 KC_TRNS
, KC_NO
, KC_Q
, KC_W
, KC_F
, KC_P
, KC_G
, KC_J
, KC_P7
, KC_P8
, KC_P9
, KC_NO
,
126 KC_BSPC
, KC_NO
, KC_A
, KC_R
, KC_S
, KC_T
, KC_D
, KC_H
, KC_P4
, KC_P5
, KC_P6
, KC_END
,
127 KC_LCTL
, KC_LSFT
, KC_Y
, KC_X
, KC_C
, KC_V
, KC_B
, KC_K
, KC_P1
, KC_P2
, KC_P3
, KC_PGDN
,
128 KC_NO
, KC_NO
, KC_TAB
, KC_LALT
, KC_NO
, KC_SPC
, KC_SPC
, LCTL(KC_SPC
), KC_NO
, KC_P0
, KC_PDOT
, KC_PENT
132 const uint16_t PROGMEM fn_actions
[] = {
133 [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming
134 [5] = ACTION_MODS_TAP_KEY(KC_LSFT
, KC_CAPS
), //Shift on press, Caps on tap
137 const macro_t
*action_get_macro(keyrecord_t
*record
, uint8_t id
, uint8_t opt
)
141 if (record
->event
.pressed
) {
142 register_code(KC_LSFT
);
146 unregister_code(KC_LSFT
);
150 if (record
->event
.pressed
) {
151 unregister_code(KC_LSFT
);
152 register_code(DE_LESS
);
154 unregister_code(DE_LESS
);