376 lines
12 KiB
C
376 lines
12 KiB
C
/* If you’d like to contribute a locale, we've created a google sheet:
|
||
* https://docs.google.com/spreadsheets/d/1gSB063BTHLTNLSGalzkhqz82RdBRVQytXKlabhX5Zcg/edit?usp=sharing
|
||
* Get in touch with us over email <contact@zsa.io> and we can help you get started!
|
||
*/
|
||
|
||
//Polish programmer, contributed by Krzysztof Bogacz.
|
||
#define PL_01 ALGR(KC_Z) // ż
|
||
#define PL_02 ALGR(KC_X) // ź
|
||
#define PL_03 ALGR(KC_S) // ś
|
||
#define PL_04 ALGR(KC_O) // ó
|
||
#define PL_05 ALGR(KC_N) // ń
|
||
#define PL_06 ALGR(KC_L) // ł
|
||
#define PL_07 ALGR(KC_E) // ę
|
||
#define PL_08 ALGR(KC_C) // ć
|
||
#define PL_09 ALGR(KC_A) // ą
|
||
|
||
//Kazakh, contributed by Zhanibek Adilbekov
|
||
#define KK_01 KC_SLASH // №
|
||
#define KK_02 KC_DOT // ю
|
||
#define KK_03 KC_COMMA // б
|
||
#define KK_04 KC_M // ь
|
||
#define KK_05 KC_N // т
|
||
#define KK_06 KC_B // и
|
||
#define KK_07 KC_V // м
|
||
#define KK_08 KC_X // ч
|
||
#define KK_09 KC_Z // я
|
||
#define KK_10 KC_QUOTE // э
|
||
#define KK_11 KC_SCOLON // ж
|
||
#define KK_12 KC_L // д
|
||
#define KK_13 KC_K // л
|
||
#define KK_14 KC_J // о
|
||
#define KK_15 KC_H // р
|
||
#define KK_16 KC_G // п
|
||
#define KK_17 KC_F // а
|
||
#define KK_18 KC_D // в
|
||
#define KK_19 KC_S // ы
|
||
#define KK_20 KC_A // ф
|
||
#define KK_21 KC_RBRACKET // ъ
|
||
#define KK_22 KC_LBRACKET // х
|
||
#define KK_23 KC_P // з
|
||
#define KK_24 KC_O // щ
|
||
#define KK_25 KC_I // ш
|
||
#define KK_26 KC_U // г
|
||
#define KK_27 KC_Y // н
|
||
#define KK_28 KC_T // е
|
||
#define KK_29 KC_R // к
|
||
#define KK_30 KC_E // у
|
||
#define KK_31 KC_W // ц
|
||
#define KK_32 KC_Q // й
|
||
#define KK_33 KC_EQUAL // һ
|
||
#define KK_34 KC_MINUS // ө
|
||
#define KK_35 KC_0 // қ
|
||
#define KK_36 KC_9 // ұ
|
||
#define KK_37 KC_8 // ү
|
||
#define KK_38 KC_7 // .
|
||
#define KK_39 KC_6 // ,
|
||
#define KK_40 KC_5 // ғ
|
||
#define KK_41 KC_4 // ң
|
||
#define KK_42 KC_3 // і
|
||
#define KK_43 KC_2 // ә
|
||
#define KK_44 KC_1 // "
|
||
|
||
//Portuguese OSX, contributed by André Cruz (@edevil)
|
||
#define PT_OSX_SECT KC_GRV // §
|
||
#define PT_OSX_QUOT KC_MINS // '
|
||
#define PT_OSX_PLUS KC_EQL // +
|
||
#define PT_OSX_MORD KC_LBRC // º
|
||
#define PT_OSX_ACUT KC_RBRC // ´ (dead)
|
||
#define PT_OSX_CCED KC_SCLN // Ç
|
||
#define PT_OSX_TILD KC_QUOT // ~ (dead)
|
||
#define PT_OSX_BSLS KC_NUHS // (backslash)
|
||
#define PT_OSX_LABK KC_NUBS // <
|
||
#define PT_OSX_MINS KC_SLSH // -
|
||
#define PT_OSX_PLMN S(PT_OSX_SECT) // ±
|
||
#define PT_OSX_EXLM S(KC_1) // !
|
||
#define PT_OSX_DQUO S(KC_2) // "
|
||
#define PT_OSX_HASH S(KC_3) // #
|
||
#define PT_OSX_DLR S(KC_4) // $
|
||
#define PT_OSX_PERC S(KC_5) // %
|
||
#define PT_OSX_AMPR S(KC_6) // &
|
||
#define PT_OSX_SLSH S(KC_7) // /
|
||
#define PT_OSX_LPRN S(KC_8) // (
|
||
#define PT_OSX_RPRN S(KC_9) // )
|
||
#define PT_OSX_EQL S(KC_0) // =
|
||
#define PT_OSX_QUES S(PT_OSX_QUOT) // ?
|
||
#define PT_OSX_ASTR S(PT_OSX_PLUS) // *
|
||
#define PT_OSX_FORD S(PT_OSX_MORD) // ª
|
||
#define PT_OSX_GRV S(PT_OSX_ACUT) // ` (dead)
|
||
#define PT_OSX_CIRC S(PT_OSX_TILD) // ^ (dead)
|
||
#define PT_OSX_PIPE S(PT_OSX_BSLS) // |
|
||
#define PT_OSX_RABK S(PT_OSX_LABK) // >
|
||
#define PT_OSX_SCLN S(KC_COMM) // ;
|
||
#define PT_OSX_COLN S(KC_DOT) // :
|
||
#define PT_OSX_UNDS S(PT_OSX_MINS) // _
|
||
#define PT_OSX_APPL A(KC_1) // (Apple logo)
|
||
#define PT_OSX_AT A(KC_2) // @
|
||
#define PT_OSX_EURO A(KC_3) // €
|
||
#define PT_OSX_PND A(KC_4) // £
|
||
#define PT_OSX_PERM A(KC_5) // ‰
|
||
#define PT_OSX_PILC A(KC_6) // ¶
|
||
#define PT_OSX_DIV A(KC_7) // ÷
|
||
#define PT_OSX_LBRC A(KC_8) // [
|
||
#define PT_OSX_RBRC A(KC_9) // ]
|
||
#define PT_OSX_NEQL A(KC_0) // ≠
|
||
#define PT_OSX_OE A(KC_Q) // Œ
|
||
#define PT_OSX_NARS A(KC_W) // ∑
|
||
#define PT_OSX_AE A(KC_E) // Æ
|
||
#define PT_OSX_REGD A(KC_R) // ®
|
||
#define PT_OSX_TM A(KC_T) // ™
|
||
#define PT_OSX_YEN A(KC_Y) // ¥
|
||
#define PT_OSX_DAGG A(KC_U) // †
|
||
#define PT_OSX_DLSI A(KC_I) // ı
|
||
#define PT_OSX_OSTR A(KC_O) // Ø
|
||
#define PT_OSX_PI A(KC_P) // π
|
||
#define PT_OSX_DEG A(PT_OSX_MORD) // °
|
||
#define PT_OSX_DIAE A(PT_OSX_ACUT) // ¨ (dead)
|
||
#define PT_OSX_ARNG A(KC_A) // å
|
||
#define PT_OSX_SS A(KC_S) // ß
|
||
#define PT_OSX_PDIF A(KC_D) // ∂
|
||
#define PT_OSX_FHK A(KC_F) // ƒ
|
||
#define PT_OSX_DOTA A(KC_G) // ˙
|
||
#define PT_OSX_CARN A(KC_H) // ˇ
|
||
#define PT_OSX_MACR A(KC_J) // ¯
|
||
#define PT_OSX_DLQU A(KC_K) // „
|
||
#define PT_OSX_LSQU A(KC_L) // ‘
|
||
#define PT_OSX_CEDL A(PT_OSX_CCED) // ¸
|
||
#define PT_OSX_STIL A(PT_OSX_TILD) // ˜ (dead)
|
||
#define PT_OSX_LSAQ A(PT_OSX_BSLS) // ‹
|
||
#define PT_OSX_LTEQ A(PT_OSX_LABK) // ≤
|
||
#define PT_OSX_OMEG A(KC_Z) // Ω
|
||
#define PT_OSX_LDAQ A(KC_X) // «
|
||
#define PT_OSX_COPY A(KC_C) // ©
|
||
#define PT_OSX_SQRT A(KC_V) // √
|
||
#define PT_OSX_INTG A(KC_B) // ∫
|
||
#define PT_OSX_NOT A(KC_N) // ¬
|
||
#define PT_OSX_MICR A(KC_M) // µ
|
||
#define PT_OSX_LDQU A(KC_COMM) // “
|
||
#define PT_OSX_ELLP A(KC_DOT) // …
|
||
#define PT_OSX_MDSH A(PT_OSX_MINS) // —
|
||
#define PT_OSX_IEXL S(A(KC_1)) // ¡
|
||
#define PT_OSX_FI S(A(KC_2)) // fi
|
||
#define PT_OSX_FL S(A(KC_3)) // fl
|
||
#define PT_OSX_CENT S(A(KC_4)) // ¢
|
||
#define PT_OSX_INFN S(A(KC_5)) // ∞
|
||
#define PT_OSX_BULT S(A(KC_6)) // •
|
||
#define PT_OSX_FRSL S(A(KC_7)) // ⁄
|
||
#define PT_OSX_LCBR S(A(KC_8)) // {
|
||
#define PT_OSX_RCBR S(A(KC_9)) // }
|
||
#define PT_OSX_AEQL S(A(KC_0)) // ≈
|
||
#define PT_OSX_IQUE S(A(PT_OSX_QUOT)) // ¿
|
||
#define PT_OSX_LOZN S(A(PT_OSX_PLUS)) // ◊
|
||
#define PT_OSX_DDAG S(A(KC_U)) // ‡
|
||
#define PT_OSX_RNGA S(A(KC_I)) // ˚
|
||
#define PT_OSX_NARP S(A(KC_P)) // ∏
|
||
#define PT_OSX_DACU S(A(PT_OSX_ACUT)) // ˝
|
||
#define PT_OSX_INCR S(A(KC_D)) // ∆
|
||
#define PT_OSX_SLQU S(A(KC_K)) // ‚
|
||
#define PT_OSX_RSQU S(A(KC_L)) // ’
|
||
#define PT_OSX_OGON S(A(PT_OSX_CCED)) // ˛
|
||
#define PT_OSX_DCIR S(A(PT_OSX_TILD)) // ˆ (dead)
|
||
#define PT_OSX_RSAQ S(A(PT_OSX_BSLS)) // ›
|
||
#define PT_OSX_GTEQ S(A(PT_OSX_LABK)) // ≥
|
||
#define PT_OSX_RDAQ S(A(KC_X)) // »
|
||
#define PT_OSX_RDQU S(A(KC_COMM)) // ”
|
||
#define PT_OSX_MDDT S(A(KC_DOT)) // ·
|
||
#define PT_OSX_NDSH S(A(PT_OSX_MINS)) // –
|
||
|
||
// Swiss French aliases to avoid collisions with Swiss german ones
|
||
#define FRCH_Y KC_Z
|
||
#define FRCH_Z KC_Y
|
||
#define FRCH_SECT KC_GRV
|
||
#define FRCH_QUOT KC_MINS
|
||
#define FRCH_CIRC KC_EQL
|
||
#define FRCH_EGRV KC_LBRC
|
||
#define FRCH_DIAE KC_RBRC
|
||
#define FRCH_EACU KC_SCLN
|
||
#define FRCH_AGRV KC_QUOT
|
||
#define FRCH_DLR KC_NUHS
|
||
#define FRCH_LABK KC_NUBS
|
||
#define FRCH_MINS KC_SLSH
|
||
#define FRCH_DEG S(FRCH_SECT)
|
||
#define FRCH_PLUS S(KC_1)
|
||
#define FRCH_DQUO S(KC_2)
|
||
#define FRCH_ASTR S(KC_3)
|
||
#define FRCH_CCED S(KC_4)
|
||
#define FRCH_PERC S(KC_5)
|
||
#define FRCH_AMPR S(KC_6)
|
||
#define FRCH_SLSH S(KC_7)
|
||
#define FRCH_LPRN S(KC_8)
|
||
#define FRCH_RPRN S(KC_9)
|
||
#define FRCH_EQL S(KC_0)
|
||
#define FRCH_QUES S(FRCH_QUOT)
|
||
#define FRCH_GRV S(FRCH_CIRC)
|
||
#define FRCH_UDIA S(FRCH_EGRV)
|
||
#define FRCH_EXLM S(FRCH_DIAE)
|
||
#define FRCH_ODIA S(FRCH_EACU)
|
||
#define FRCH_ADIA S(FRCH_AGRV)
|
||
#define FRCH_PND S(FRCH_DLR)
|
||
#define FRCH_RABK S(FRCH_LABK)
|
||
#define FRCH_SCLN S(KC_COMM)
|
||
#define FRCH_COLN S(KC_DOT)
|
||
#define FRCH_UNDS S(KC_MINS)
|
||
#define FRCH_BRKP ALGR(CH_1)
|
||
#define FRCH_AT ALGR(KC_2)
|
||
#define FRCH_HASH ALGR(KC_3)
|
||
#define FRCH_NOT ALGR(KC_6)
|
||
#define FRCH_PIPE ALGR(KC_7)
|
||
#define FRCH_CENT ALGR(KC_8)
|
||
#define FRCH_ACUT ALGR(FRCH_QUOT)
|
||
#define FRCH_TILD ALGR(FRCH_CIRC)
|
||
#define FRCH_EURO ALGR(KC_E)
|
||
#define FRCH_LBRC ALGR(FRCH_EGRV)
|
||
#define FRCH_RBRC ALGR(FRCH_DIAE)
|
||
#define FRCH_LCBR ALGR(FRCH_AGRV)
|
||
#define FRCH_RCBR ALGR(FRCH_DLR)
|
||
#define FRCH_BSLS ALGR(FRCH_LABK)
|
||
|
||
// Ukrainian
|
||
#define UA_01 S(A(KC_EQUAL))
|
||
#define UA_02 A(KC_EQUAL)
|
||
#define UA_03 S(KC_7)
|
||
#define UA_04 S(KC_6)
|
||
#define UA_05 S(KC_4)
|
||
#define UA_06 S(KC_3)
|
||
#define UA_07 S(KC_2)
|
||
#define UA_08 A(S(KC_GRAVE))
|
||
#define UA_09 A(KC_GRAVE)
|
||
#define UA_10 KC_GRAVE
|
||
#define UA_11 KC_SLASH
|
||
#define UA_12 KC_DOT
|
||
#define UA_13 KC_COMMA
|
||
#define UA_14 KC_M
|
||
#define UA_15 KC_N
|
||
#define UA_16 KC_B
|
||
#define UA_17 KC_V
|
||
#define UA_18 KC_C
|
||
#define UA_19 KC_X
|
||
#define UA_20 KC_Z
|
||
#define UA_21 KC_QUOTE
|
||
#define UA_22 KC_SCOLON
|
||
#define UA_23 KC_L
|
||
#define UA_24 KC_K
|
||
#define UA_25 KC_J
|
||
#define UA_26 KC_H
|
||
#define UA_27 KC_G
|
||
#define UA_28 KC_F
|
||
#define UA_29 KC_D
|
||
#define UA_30 KC_S
|
||
#define UA_31 KC_A
|
||
#define UA_32 KC_RBRACKET
|
||
#define UA_33 KC_LBRACKET
|
||
#define UA_34 KC_P
|
||
#define UA_35 KC_O
|
||
#define UA_36 KC_I
|
||
#define UA_37 KC_GRAVE
|
||
#define UA_38 KC_U
|
||
#define UA_39 KC_Y
|
||
#define UA_40 KC_T
|
||
#define UA_41 KC_R
|
||
#define UA_42 KC_E
|
||
#define UA_43 KC_W
|
||
#define UA_44 KC_Q
|
||
#define UA_45 S(KC_SLASH)
|
||
|
||
// French Canadian
|
||
#define FRCA_01 ALGR(KC_COMMA)
|
||
#define FRCA_02 ALGR(KC_M)
|
||
#define FRCA_03 ALGR(KC_RBRACKET)
|
||
#define FRCA_04 ALGR(KC_LBRACKET)
|
||
#define FRCA_05 ALGR(KC_QUOTE)
|
||
#define FRCA_06 ALGR(KC_BSLASH)
|
||
#define FRCA_07 KC_GRAVE
|
||
#define FRCA_08 A(KC_GRAVE)
|
||
#define FRCA_09 S(KC_GRAVE)
|
||
#define FRCA_10 S(KC_BSLASH)
|
||
#define FRCA_11 KC_BSLASH
|
||
#define FRCA_12 KC_RBRACKET
|
||
#define FRCA_13 KC_QUOTE
|
||
#define FRCA_14 S(KC_RBRACKET)
|
||
#define FRCA_15 KC_LBRACKET
|
||
#define FRCA_16 KC_SLASH
|
||
#define FRCA_17 ALGR(KC_SCOLON)
|
||
#define FRCA_18 ALGR(KC_P)
|
||
#define FRCA_19 ALGR(KC_O)
|
||
#define FRCA_20 ALGR(KC_MINUS)
|
||
#define FRCA_21 ALGR(KC_0)
|
||
#define FRCA_22 ALGR(KC_9)
|
||
#define FRCA_23 ALGR(KC_8)
|
||
#define FRCA_24 ALGR(KC_7)
|
||
#define FRCA_25 ALGR(KC_6)
|
||
#define FRCA_26 ALGR(KC_5)
|
||
#define FRCA_27 ALGR(KC_4)
|
||
#define FRCA_28 ALGR(KC_3)
|
||
#define FRCA_29 ALGR(KC_2)
|
||
#define FRCA_30 ALGR(KC_1)
|
||
#define FRCA_31 S(KC_6)
|
||
#define FRCA_32 S(KC_3)
|
||
#define FRCA_33 S(KC_2)
|
||
|
||
// Icelandic
|
||
#define IS_01 S(KC_DOT) //:
|
||
#define IS_02 S(KC_COMMA) //;
|
||
#define IS_03 ALGR(KC_NONUS_BSLASH) //|
|
||
#define IS_04 S(KC_NONUS_BSLASH) //>
|
||
#define IS_05 KC_NONUS_BSLASH //<
|
||
#define IS_06 S(KC_BSLASH)// *
|
||
#define IS_07 S(KC_QUOTE) //´
|
||
#define IS_08 S(KC_RBRACKET) //?
|
||
#define IS_09 S(KC_EQUAL) //_
|
||
#define IS_10 S(KC_GRAVE) //¨
|
||
#define IS_11 S(KC_0) //=
|
||
#define IS_12 S(KC_8) //(
|
||
#define IS_13 S(KC_7) //°
|
||
#define IS_14 S(KC_6) //&
|
||
#define IS_15 KC_BSLASH //+
|
||
#define IS_16 KC_QUOTE //´
|
||
#define IS_17 KC_RBRACKET //'
|
||
#define IS_18 KC_EQUAL //-
|
||
#define IS_19 KC_GRAVE //°
|
||
#define IS_20 KC_MINUS //ö
|
||
#define IS_21 KC_SCOLON //æ
|
||
#define IS_22 KC_LBRACKET //ð
|
||
#define IS_23 S(KC_9) //)
|
||
#define IS_24 S(KC_2) //"
|
||
#define IS_25 S(KC_MINUS) //Ö
|
||
#define IS_26 S(KC_SLASH) //Þ
|
||
#define IS_27 S(KC_SCOLON) //Æ
|
||
#define IS_28 S(KC_LBRACKET) //Ð
|
||
|
||
// Spanish LATAM
|
||
#define ES_LA_01 ALGR(KC_MINUS)
|
||
#define ES_LA_02 ALGR(KC_GRAVE) //¬
|
||
#define ES_LA_03 ALGR(KC_Q) //@
|
||
#define ES_LA_04 ALGR(KC_BSLASH) //`
|
||
#define ES_LA_05 ALGR(KC_QUOTE) //^
|
||
#define ES_LA_06 ALGR(KC_RBRACKET) //~
|
||
#define ES_LA_07 S(KC_SCOLON) //Ñ
|
||
#define ES_LA_08 KC_SCOLON //ñ
|
||
#define ES_LA_09 S(KC_SLASH) //_
|
||
#define ES_LA_10 KC_SLASH //-
|
||
#define ES_LA_11 S(KC_DOT) //:
|
||
#define ES_LA_12 KC_DOT //.
|
||
#define ES_LA_13 S(KC_COMMA) //;
|
||
#define ES_LA_14 KC_COMMA //,
|
||
#define ES_LA_15 S(KC_NONUS_BSLASH) //>
|
||
#define ES_LA_16 KC_NONUS_BSLASH //<
|
||
#define ES_LA_17 S(KC_BSLASH) //]
|
||
#define ES_LA_18 KC_BSLASH //}
|
||
#define ES_LA_19 S(KC_QUOTE) //[
|
||
#define ES_LA_20 KC_QUOTE //{
|
||
#define ES_LA_21 S(KC_RBRACKET) //*
|
||
#define ES_LA_22 KC_RBRACKET //+
|
||
#define ES_LA_23 S(KC_LBRACKET) //¨
|
||
#define ES_LA_24 KC_LBRACKET //´
|
||
#define ES_LA_25 S(KC_EQUAL) //¡
|
||
#define ES_LA_26 KC_EQUAL //¿
|
||
#define ES_LA_27 S(KC_MINUS) //?
|
||
#define ES_LA_28 KC_MINUS //'
|
||
#define ES_LA_29 S(KC_0) //=
|
||
#define ES_LA_30 S(KC_9) //(
|
||
#define ES_LA_31 S(KC_8) //(
|
||
#define ES_LA_32 S(KC_7) ///
|
||
#define ES_LA_33 S(KC_6) //&
|
||
#define ES_LA_34 S(KC_5) //%
|
||
#define ES_LA_35 S(KC_4) //$
|
||
#define ES_LA_36 S(KC_3) //#
|
||
#define ES_LA_37 S(KC_2) //"
|
||
#define ES_LA_38 S(KC_1) //!
|
||
#define ES_LA_39 S(KC_GRAVE) //°
|
||
#define ES_LA_40 KC_GRAVE //|
|
||
#define ES_LA_41 ALGR(KC_COMMA) //< for macOS
|
||
#define ES_LA_42 ALGR(KC_DOT) //> for macOS
|
||
|
||
// Extra CMS codes
|
||
#define CSA_MOMEG RCTL(RSFT(KC_Q)) //Ω
|