diff options
| author | Ryan <fauxpark@gmail.com> | 2020-04-19 06:57:05 +1000 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-19 06:57:05 +1000 | 
| commit | f43cb314767403b8289fc957bd1d3b8250874192 (patch) | |
| tree | b1d04ab08011a7e10702db25eb253ad14c5be494 | |
| parent | 89eb3a9e429de9bfc2bd3c0eefc3dc6e3dcfc57d (diff) | |
| download | firmware-f43cb314767403b8289fc957bd1d3b8250874192.tar.gz firmware-f43cb314767403b8289fc957bd1d3b8250874192.tar.bz2 firmware-f43cb314767403b8289fc957bd1d3b8250874192.zip | |
Update French and German macOS keymaps and add sendstring LUTs (#8700)
| -rw-r--r-- | quantum/keymap_extras/keymap_french_osx.h | 306 | ||||
| -rw-r--r-- | quantum/keymap_extras/keymap_german_osx.h | 385 | ||||
| -rw-r--r-- | quantum/keymap_extras/sendstring_french.h | 2 | ||||
| -rw-r--r-- | quantum/keymap_extras/sendstring_french_osx.h | 100 | ||||
| -rw-r--r-- | quantum/keymap_extras/sendstring_german_osx.h | 100 | 
5 files changed, 736 insertions, 157 deletions
| diff --git a/quantum/keymap_extras/keymap_french_osx.h b/quantum/keymap_extras/keymap_french_osx.h index 3a231874a..d0132a2d8 100644 --- a/quantum/keymap_extras/keymap_french_osx.h +++ b/quantum/keymap_extras/keymap_french_osx.h @@ -13,80 +13,248 @@   * You should have received a copy of the GNU General Public License   * along with this program.  If not, see <http://www.gnu.org/licenses/>.   */ -#ifndef KEYMAP_FRENCH_OSX_H -#define KEYMAP_FRENCH_OSX_H -#include "keymap.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 +#pragma once -// 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) +#include "keymap.h" -#define FR_UMLT LSFT(FR_CIRC) -#define FR_ASTR LSFT(FR_DLR) +// clang-format off -#define FR_PERC LSFT(FR_UGRV) -#define FR_PND LSFT(FR_GRV) +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ @ │ & │ é │ " │ ' │ ( │ § │ è │ ! │ ç │ à │ ) │ - │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ ` │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ = │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define FR_AT   KC_GRV  // @ +#define FR_AMPR KC_1    // & +#define FR_LEAC KC_2    // é +#define FR_DQUO KC_3    // " +#define FR_QUOT KC_4    // ' +#define FR_LPRN KC_5    // ( +#define FR_SECT KC_6    // § +#define FR_LEGR KC_7    // è +#define FR_EXLM KC_8    // ! +#define FR_LCCE KC_9    // ç +#define FR_LAGR KC_0    // à +#define FR_RPRN KC_MINS // ) +#define FR_MINS KC_EQL  // - +// Row 2 +#define FR_A    KC_Q    // A +#define FR_Z    KC_W    // Z +#define FR_E    KC_E    // E +#define FR_R    KC_R    // R +#define FR_T    KC_T    // T +#define FR_Y    KC_Y    // Y +#define FR_U    KC_U    // U +#define FR_I    KC_I    // I +#define FR_O    KC_O    // O +#define FR_P    KC_P    // P +#define FR_CIRC KC_LBRC // ^ +#define FR_DLR  KC_RBRC // $ +// Row 3 +#define FR_Q    KC_A    // Q +#define FR_S    KC_S    // S +#define FR_D    KC_D    // D +#define FR_F    KC_F    // F +#define FR_G    KC_G    // G +#define FR_H    KC_H    // H +#define FR_J    KC_J    // J +#define FR_K    KC_K    // K +#define FR_L    KC_L    // L +#define FR_M    KC_SCLN // M +#define FR_LUGR KC_QUOT // ù +#define FR_GRV  KC_NUHS // ` +// Row 4 +#define FR_LABK KC_NUBS // < +#define FR_W    KC_Z    // W +#define FR_X    KC_X    // X +#define FR_C    KC_C    // C +#define FR_V    KC_V    // V +#define FR_B    KC_B    // B +#define FR_N    KC_N    // N +#define FR_COMM KC_M    // , +#define FR_SCLN KC_COMM // ; +#define FR_COLN KC_DOT  // : +#define FR_EQL  KC_SLSH // = -#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) +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ _ │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │   │   │   │   │   │   │   │   │   │   │ ¨ │ * │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │   │   │   │   │   │   │   │   │   │   │ % │ £ │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ > │   │   │   │   │   │   │ ? │ . │ / │ + │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define FR_HASH S(FR_AT)   // # +#define FR_1    S(FR_AMPR) // 1 +#define FR_2    S(FR_LEAC) // 2 +#define FR_3    S(FR_DQUO) // 3 +#define FR_4    S(FR_QUOT) // 4 +#define FR_5    S(FR_LPRN) // 5 +#define FR_6    S(FR_SECT) // 6 +#define FR_7    S(FR_LEGR) // 7 +#define FR_8    S(FR_EXLM) // 8 +#define FR_9    S(FR_LCCE) // 9 +#define FR_0    S(FR_LAGR) // 0 +#define FR_DEG  S(FR_RPRN) // ° +#define FR_UNDS S(FR_MINS) // _ +// Row 2 +#define FR_DIAE S(FR_CIRC) // ¨ (dead) +#define FR_ASTR S(FR_DLR)  // * +// Row 3 +#define FR_PERC S(FR_LUGR) // % +#define FR_PND  S(FR_GRV)  // £ +// Row 4 +#define FR_RABK S(FR_LABK) // > +#define FR_QUES S(FR_COMM) // ? +#define FR_DOT  S(FR_SCLN) // . +#define FR_SLSH S(FR_COLN) // / +#define FR_PLUS S(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) +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ • │  │ ë │ “ │ ‘ │ { │ ¶ │ « │ ¡ │ Ç │ Ø │ } │ — │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │ Æ │ Â │ Ê │ ® │ † │ Ú │ º │ î │ Œ │ π │ Ô │ € │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │ ‡ │ Ò │ ∂ │ ƒ │ fi │ Ì │ Ï │ È │ ¬ │ µ │ Ù │   │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ ≤ │ ‹ │ ≈ │ © │ ◊ │ ß │ ~ │ ∞ │ … │ ÷ │ ≠ │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define FR_BULT A(FR_AT)   // • +#define FR_APPL A(FR_AMPR) //  (Apple logo) +#define FR_LEDI A(FR_LEAC) // ë +#define FR_LDQU A(FR_DQUO) // “ +#define FR_LSQU A(FR_QUOT) // ‘ +#define FR_LCBR A(FR_LPRN) // { +#define FR_PILC A(FR_SECT) // ¶ +#define FR_LDAQ A(FR_LEGR) // « +#define FR_IEXL A(FR_EXLM) // ¡ +#define FR_CCCE A(FR_LCCE) // Ç +#define FR_OSTR A(FR_LAGR) // Ø +#define FR_RCBR A(FR_RPRN) // } +#define FR_MDSH A(FR_MINS) // — +// Row 2 +#define FR_AE   A(FR_A)    // Æ +#define FR_CACI A(FR_Z)    //  +#define FR_ECIR A(FR_E)    // Ê +#define FR_REGD A(FR_R)    // ® +#define FR_DAGG A(FR_T)    // † +#define FR_CUAC A(FR_Y)    // Ú +#define FR_MORD A(FR_U)    // º +#define FR_LICI A(FR_I)    // î +#define FR_OE   A(FR_O)    // Œ +#define FR_PI   A(FR_P)    // π +#define FR_OCIR A(FR_CIRC) // Ô +#define FR_EURO A(FR_DLR)  // € +// Row 3 +#define FR_DDAG A(FR_Q)    // ‡ +#define FR_COGR A(FR_S)    // Ò +#define FR_PDIF A(FR_D)    // ∂ +#define FR_FHK  A(FR_F)    // ƒ +#define FR_FI   A(FR_G)    // fi +#define FR_CIGR A(FR_H)    // Ì +#define FR_CIDI A(FR_J)    // Ï +#define FR_CEGR A(FR_K)    // È +#define FR_NOT  A(FR_L)    // ¬ +#define FR_MICR A(FR_M)    // µ +#define FR_CUGR A(FR_LUGR) // Ù +// Row 4 +#define FR_LTEQ A(FR_LABK) // ≤ +#define FR_LSAQ A(FR_W)    // ‹ +#define FR_AEQL A(FR_X)    // ≈ +#define FR_COPY A(FR_C)    // © +#define FR_LOZN A(FR_V)    // ◊ +#define FR_SS   A(FR_B)    // ß +#define FR_TILD A(FR_N)    // ~ (dead) +#define FR_INFN A(FR_COMM) // ∞ +#define FR_ELLP A(FR_SCLN) // … +#define FR_DIV  A(FR_COLN) // ÷ +#define FR_NEQL A(FR_EQL)  // ≠ -// 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)) +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ Ÿ │ ´ │ „ │   │   │ [ │ å │ » │ Û │ Á │   │ ] │ – │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │   │ Å │   │ ‚ │ ™ │   │ ª │ ï │   │ ∏ │   │ ¥ │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │ Ω │ ∑ │ ∆ │ · │ fl │ Î │ Í │ Ë │ | │ Ó │ ‰ │   │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ ≥ │ › │ ⁄ │ ¢ │ √ │ ∫ │ ı │ ¿ │   │ \ │ ± │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define FR_CYDI S(A(FR_AT))   // Ÿ +#define FR_ACUT S(A(FR_AMPR)) // ´ (dead) +#define FR_DLQU S(A(FR_LEAC)) // „ +#define FR_LBRC S(A(FR_LPRN)) // [ +#define FR_LARI S(A(FR_SECT)) // å +#define FR_RDAQ S(A(FR_LEGR)) // » +#define FR_CUCI S(A(FR_EXLM)) // Û +#define FR_CAAC S(A(FR_LCCE)) // Á +#define FR_RBRC S(A(FR_RPRN)) // ] +#define FR_NDSH S(A(FR_MINS)) // – +// Row 2 +#define FR_CARI S(A(FR_Z))    // Å +#define FR_SLQU S(A(FR_R))    // ‚ +#define FR_TM   S(A(FR_T))    // ™ +#define FR_FORD S(A(FR_U))    // ª +#define FR_LIDI S(A(FR_I))    // ï +#define FR_NARP S(A(FR_P))    // ∏ +#define FR_YEN  S(A(FR_DLR))  // ¥ +// Row 3 +#define FR_OMEG S(A(FR_Q))    // Ω +#define FR_NARS S(A(FR_S))    // ∑ +#define FR_INCR S(A(FR_D))    // ∆ +#define FR_MDDT S(A(FR_F))    // · +#define FR_FL   S(A(FR_G))    // fl +#define FR_CICI S(A(FR_H))    // Î +#define FR_CIAC S(A(FR_J))    // Í +#define FR_CEDI S(A(FR_K))    // Ë +#define FR_PIPE S(A(FR_L))    // | +#define FR_COAC S(A(FR_M))    // Ó +#define FR_PERM S(A(FR_LUGR)) // ‰ +// Row 4 +#define FR_GTEQ S(A(FR_LABK)) // ≥ +#define FR_LSAQ S(A(FR_W))    // › +#define FR_FRSL S(A(FR_X))    // ⁄ +#define FR_CENT S(A(FR_C))    // ¢ +#define FR_SQRT S(A(FR_V))    // √ +#define FR_INTG S(A(FR_B))    // ∫ +#define FR_DLSI S(A(FR_N))    // ı +#define FR_IQUE S(A(FR_COMM)) // ¿ +#define FR_BSLS S(A(FR_COLN)) // (backslash) +#define FR_PLMN S(A(FR_EQL))  // ± -#endif +// DEPRECATED +#define FR_AMP  FR_AMPR +#define FR_EACU FR_LEAC +#define FR_APOS FR_QUOT +#define FR_EGRV FR_LEGR +#define FR_CCED FR_LCCE +#define FR_AGRV FR_LAGR +#define FR_UGRV FR_LUGR +#define FR_LESS FR_LABK +#define FR_UMLT FR_DIAE +#define FR_GRTR FR_RABK diff --git a/quantum/keymap_extras/keymap_german_osx.h b/quantum/keymap_extras/keymap_german_osx.h index 29dee07ee..0d15532e4 100644 --- a/quantum/keymap_extras/keymap_german_osx.h +++ b/quantum/keymap_extras/keymap_german_osx.h @@ -13,100 +13,311 @@   * You should have received a copy of the GNU General Public License   * along with this program.  If not, see <http://www.gnu.org/licenses/>.   */ -#ifndef KEYMAP_GERMAN_OSX -#define KEYMAP_GERMAN_OSX -#include "keymap.h" - -// Alt gr +#pragma once -// normal characters -#define DE_OSX_Z KC_Y -#define DE_OSX_Y KC_Z +#include "keymap.h" -#define DE_OSX_A KC_A -#define DE_OSX_B KC_B -#define DE_OSX_C KC_C -#define DE_OSX_D KC_D -#define DE_OSX_E KC_E -#define DE_OSX_F KC_F -#define DE_OSX_G KC_G -#define DE_OSX_H KC_H -#define DE_OSX_I KC_I -#define DE_OSX_J KC_J -#define DE_OSX_K KC_K -#define DE_OSX_L KC_L -#define DE_OSX_M KC_M -#define DE_OSX_N KC_N -#define DE_OSX_O KC_O -#define DE_OSX_P KC_P -#define DE_OSX_Q KC_Q -#define DE_OSX_R KC_R -#define DE_OSX_S KC_S -#define DE_OSX_T KC_T -#define DE_OSX_U KC_U -#define DE_OSX_V KC_V -#define DE_OSX_W KC_W -#define DE_OSX_X KC_X +// clang-format off -#define DE_OSX_0 KC_0 -#define DE_OSX_1 KC_1 -#define DE_OSX_2 KC_2 -#define DE_OSX_3 KC_3 -#define DE_OSX_4 KC_4 -#define DE_OSX_5 KC_5 -#define DE_OSX_6 KC_6 -#define DE_OSX_7 KC_7 -#define DE_OSX_8 KC_8 -#define DE_OSX_9 KC_9 +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ ^ │ 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 // - -#define DE_OSX_DOT KC_DOT -#define DE_OSX_COMM KC_COMM +/* 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) // _ -#define DE_OSX_SS KC_MINS -#define DE_OSX_AE KC_QUOT -#define DE_OSX_UE KC_LBRC -#define DE_OSX_OE KC_SCLN +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ „ │ ¡ │ “ │ ¶ │ ¢ │ [ │ ] │ | │ { │ } │ ≠ │ ¿ │   │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │ « │ ∑ │ € │ ® │ † │ Ω │ ¨ │ ⁄ │ Ø │ π │ • │ ± │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │ Å │ ‚ │ ∂ │ ƒ │ © │ ª │ º │ ∆ │ @ │ Œ │ Æ │ ‘ │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ ≤ │ ¥ │ ≈ │ Ç │ √ │ ∫ │ ~ │ µ │ ∞ │ … │ – │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define DE_DLQU A(DE_CIRC) // „ +#define DE_IEXL A(DE_1)    // ¡ +#define DE_LDQU A(DE_2)    // “ +#define DE_PILC A(DE_3)    // ¶ +#define DE_CENT A(DE_4)    // ¢ +#define DE_LBRC A(DE_5)    // [ +#define DE_RBRC A(DE_6)    // ] +#define DE_PIPE A(DE_7)    // | +#define DE_LCBR A(DE_8)    // { +#define DE_RCBR A(DE_9)    // } +#define DE_NEQL A(DE_0)    // ≠ +#define DE_IQUE A(DE_SS)   // ¿ +// Row 2 +#define DE_LDAQ A(DE_Q)    // « +#define DE_NARS A(DE_W)    // ∑ +#define DE_EURO A(DE_E)    // € +#define DE_REGD A(DE_R)    // ® +#define DE_DAGG A(DE_T)    // † +#define DE_OMEG A(DE_Z)    // Ω +#define DE_DIAE A(DE_U)    // ¨ (dead) +#define DE_FRSL A(DE_I)    // ⁄ +#define DE_OSTR A(DE_O)    // Ø +#define DE_PI   A(DE_P)    // π +#define DE_BULT A(DE_UDIA) // • +#define DE_PLMN A(DE_PLUS) // ± +// Row 3 +#define DE_ARNG A(DE_A)    // Å +#define DE_SLQU A(DE_S)    // ‚ +#define DE_PDIF A(DE_D)    // ∂ +#define DE_FHK  A(DE_F)    // ƒ +#define DE_COPY A(DE_G)    // © +#define DE_FORD A(DE_H)    // ª +#define DE_MORD A(DE_J)    // º +#define DE_INCR A(DE_K)    // ∆ +#define DE_AT   A(DE_L)    // @ +#define DE_OE   A(DE_ODIA) // Œ +#define DE_AE   A(DE_ADIA) // Æ +#define DE_LSQU A(DE_HASH) // ‘ +// Row 4 +#define DE_LTEQ A(DE_LABK) // ≤ +#define DE_YEN  A(DE_Y)    // ¥ +#define DE_AEQL A(DE_X)    // ≈ +#define DE_CCCE A(DE_C)    // Ç +#define DE_SQRT A(DE_V)    // √ +#define DE_INTG A(DE_B)    // ∫ +#define DE_TILD A(DE_N)    // ~ (dead) +#define DE_MICR A(DE_M)    // µ +#define DE_INFN A(DE_COMM) // ∞ +#define DE_ELLP A(DE_DOT)  // … +#define DE_NDSH A(DE_MINS) // – -#define DE_OSX_CIRC KC_NUBS  // accent circumflex ^ and ring ° -#define DE_OSX_ACUT KC_EQL   // accent acute ´ and grave ` -#define DE_OSX_PLUS KC_RBRC  // + and * and ~ -#define DE_OSX_HASH KC_BSLS  // # and ' -#define DE_OSX_LESS KC_GRV   // < and > and | -#define DE_OSX_MINS KC_SLSH  // - and _ +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │   │ ¬ │ ” │   │ £ │ fi │   │ \ │ ˜ │ · │ ¯ │ ˙ │ ˚ │     │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │     │ » │   │ ‰ │ ¸ │ ˝ │ ˇ │ Á │ Û │   │ ∏ │   │  │   │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │ + * │      │   │ Í │ ™ │ Ï │ Ì │ Ó │ ı │   │ fl │   │   │   │  │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │    │ ≥ │ ‡ │ Ù │   │ ◊ │ ‹ │ › │ ˘ │ ˛ │ ÷ │ — │        │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │     │    │     │                       │     │    │     │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ +// Row 1 +#define DE_NOT  S(A(DE_1))    // ¬ +#define DE_RDQU S(A(DE_2))    // ” +#define DE_PND  S(A(DE_4))    // £ +#define DE_FI   S(A(DE_5))    // fi +#define DE_BSLS S(A(DE_7))    // (backslash) +#define DE_STIL S(A(DE_8))    // ˜ +#define DE_MDDT S(A(DE_9))    // · +#define DE_MACR S(A(DE_0))    // ¯ +#define DE_DOTA S(A(DE_SS))   // ˙ +#define DE_RNGA S(A(DE_ACUT)) // ˚ +// Row 2 +#define DE_RDAQ S(A(DE_Q))    // » +#define DE_PERM S(A(DE_E))    // ‰ +#define DE_CEDL S(A(DE_R))    // ¸ +#define DE_DACU S(A(DE_T))    // ˝ +#define DE_CARN S(A(DE_Z))    // ˇ +#define DE_AACU S(A(DE_U))    // Á +#define DE_UCIR S(A(DE_I))    // Û +#define DE_NARP S(A(DE_P))    // ∏ +#define DE_APPL S(A(DE_PLUS)) //  (Apple logo) +// Row 3 +#define DE_IACU S(A(DE_S))    // Í +#define DE_TM   S(A(DE_D))    // ™ +#define DE_IDIA S(A(DE_F))    // Ï +#define DE_IGRV S(A(DE_G))    // Ì +#define DE_OACU S(A(DE_H))    // Ó +#define DE_DLSI S(A(DE_J))    // ı +#define DE_FL   S(A(DE_L))    // fl +// Row 4 +#define DE_GTEQ S(A(DE_LABK)) // ≥ +#define DE_DDAG S(A(DE_Y))    // ‡ +#define DE_UGRV S(A(DE_X))    // Ù +#define DE_LOZN S(A(DE_V))    // ◊ +#define DE_LSAQ S(A(DE_B))    // ‹ +#define DE_RSAQ S(A(DE_N))    // › +#define DE_BREV S(A(DE_M))    // ˘ +#define DE_OGON S(A(DE_COMM)) // ˛ +#define DE_DIV  S(A(DE_DOT))  // ÷ +#define DE_MDSH S(A(DE_MINS)) // — -// shifted characters -#define DE_OSX_RING LSFT(DE_OSX_CIRC)  // ° -#define DE_OSX_EXLM LSFT(KC_1)         // ! -#define DE_OSX_DQOT LSFT(KC_2)         // " -#define DE_OSX_PARA LSFT(KC_3)         // § -#define DE_OSX_DLR LSFT(KC_4)          // $ -#define DE_OSX_PERC LSFT(KC_5)         // % -#define DE_OSX_AMPR LSFT(KC_6)         // & -#define DE_OSX_SLSH LSFT(KC_7)         // / -#define DE_OSX_LPRN LSFT(KC_8)         // ( -#define DE_OSX_RPRN LSFT(KC_9)         // ) -#define DE_OSX_EQL LSFT(KC_0)          // = -#define DE_OSX_QST LSFT(DE_OSX_SS)     // ? -#define DE_OSX_GRV LSFT(DE_OSX_ACUT)   // ` -#define DE_OSX_ASTR LSFT(DE_OSX_PLUS)  // * -#define DE_OSX_QUOT LSFT(DE_OSX_HASH)  // ' -#define DE_OSX_MORE LSFT(DE_OSX_LESS)  // > -#define DE_OSX_COLN LSFT(KC_DOT)       // : -#define DE_OSX_SCLN LSFT(KC_COMM)      // ; -#define DE_OSX_UNDS LSFT(DE_OSX_MINS)  // _ +// DEPRECATED +#define DE_OSX_CIRC DE_CIRC +#define DE_OSX_1    DE_1 +#define DE_OSX_2    DE_2 +#define DE_OSX_3    DE_3 +#define DE_OSX_4    DE_4 +#define DE_OSX_5    DE_5 +#define DE_OSX_6    DE_6 +#define DE_OSX_7    DE_7 +#define DE_OSX_8    DE_8 +#define DE_OSX_9    DE_9 +#define DE_OSX_0    DE_0 +#define DE_OSX_SS   DE_SS +#define DE_OSX_ACUT DE_ACUT +#define DE_OSX_Q    DE_Q +#define DE_OSX_W    DE_W +#define DE_OSX_E    DE_E +#define DE_OSX_R    DE_R +#define DE_OSX_T    DE_T +#define DE_OSX_Z    DE_Z +#define DE_OSX_U    DE_U +#define DE_OSX_I    DE_I +#define DE_OSX_O    DE_O +#define DE_OSX_P    DE_P +#define DE_OSX_UE   DE_UDIA +#define DE_OSX_PLUS DE_PLUS +#define DE_OSX_A    DE_A +#define DE_OSX_S    DE_S +#define DE_OSX_D    DE_D +#define DE_OSX_F    DE_F +#define DE_OSX_G    DE_G +#define DE_OSX_H    DE_H +#define DE_OSX_J    DE_J +#define DE_OSX_K    DE_K +#define DE_OSX_L    DE_L +#define DE_OSX_OE   DE_ODIA +#define DE_OSX_AE   DE_ADIA +#define DE_OSX_HASH DE_HASH +#define DE_OSX_LESS DE_LABK +#define DE_OSX_Y    DE_Y +#define DE_OSX_X    DE_X +#define DE_OSX_C    DE_C +#define DE_OSX_V    DE_V +#define DE_OSX_B    DE_B +#define DE_OSX_N    DE_N +#define DE_OSX_M    DE_M +#define DE_OSX_COMM DE_COMM +#define DE_OSX_DOT  DE_DOT +#define DE_OSX_MINS DE_MINS -// Alt-ed characters -//#define DE_OSX_SQ2 LALT(KC_2) // ² -//#define DE_OSX_SQ3 LALT(KC_3) // ³ -#define DE_OSX_LCBR LALT(KC_8)        // { -#define DE_OSX_LBRC LALT(KC_5)        // [ -#define DE_OSX_RBRC LALT(KC_6)        // ] -#define DE_OSX_RCBR LALT(KC_9)        // } -#define DE_OSX_BSLS LALT(LSFT(KC_7))  // backslash -#define DE_OSX_AT LALT(DE_OSX_L)      // @ -#define DE_OSX_EURO LALT(KC_E)        // € -#define DE_OSX_TILD LALT(DE_OSX_N)    // ~ -#define DE_OSX_PIPE LALT(DE_OSX_7)    // | +#define DE_OSX_RING DE_DEG +#define DE_OSX_EXLM DE_EXLM +#define DE_OSX_DQOT DE_DQUO +#define DE_OSX_PARA DE_SECT +#define DE_OSX_DLR  DE_DLR +#define DE_OSX_PERC DE_PERC +#define DE_OSX_AMPR DE_AMPR +#define DE_OSX_SLSH DE_SLSH +#define DE_OSX_LPRN DE_LPRN +#define DE_OSX_RPRN DE_RPRN +#define DE_OSX_EQL  DE_EQL +#define DE_OSX_QST  DE_QUES +#define DE_OSX_GRV  DE_GRV +#define DE_OSX_ASTR DE_ASTR +#define DE_OSX_QUOT DE_QUOT +#define DE_OSX_MORE DE_RABK +#define DE_OSX_COLN DE_COLN +#define DE_OSX_SCLN DE_SCLN +#define DE_OSX_UNDS DE_UNDS -#endif +#define DE_OSX_LBRC DE_LBRC +#define DE_OSX_RBRC DE_RBRC +#define DE_OSX_PIPE DE_PIPE +#define DE_OSX_LCBR DE_LCBR +#define DE_OSX_RCBR DE_RCBR +#define DE_OSX_AT   DE_AT +#define DE_OSX_EURO DE_EURO +#define DE_OSX_TILD DE_TILD +#define DE_OSX_BSLS DE_BSLS diff --git a/quantum/keymap_extras/sendstring_french.h b/quantum/keymap_extras/sendstring_french.h index a02f114b4..17ea3ed45 100644 --- a/quantum/keymap_extras/sendstring_french.h +++ b/quantum/keymap_extras/sendstring_french.h @@ -74,7 +74,7 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = {      XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      //       !        "        #        $        %        &        ' -    KC_SPC,  FR_EXLM, FR_QUOT, FR_DQUO, FR_DLR,  FR_UGRV, FR_AMP,  FR_QUOT, +    KC_SPC,  FR_EXLM, FR_QUOT, FR_DQUO, FR_DLR,  FR_UGRV, FR_AMPR, FR_QUOT,      // (     )        *        +        ,        -        .        /      FR_LPRN, FR_RPRN, FR_ASTR, FR_EQL,  FR_COMM, FR_MINS, FR_SCLN, FR_COLN,      // 0     1        2        3        4        5        6        7 diff --git a/quantum/keymap_extras/sendstring_french_osx.h b/quantum/keymap_extras/sendstring_french_osx.h new file mode 100644 index 000000000..6cadbac15 --- /dev/null +++ b/quantum/keymap_extras/sendstring_french_osx.h @@ -0,0 +1,100 @@ +/* Copyright 2020 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +// Sendstring lookup tables for macOS French (AZERTY) layouts + +#pragma once + +#include "keymap_french_osx.h" +#include "quantum.h" + +// clang-format off + +const uint8_t ascii_to_shift_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, 0, 0, 0, 0, 0), + +    KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 0, 0), +    KCLUT_ENTRY(0, 0, 1, 1, 0, 0, 1, 1), +    KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), +    KCLUT_ENTRY(1, 1, 0, 0, 0, 0, 1, 1), +    KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1), +    KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), +    KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), +    KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 0, 1), +    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, 1, 0, 0, 0) +}; + +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, 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), +    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, 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, 1, 1, 1, 1, 0) +}; + +const uint8_t ascii_to_keycode_lut[128] PROGMEM = { +    // NUL   SOH      STX      ETX      EOT      ENQ      ACK      BEL +    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +    // BS    TAB      LF       VT       FF       CR       SO       SI +    KC_BSPC, KC_TAB,  KC_ENT,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +    // DLE   DC1      DC2      DC3      DC4      NAK      SYN      ETB +    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +    // CAN   EM       SUB      ESC      FS       GS       RS       US +    XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + +    //       !        "        #        $        %        &        ' +    KC_SPC,  FR_EXLM, FR_DQUO, FR_AT,   FR_DLR,  FR_LUGR, FR_AMPR, FR_QUOT, +    // (     )        *        +        ,        -        .        / +    FR_LPRN, FR_RPRN, FR_DLR,  FR_EQL,  FR_COMM, FR_MINS, FR_SCLN, FR_COLN, +    // 0     1        2        3        4        5        6        7 +    FR_LAGR, FR_AMPR, FR_LEAC, FR_DQUO, FR_QUOT, FR_LPRN, FR_SECT, FR_LEGR, +    // 8     9        :        ;        <        =        >        ? +    FR_EXLM, FR_LCCE, FR_COLN, FR_SCLN, FR_LABK, FR_EQL,  FR_LABK, FR_COMM, +    // @     A        B        C        D        E        F        G +    FR_AT,   FR_A,    FR_B,    FR_C,    FR_D,    FR_E,    FR_F,    FR_G, +    // H     I        J        K        L        M        N        O +    FR_H,    FR_I,    FR_J,    FR_K,    FR_L,    FR_M,    FR_N,    FR_O, +    // P     Q        R        S        T        U        V        W +    FR_P,    FR_Q,    FR_R,    FR_S,    FR_T,    FR_U,    FR_V,    FR_W, +    // X     Y        Z        [        \        ]        ^        _ +    FR_X,    FR_Y,    FR_Z,    FR_LPRN, FR_COLN, FR_RPRN, FR_CIRC, FR_MINS, +    // `     a        b        c        d        e        f        g +    FR_GRV,  FR_A,    FR_B,    FR_C,    FR_D,    FR_E,    FR_F,    FR_G, +    // h     i        j        k        l        m        n        o +    FR_H,    FR_I,    FR_J,    FR_K,    FR_L,    FR_M,    FR_N,    FR_O, +    // p     q        r        s        t        u        v        w +    FR_P,    FR_Q,    FR_R,    FR_S,    FR_T,    FR_U,    FR_V,    FR_W, +    // x     y        z        {        |        }        ~        DEL +    FR_X,    FR_Y,    FR_Z,    FR_LPRN, FR_L,    FR_RPRN, FR_N,    KC_DEL +}; diff --git a/quantum/keymap_extras/sendstring_german_osx.h b/quantum/keymap_extras/sendstring_german_osx.h new file mode 100644 index 000000000..03f54da2a --- /dev/null +++ b/quantum/keymap_extras/sendstring_german_osx.h @@ -0,0 +1,100 @@ +/* Copyright 2020 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +// Sendstring lookup tables for macOS German layouts + +#pragma once + +#include "keymap_german_osx.h" +#include "quantum.h" + +// clang-format off + +const uint8_t ascii_to_shift_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, 0, 0, 0, 0, 0), + +    KCLUT_ENTRY(0, 1, 1, 0, 1, 1, 1, 1), +    KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1), +    KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), +    KCLUT_ENTRY(0, 0, 1, 1, 0, 1, 1, 1), +    KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1), +    KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), +    KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), +    KCLUT_ENTRY(1, 1, 1, 0, 1, 0, 0, 1), +    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) +}; + +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, 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), +    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, 1, 1, 1, 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, 1, 1, 1, 1, 0) +}; + +const uint8_t ascii_to_keycode_lut[128] PROGMEM = { +    // NUL   SOH      STX      ETX      EOT      ENQ      ACK      BEL +    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +    // BS    TAB      LF       VT       FF       CR       SO       SI +    KC_BSPC, KC_TAB,  KC_ENT,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +    // DLE   DC1      DC2      DC3      DC4      NAK      SYN      ETB +    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +    // CAN   EM       SUB      ESC      FS       GS       RS       US +    XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + +    //       !        "        #        $        %        &        ' +    KC_SPC,  DE_1,    DE_2,    DE_HASH, DE_4,    DE_5,    DE_6,    DE_HASH, +    // (     )        *        +        ,        -        .        / +    DE_8,    DE_9,    DE_PLUS, DE_PLUS, DE_COMM, DE_MINS, DE_DOT,  DE_7, +    // 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_LABK, DE_0,    DE_LABK, DE_SS, +    // @     A        B        C        D        E        F        G +    DE_L,    DE_A,    DE_B,    DE_C,    DE_D,    DE_E,    DE_F,    DE_G, +    // H     I        J        K        L        M        N        O +    DE_H,    DE_I,    DE_J,    DE_K,    DE_L,    DE_M,    DE_N,    DE_O, +    // 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        [        \        ]        ^        _ +    DE_X,    DE_Y,    DE_Z,    DE_5,    DE_7,    DE_6,    DE_CIRC, DE_MINS, +    // `     a        b        c        d        e        f        g +    DE_ACUT, DE_A,    DE_B,    DE_C,    DE_D,    DE_E,    DE_F,    DE_G, +    // h     i        j        k        l        m        n        o +    DE_H,    DE_I,    DE_J,    DE_K,    DE_L,    DE_M,    DE_N,    DE_O, +    // 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_8,    DE_7,    DE_9,    DE_N,    KC_DEL +}; | 
