Skip to content

Commit

Permalink
Update German keymap and sendstring LUT (qmk#8437)
Browse files Browse the repository at this point in the history
  • Loading branch information
fauxpark authored and jakobaa committed Jul 7, 2020
1 parent b901464 commit 035df82
Show file tree
Hide file tree
Showing 2 changed files with 147 additions and 92 deletions.
231 changes: 143 additions & 88 deletions quantum/keymap_extras/keymap_german.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,98 +14,153 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef KEYMAP_GERMAN
#define KEYMAP_GERMAN
#pragma once

#include "keymap.h"

// normal characters
#define DE_Z KC_Y
#define DE_Y KC_Z
// clang-format off

#define DE_A KC_A
#define DE_B KC_B
#define DE_C KC_C
#define DE_D KC_D
#define DE_E KC_E
#define DE_F KC_F
#define DE_G KC_G
#define DE_H KC_H
#define DE_I KC_I
#define DE_J KC_J
#define DE_K KC_K
#define DE_L KC_L
#define DE_M KC_M
#define DE_N KC_N
#define DE_O KC_O
#define DE_P KC_P
#define DE_Q KC_Q
#define DE_R KC_R
#define DE_S KC_S
#define DE_T KC_T
#define DE_U KC_U
#define DE_V KC_V
#define DE_W KC_W
#define DE_X KC_X

#define DE_0 KC_0
#define DE_1 KC_1
#define DE_2 KC_2
#define DE_3 KC_3
#define DE_4 KC_4
#define DE_5 KC_5
#define DE_6 KC_6
#define DE_7 KC_7
#define DE_8 KC_8
#define DE_9 KC_9

#define DE_DOT KC_DOT
#define DE_COMM KC_COMM

#define DE_SS KC_MINS
#define DE_AE KC_QUOT
#define DE_UE KC_LBRC
#define DE_OE KC_SCLN

#define DE_CIRC KC_GRAVE // accent circumflex ^ and ring °
#define DE_ACUT KC_EQL // accent acute ´ and grave `
#define DE_PLUS KC_RBRC // + and * and ~
#define DE_HASH KC_BSLS // # and '
#define DE_LESS KC_NUBS // < and > and |
#define DE_MINS KC_SLSH // - and _
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ß │ ´ │       │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │     │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Ü │ + │     │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
* │      │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ # │    │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │    │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │          │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │    │    │    │                        │    │    │    │    │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
// Row 1
#define DE_CIRC KC_GRV // ^ (dead)
#define DE_1 KC_1 // 1
#define DE_2 KC_2 // 2
#define DE_3 KC_3 // 3
#define DE_4 KC_4 // 4
#define DE_5 KC_5 // 5
#define DE_6 KC_6 // 6
#define DE_7 KC_7 // 7
#define DE_8 KC_8 // 8
#define DE_9 KC_9 // 9
#define DE_0 KC_0 // 0
#define DE_SS KC_MINS // ß
#define DE_ACUT KC_EQL // ´ (dead)
// Row 2
#define DE_Q KC_Q // Q
#define DE_W KC_W // W
#define DE_E KC_E // E
#define DE_R KC_R // R
#define DE_T KC_T // T
#define DE_Z KC_Y // Z
#define DE_U KC_U // U
#define DE_I KC_I // I
#define DE_O KC_O // O
#define DE_P KC_P // P
#define DE_UDIA KC_LBRC // Ü
#define DE_PLUS KC_RBRC // +
// Row 3
#define DE_A KC_A // A
#define DE_S KC_S // S
#define DE_D KC_D // D
#define DE_F KC_F // F
#define DE_G KC_G // G
#define DE_H KC_H // H
#define DE_J KC_J // J
#define DE_K KC_K // K
#define DE_L KC_L // L
#define DE_ODIA KC_SCLN // Ö
#define DE_ADIA KC_QUOT // Ä
#define DE_HASH KC_NUHS // #
// Row 4
#define DE_LABK KC_NUBS // <
#define DE_Y KC_Z // Y
#define DE_X KC_X // X
#define DE_C KC_C // C
#define DE_V KC_V // V
#define DE_B KC_B // B
#define DE_N KC_N // N
#define DE_M KC_M // M
#define DE_COMM KC_COMM // ,
#define DE_DOT KC_DOT // .
#define DE_MINS KC_SLSH // -

// shifted characters
#define DE_RING LSFT(DE_CIRC) // °
#define DE_EXLM LSFT(KC_1) // !
#define DE_DQOT LSFT(KC_2) // "
#define DE_PARA LSFT(KC_3) // §
#define DE_DLR LSFT(KC_4) // $
#define DE_PERC LSFT(KC_5) // %
#define DE_AMPR LSFT(KC_6) // &
#define DE_SLSH LSFT(KC_7) // /
#define DE_LPRN LSFT(KC_8) // (
#define DE_RPRN LSFT(KC_9) // )
#define DE_EQL LSFT(KC_0) // =
#define DE_QST LSFT(DE_SS) // ?
#define DE_GRV LSFT(DE_ACUT) // `
#define DE_ASTR LSFT(DE_PLUS) // *
#define DE_QUOT LSFT(DE_HASH) // '
#define DE_MORE LSFT(DE_LESS) // >
#define DE_COLN LSFT(KC_DOT) // :
#define DE_SCLN LSFT(KC_COMM) // ;
#define DE_UNDS LSFT(DE_MINS) // _
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ° │ ! │ " │ § │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │       │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │     │   │   │   │   │   │   │   │   │   │   │   │ * │     │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
* │      │   │   │   │   │   │   │   │   │   │   │   │ ' │    │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │    │ > │   │   │   │   │   │   │   │ ; │ : │ _ │          │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │    │    │    │                        │    │    │    │    │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
// Row 1
#define DE_DEG S(DE_CIRC) // °
#define DE_EXLM S(DE_1) // !
#define DE_DQUO S(DE_2) // "
#define DE_SECT S(DE_3) // §
#define DE_DLR S(DE_4) // $
#define DE_PERC S(DE_5) // %
#define DE_AMPR S(DE_6) // &
#define DE_SLSH S(DE_7) // /
#define DE_LPRN S(DE_8) // (
#define DE_RPRN S(DE_9) // )
#define DE_EQL S(DE_0) // =
#define DE_QUES S(DE_SS) // ?
#define DE_GRV S(DE_ACUT) // ` (dead)
// Row 2
#define DE_ASTR S(DE_PLUS) // *
// Row 3
#define DE_QUOT S(DE_HASH) // '
// Row 4
#define DE_RABK S(DE_LABK) // >
#define DE_SCLN S(DE_COMM) // ;
#define DE_COLN S(DE_DOT) // :
#define DE_UNDS S(DE_MINS) // _

// Alt Gr-ed characters
#define DE_SQ2 ALGR(KC_2) // ²
#define DE_SQ3 ALGR(KC_3) // ³
#define DE_LCBR ALGR(KC_7) // {
#define DE_LBRC ALGR(KC_8) // [
#define DE_RBRC ALGR(KC_9) // ]
#define DE_RCBR ALGR(KC_0) // }
#define DE_BSLS ALGR(DE_SS) // backslash
#define DE_AT ALGR(KC_Q) // @
#define DE_EURO ALGR(KC_E) // €
#define DE_TILD ALGR(DE_PLUS) // ~
#define DE_PIPE ALGR(DE_LESS) // |
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │   │   │ ² │ ³ │   │   │   │ { │ [ │ ] │ } │ \ │   │       │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │     │ @ │   │ € │   │   │   │   │   │   │   │   │ ~ │     │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
* │      │   │   │   │   │   │   │   │   │   │   │   │   │    │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │    │ | │   │   │   │   │   │   │ µ │   │   │   │          │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │    │    │    │                        │    │    │    │    │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
// Row 1
#define DE_SUP2 ALGR(DE_2) // ²
#define DE_SUP3 ALGR(DE_3) // ³
#define DE_LCBR ALGR(DE_7) // {
#define DE_LBRC ALGR(DE_8) // [
#define DE_RBRC ALGR(DE_9) // ]
#define DE_RCBR ALGR(DE_0) // }
#define DE_BSLS ALGR(DE_SS) // (backslash)
// Row 2
#define DE_AT ALGR(DE_Q) // @
#define DE_EURO ALGR(DE_E) // €
#define DE_TILD ALGR(DE_PLUS) // ~
// Row 4
#define DE_PIPE ALGR(DE_LABK) // |
#define DE_MICR ALGR(DE_M) // µ

#endif
// DEPRECATED
#define DE_UE DE_UDIA
#define DE_OE DE_ODIA
#define DE_AE DE_ADIA
#define DE_LESS DE_LABK
#define DE_RING DE_DEG
#define DE_DQOT DE_DQUO
#define DE_PARA DE_SECT
#define DE_QST DE_QUES
#define DE_MORE DE_RABK
#define DE_SQ2 DE_SUP2
#define DE_SQ3 DE_SUP3
8 changes: 4 additions & 4 deletions quantum/keymap_extras/sendstring_german.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = {
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
};

const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
Expand All @@ -60,7 +60,7 @@ const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0),
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
};

const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
Expand All @@ -80,7 +80,7 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
// 0 1 2 3 4 5 6 7
DE_0, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7,
// 8 9 : ; < = > ?
DE_8, DE_9, DE_DOT, DE_COMM, DE_LESS, DE_0, DE_LESS, DE_SS,
DE_8, DE_9, DE_DOT, DE_COMM, DE_LABK, DE_0, DE_LABK, DE_SS,
// @ A B C D E F G
DE_Q, DE_A, DE_B, DE_C, DE_D, DE_E, DE_F, DE_G,
// H I J K L M N O
Expand All @@ -96,5 +96,5 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
// p q r s t u v w
DE_P, DE_Q, DE_R, DE_S, DE_T, DE_U, DE_V, DE_W,
// x y z { | } ~ DEL
DE_X, DE_Y, DE_Z, DE_7, DE_LESS, DE_0, DE_PLUS, KC_DEL
DE_X, DE_Y, DE_Z, DE_7, DE_LABK, DE_0, DE_PLUS, KC_DEL
};

0 comments on commit 035df82

Please sign in to comment.