summaryrefslogtreecommitdiffstats
path: root/quantum
diff options
context:
space:
mode:
Diffstat (limited to 'quantum')
-rw-r--r--quantum/keymap_common.h1
-rw-r--r--quantum/keymap_extras/keymap_french_osx.h77
-rw-r--r--quantum/keymap_extras/keymap_german.h60
-rw-r--r--quantum/keymap_extras/keymap_neo2.h44
4 files changed, 182 insertions, 0 deletions
diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h
index e5d4db9ab0..2d8b29c777 100644
--- a/quantum/keymap_common.h
+++ b/quantum/keymap_common.h
@@ -191,6 +191,7 @@ extern const uint16_t fn_actions[];
#define SFT_T(kc) MT(0x2, kc)
#define ALT_T(kc) MT(0x4, kc)
#define GUI_T(kc) MT(0x8, kc)
+#define C_S_T(kc) MT(0x3, kc) // Control + Shift e.g. for gnome-terminal
#define MEH_T(kc) MT(0x7, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl
#define ALL_T(kc) MT(0xF, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/
diff --git a/quantum/keymap_extras/keymap_french_osx.h b/quantum/keymap_extras/keymap_french_osx.h
new file mode 100644
index 0000000000..eb31bfb4d0
--- /dev/null
+++ b/quantum/keymap_extras/keymap_french_osx.h
@@ -0,0 +1,77 @@
+#ifndef KEYMAP_FRENCH_OSX_H
+#define KEYMAP_FRENCH_OSX_H
+
+#include "keymap_common.h"
+
+// Normal characters
+#define FR_AT KC_GRV
+#define FR_AMP KC_1
+#define FR_EACU KC_2
+#define FR_QUOT KC_3
+#define FR_APOS KC_4
+#define FR_LPRN KC_5
+#define FR_SECT KC_6
+#define FR_EGRV KC_7
+#define FR_EXLM KC_8
+#define FR_CCED KC_9
+#define FR_AGRV KC_0
+#define FR_RPRN KC_MINS
+#define FR_MINS KC_EQL
+
+#define FR_A KC_Q
+#define FR_Z KC_W
+#define FR_CIRC KC_LBRC
+#define FR_DLR KC_RBRC
+
+#define FR_Q KC_A
+#define FR_M KC_SCLN
+#define FR_UGRV KC_QUOT
+#define FR_GRV KC_NUHS
+
+#define FR_LESS KC_NUBS
+#define FR_W KC_Z
+#define FR_COMM KC_M
+#define FR_SCLN KC_COMM
+#define FR_COLN KC_DOT
+#define FR_EQL KC_SLSH
+
+// Shifted characters
+#define FR_HASH LSFT(KC_GRV)
+#define FR_1 LSFT(KC_1)
+#define FR_2 LSFT(KC_2)
+#define FR_3 LSFT(KC_3)
+#define FR_4 LSFT(KC_4)
+#define FR_5 LSFT(KC_5)
+#define FR_6 LSFT(KC_6)
+#define FR_7 LSFT(KC_7)
+#define FR_8 LSFT(KC_8)
+#define FR_9 LSFT(KC_9)
+#define FR_0 LSFT(KC_0)
+#define FR_UNDS LSFT(FR_MINS)
+
+#define FR_UMLT LSFT(FR_CIRC)
+#define FR_ASTR LSFT(FR_DLR)
+
+#define FR_PERC LSFT(FR_UGRV)
+#define FR_PND LSFT(FR_GRV)
+
+#define FR_GRTR LSFT(FR_LESS)
+#define FR_QUES LSFT(FR_COMM)
+#define FR_DOT LSFT(FR_SCLN)
+#define FR_SLSH LSFT(FR_COLN)
+#define FR_PLUS LSFT(FR_EQL)
+
+// Alted characters
+#define FR_LCBR LALT(KC_5)
+#define FR_RCBR LALT(FR_RPRN)
+#define FR_EURO LALT(KC_E)
+#define FR_BULT LALT(FR_DLR)
+#define FR_TILD LALT(KC_N)
+
+// Shift+Alt-ed characters
+#define FR_LBRC LSFT(LALT(KC_5))
+#define FR_RBRC LSFT(LALT(FR_RPRN))
+#define FR_PIPE LSFT(LALT(KC_L))
+#define FR_BSLS LSFT(LALT(FR_COLN))
+
+#endif \ No newline at end of file
diff --git a/quantum/keymap_extras/keymap_german.h b/quantum/keymap_extras/keymap_german.h
new file mode 100644
index 0000000000..bea82f0226
--- /dev/null
+++ b/quantum/keymap_extras/keymap_german.h
@@ -0,0 +1,60 @@
+#ifndef KEYMAP_GERMAN
+#define KEYMAP_GERMAN
+
+#include "keymap_common.h"
+
+// Alt gr
+#define ALGR(kc) kc | 0x1400
+#define DE_ALGR KC_RALT
+
+// normal characters
+#define DE_Z KC_Y
+#define DE_Y KC_Z
+
+#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 _
+
+// 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) // _
+
+// 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) // |
+
+#endif
diff --git a/quantum/keymap_extras/keymap_neo2.h b/quantum/keymap_extras/keymap_neo2.h
new file mode 100644
index 0000000000..055d7d0d1e
--- /dev/null
+++ b/quantum/keymap_extras/keymap_neo2.h
@@ -0,0 +1,44 @@
+#ifndef KEYMAP_NEO2
+#define KEYMAP_NEO2
+
+#include "keymap_common.h"
+#include "keymap_extras/keymap_german.h"
+
+#define NEO_A KC_D
+#define NEO_B KC_N
+#define NEO_C KC_R
+#define NEO_D DE_OE
+#define NEO_E KC_F
+#define NEO_F KC_O
+#define NEO_G KC_I
+#define NEO_H KC_U
+#define NEO_I KC_S
+#define NEO_J DE_MINS
+#define NEO_K DE_Z
+#define NEO_L KC_E
+#define NEO_M KC_M
+#define NEO_N KC_J
+#define NEO_O KC_G
+#define NEO_P KC_V
+#define NEO_Q KC_P
+#define NEO_R KC_K
+#define NEO_S KC_H
+#define NEO_T KC_L
+#define NEO_U KC_A
+#define NEO_V KC_W
+#define NEO_W KC_T
+#define NEO_X KC_Q
+#define NEO_Y DE_AE
+#define NEO_Z KC_B
+#define NEO_AE KC_C
+#define NEO_OE KC_X
+#define NEO_UE DE_Y
+#define NEO_SS DE_UE
+
+#define NEO_L1_L KC_CAPS
+#define NEO_L1_R DE_HASH
+
+#define NEO_L2_L DE_LESS
+#define NEO_L2_R DE_ALGR
+
+#endif