aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoschua Gandert <CreamyCookie@users.noreply.github.com>2021-02-10 20:05:20 +0100
committerGitHub <noreply@github.com>2021-02-10 11:05:20 -0800
commit4b2ab84c71d517b718bdf4dde0e60fc71026fac6 (patch)
tree0e50e95ee24b7dc216ccbe2237de346ad8c7f8bd
parent7ef4aba52c40e8e4638f9b948e271ec41baa321a (diff)
downloadqmk_firmware-4b2ab84c71d517b718bdf4dde0e60fc71026fac6.tar.gz
qmk_firmware-4b2ab84c71d517b718bdf4dde0e60fc71026fac6.zip
[Keymap] Added german_gaming keymap for hidtech/bastyl (#11446)
* Added german_gaming keymap for hidtech/bastyl * Apply suggestions from code review * Added missing brace
-rw-r--r--keyboards/hidtech/bastyl/keymaps/german_gaming/keymap.c90
-rw-r--r--keyboards/hidtech/bastyl/keymaps/german_gaming/readme.md24
-rw-r--r--keyboards/hidtech/bastyl/keymaps/german_gaming/rules.mk1
3 files changed, 115 insertions, 0 deletions
diff --git a/keyboards/hidtech/bastyl/keymaps/german_gaming/keymap.c b/keyboards/hidtech/bastyl/keymaps/german_gaming/keymap.c
new file mode 100644
index 000000000..0b986a509
--- /dev/null
+++ b/keyboards/hidtech/bastyl/keymaps/german_gaming/keymap.c
@@ -0,0 +1,90 @@
1/*
2 * Copyright 2021 Joschua Gandert
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18
19#include QMK_KEYBOARD_H
20#include "keymap_german.h"
21
22
23enum layer_names {
24 _BASE,
25 _GAME, /* WASD shifted right once */
26 _LOWER,
27 _RAISE,
28 _ADJUST /* when both LOWER and RAISE pressed */
29};
30
31#define RAISE MO(_RAISE)
32#define LOWER MO(_LOWER)
33
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36 [_BASE] = LAYOUT(
37 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , DE_SS ,
38 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , DE_Z , KC_U , KC_I , KC_O , KC_P , DE_UDIA,
39 KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , DE_ODIA, DE_ADIA,
40 KC_LCTL, DE_Y , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT, DE_MINS, DE_PLUS,
41
42 RAISE, KC_SPC, KC_LCTL, KC_RALT, KC_BSPC, LOWER,
43 KC_ENT, KC_LALT, KC_LGUI, KC_RSFT
44 ),
45
46 [_GAME] = LAYOUT(
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 KC_T , KC_TAB , KC_Q , KC_W , KC_E , KC_R , _______, _______, KC_UP, _______, _______, _______,
49 KC_G , KC_LSFT, KC_A , KC_S , KC_D , KC_F , _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
50 KC_B , KC_LCTL, DE_Y , KC_X , KC_C , KC_V , _______, _______, _______, _______, _______, _______,
51
52 _______, _______, _______, _______, _______, _______,
53 _______, _______, _______, _______
54 ),
55
56 [_LOWER] = LAYOUT(
57 KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL ,
58 _______, DE_HASH, DE_CIRC, KC_PGUP, DE_LABK, _______, _______, KC_P7 , KC_P8 , KC_P9 , KC_PPLS, KC_BSPC ,
59 _______, DE_ACUT, KC_HOME, KC_PGDN, KC_END , KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 , KC_PDOT, _______ ,
60 _______, KC_PLUS, KC_PIPE, KC_UNDS, _______, _______, KC_P0 , KC_P1 , KC_P2 , KC_P3 , KC_PENT, KC_KP_EQUAL,
61
62 _______, KC_RGHT, _______, _______, _______, _______,
63 KC_LEFT, _______, RESET , _______
64 ),
65
66 [_RAISE] = LAYOUT(
67 KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
68 _______, _______, _______, KC_UP , _______, _______, KC_LALT, KC_INS , KC_NLCK , KC_CALC, KC_PSCREEN, KC_MUTE,
69 _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , KC_MSEL, KC_MPRV , KC_MPLY , KC_MNXT, _______ , KC_VOLU,
70 _______, _______, _______, _______, _______, _______, DE_HASH, KC_MYCM , _______ , _______, KC_SLCK , KC_VOLD,
71
72 _______, _______, _______, _______, KC_UP , _______,
73 _______, _______, _______, KC_DOWN
74 ),
75
76 [_ADJUST] = LAYOUT(
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
78 _______, _______, _______, _______, RESET , _______, _______, _______, _______, _______, _______, _______,
79 _______, _______, _______, _______, _______, DF(_GAME), _______, _______, _______, _______, _______, _______,
80 _______, _______, _______, _______, _______, DF(_BASE), _______, _______, _______, _______, _______, _______,
81
82 _______, _______, _______, _______, _______, _______,
83 _______, _______, _______, _______
84 ),
85};
86
87
88layer_state_t layer_state_set_user(layer_state_t state) {
89 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
90}
diff --git a/keyboards/hidtech/bastyl/keymaps/german_gaming/readme.md b/keyboards/hidtech/bastyl/keymaps/german_gaming/readme.md
new file mode 100644
index 000000000..9e6a328bc
--- /dev/null
+++ b/keyboards/hidtech/bastyl/keymaps/german_gaming/readme.md
@@ -0,0 +1,24 @@
1![German Gaming Layout Image](https://i.imgur.com/0y938rG.png)
2
3Despite being less accurate, the columns in the image are shifted up and down to avoid the [Hermann grid illusion](https://en.wikipedia.org/wiki/Grid_illusion).
4
5
6# German Gaming Layout
7
8This layout was build with gaming in mind for a german user. As a result I added a "game" layer that shifts the keys of the left side (below the number row) one to the right, so that <kbd>WASD</kbd> is on the <kbd>ESDF</kbd> keys. The reason this layer was added is that using <kbd>WASD</kbd> is less comfortable with a contoured Dactyl-style keyboard, where each column is adjusted for the respective fingers. <kbd>ESDF</kbd> also has the upside of allowing one to stay in the home row. Note that the rightmost column of the default layer, so <kbd>TGB</kbd>, ends up in the leftmost position.
9
10Of course, one could just be forced to reconfigure every game, but that wouldn't be very user-friendly and likely reduce satisfaction with the layout. When in game mode, the right side of keys also features arrow keys on <kbd>IJKL</kbd>.
11
12
13## Raise and Lower layer
14
15Additionally, via the RAISE layer, it's always possible to access the arrow keys, which are often used in game menues. On the exact same position one can access <kbd>Home</kbd>, <kbd>End</kbd>, <kbd>Page Down</kbd> and <kbd>Page Up</kbd> via the LOWER layer. The left side of the LOWER layer also contains the few characters that would usually have their own key in a traditional german keyboard.
16
17The right side features various media keys in the RAISE layer, and a numpad in the LOWER layer.
18
19
20## Firmware
21
22The keyboard can be put into Reset mode (for flashing a keymap) by pressing <kbd>**LOWER**</kbd> + <kbd>Super</kbd> (also known as Windows key), or by pressing <kbd>**LOWER**</kbd> + <kbd>**RAISE**</kbd> + <kbd>R</kbd>.
23
24`MOUSEKEY_ENABLE` was set to `no` for this keymap, since it wasn't used and the size of the firmware ended up being too large.
diff --git a/keyboards/hidtech/bastyl/keymaps/german_gaming/rules.mk b/keyboards/hidtech/bastyl/keymaps/german_gaming/rules.mk
new file mode 100644
index 000000000..0a5b666e8
--- /dev/null
+++ b/keyboards/hidtech/bastyl/keymaps/german_gaming/rules.mk
@@ -0,0 +1 @@
MOUSEKEY_ENABLE = no