Home | History | Annotate | Line # | Download | only in symbols
      1 //
      2 // X keyboard maps for Finland
      3 //
      4 // SFS 5966 / Kotoistus keymap created by Troy Korjuslommi
      5 // Classic keymap based on traditional by Marko Myllynen
      6 // Eliminate deadkeys alternative sent by Linus Torvalds
      7 //
      8 
      9 default partial alphanumeric_keys
     10 xkb_symbols "kotoistus" {
     11 
     12     // Official keymap for Finland based on SFS 5966:2019 standard
     13     //
     14     // This keymap implements all the functionality of Annex 1
     15     // of the standard and additionally defines the following to
     16     // allow entering these characters with keyboards without LSGT.
     17     //
     18     // AE08+4 : U+003C LESS-THAN SIGN     (less)
     19     // AE09+4 : U+003E GREATER-THAN SIGN  (greater)
     20     // AD08+4 : U+007C VERTICAL LINE      (bar)
     21     //
     22     // Annex 3 of the standard is implemented in fi_FI.UTF-8/Compose.
     23     //
     24     // This keymap implements regular space in position "A-3" of the
     25     // standard and implements NARROW NO-BREAK SPACE (U+202F) in A-4.
     26     //
     27     // The following definitions are also included to allow entering
     28     // Greek letters and currency symbols with the libX11 sequences.
     29     //
     30     // AC08+4 : dead_greek
     31     // AC09+4 : dead_currency
     32 
     33     name[Group1]="Finnish";
     34 
     35     key <TLDE> { [  section,         onehalf,          dead_stroke,           NoSymbol              ] };
     36     key <AE01> { [  1,               exclam,           NoSymbol,              exclamdown            ] };
     37     key <AE02> { [  2,               quotedbl,         at,                    rightdoublequotemark  ] };
     38     key <AE03> { [  3,               numbersign,       sterling,              guillemotright        ] };
     39     key <AE04> { [  4,               currency,         dollar,                guillemotleft         ] };
     40     key <AE05> { [  5,               percent,          permille,              leftdoublequotemark   ] };
     41     key <AE06> { [  6,               ampersand,        singlelowquotemark,    doublelowquotemark    ] };
     42     key <AE07> { [  7,               slash,            braceleft,             NoSymbol              ] };
     43     key <AE08> { [  8,               parenleft,        bracketleft,           less                  ] };
     44     key <AE09> { [  9,               parenright,       bracketright,          greater               ] };
     45     key <AE10> { [  0,               equal,            braceright,            degree                ] };
     46     key <AE11> { [  plus,            question,         backslash,             questiondown          ] };
     47     key <AE12> { [  dead_acute,      dead_grave,       dead_cedilla,          dead_ogonek           ] };
     48 
     49     key <AD01> { [  q,               Q,                q,                     Q                     ] };
     50     key <AD02> { [  w,               W,                w,                     W                     ] };
     51     key <AD03> { [  e,               E,                EuroSign,              NoSymbol              ] };
     52     key <AD04> { [  r,               R,                r,                     R                     ] };
     53     key <AD05> { [  t,               T,                thorn,                 THORN                 ] };
     54     key <AD06> { [  y,               Y,                y,                     Y                     ] };
     55     key <AD07> { [  u,               U,                u,                     U                     ] };
     56     key <AD08> { [  i,               I,                idotless,              bar                   ] };
     57     key <AD09> { [  o,               O,                oe,                    OE                    ] };
     58     key <AD10> { [  p,               P,                dead_horn,             dead_hook             ] };
     59     key <AD11> { [  aring,           Aring,            dead_doubleacute,      dead_abovering        ] };
     60     key <AD12> { [  dead_diaeresis,  dead_circumflex,  dead_tilde,            dead_macron           ] };
     61 
     62     key <AC01> { [  a,               A,                schwa,                 SCHWA                 ] };
     63     key <AC02> { [  s,               S,                ssharp,                U1E9E                 ] };
     64     key <AC03> { [  d,               D,                eth,                   ETH                   ] };
     65     key <AC04> { [  f,               F,                f,                     F                     ] };
     66     key <AC05> { [  g,               G,                g,                     G                     ] };
     67     key <AC06> { [  h,               H,                h,                     H                     ] };
     68     key <AC07> { [  j,               J,                j,                     J                     ] };
     69     key <AC08> { [  k,               K,                kra,                   dead_greek            ] };
     70     key <AC09> { [  l,               L,                dead_stroke,           dead_currency         ] };
     71     key <AC10> { [  odiaeresis,      Odiaeresis,       oslash,                Oslash                ] };
     72     key <AC11> { [  adiaeresis,      Adiaeresis,       ae,                    AE                    ] };
     73     key <BKSL> { [  apostrophe,      asterisk,         dead_caron,            dead_breve            ] };
     74 
     75     key <LSGT> { [  less,            greater,          bar,                   NoSymbol              ] };
     76     key <AB01> { [  z,               Z,                ezh,                   EZH                   ] };
     77     key <AB02> { [  x,               X,                multiply,              periodcentered        ] };
     78     key <AB03> { [  c,               C,                c,                     C                     ] };
     79     key <AB04> { [  v,               V,                v,                     V                     ] };
     80     key <AB05> { [  b,               B,                b,                     B                     ] };
     81     key <AB06> { [  n,               N,                eng,                   ENG                   ] };
     82     key <AB07> { [  m,               M,                mu,                    emdash                ] };
     83     key <AB08> { [  comma,           semicolon,        rightsinglequotemark,  leftsinglequotemark   ] };
     84     key <AB09> { [  period,          colon,            dead_belowdot,         dead_abovedot         ] };
     85     key <AB10> { [  minus,           underscore,       endash,                dead_belowcomma       ] };
     86 
     87     key <SPCE> { [  space,           space,            space,                 U202F                 ] };
     88 
     89     include "kpdl(comma)"
     90     include "level3(ralt_switch)"
     91 };
     92 
     93 partial alphanumeric_keys
     94 xkb_symbols "winkeys" {
     95 
     96     include "fi(kotoistus)"
     97 
     98     name[Group1]="Finnish (Windows)";
     99 
    100     include "eurosign(5)"
    101 };
    102 
    103 hidden partial alphanumeric_keys
    104 xkb_symbols "fi" {
    105 
    106     // Classic Finnish keyboard layout with dead keys
    107 
    108     key <TLDE> { [  section,         onehalf,          onequarter,            threequarters         ] };
    109     key <AE01> { [  1,               exclam,           exclamdown,            onesuperior           ] };
    110     key <AE02> { [  2,               quotedbl,         at,                    twosuperior           ] };
    111     key <AE03> { [  3,               numbersign,       sterling,              threesuperior         ] };
    112     key <AE04> { [  4,               currency,         dollar,                cent                  ] };
    113     key <AE05> { [  5,               percent,          EuroSign,              masculine             ] };
    114     key <AE06> { [  6,               ampersand,        yen,                   ordfeminine           ] };
    115     key <AE07> { [  7,               slash,            braceleft,             plusminus             ] };
    116     key <AE08> { [  8,               parenleft,        bracketleft,           less                  ] };
    117     key <AE09> { [  9,               parenright,       bracketright,          greater               ] };
    118     key <AE10> { [  0,               equal,            braceright,            degree                ] };
    119     key <AE11> { [  plus,            question,         backslash,             questiondown          ] };
    120     key <AE12> { [  dead_acute,      dead_grave,       dead_cedilla,          dead_ogonek           ] };
    121 
    122     key <AD01> { [  q,               Q,                q,                     Q                     ] };
    123     key <AD02> { [  w,               W,                w,                     W                     ] };
    124     key <AD03> { [  e,               E,                EuroSign,              cent                  ] };
    125     key <AD04> { [  r,               R,                registered,            NoSymbol              ] };
    126     key <AD05> { [  t,               T,                thorn,                 THORN                 ] };
    127     key <AD06> { [  y,               Y,                y,                     Y                     ] };
    128     key <AD07> { [  u,               U,                u,                     U                     ] };
    129     key <AD08> { [  i,               I,                idotless,              bar                   ] };
    130     key <AD09> { [  o,               O,                o,                     O                     ] };
    131     key <AD10> { [  p,               P,                paragraph,             NoSymbol              ] };
    132     key <AD11> { [  aring,           Aring,            oe,                    OE                    ] };
    133     key <AD12> { [  dead_diaeresis,  dead_circumflex,  dead_tilde,            dead_caron            ] };
    134 
    135     key <AC01> { [  a,               A,                schwa,                 SCHWA                 ] };
    136     key <AC02> { [  s,               S,                scaron,                Scaron                ] };
    137     key <AC03> { [  d,               D,                eth,                   ETH                   ] };
    138     key <AC04> { [  f,               F,                f,                     F                     ] };
    139     key <AC05> { [  g,               G,                eng,                   ENG                   ] };
    140     key <AC06> { [  h,               H,                h,                     H                     ] };
    141     key <AC07> { [  j,               J,                j,                     J                     ] };
    142     key <AC08> { [  k,               K,                kra,                   dead_greek            ] };
    143     key <AC09> { [  l,               L,                dead_stroke,           dead_currency         ] };
    144     key <AC10> { [  odiaeresis,      Odiaeresis,       oslash,                Oslash                ] };
    145     key <AC11> { [  adiaeresis,      Adiaeresis,       ae,                    AE                    ] };
    146     key <BKSL> { [  apostrophe,      asterisk,         dead_caron,            dead_breve            ] };
    147 
    148     key <LSGT> { [  less,            greater,          bar,                   brokenbar             ] };
    149     key <AB01> { [  z,               Z,                zcaron,                Zcaron                ] };
    150     key <AB02> { [  x,               X,                multiply,              division              ] };
    151     key <AB03> { [  c,               C,                copyright,             cent                  ] };
    152     key <AB04> { [  v,               V,                v,                     V                     ] };
    153     key <AB05> { [  b,               B,                ssharp,                U1E9E                 ] };
    154     key <AB06> { [  n,               N,                ntilde,                Ntilde                ] };
    155     key <AB07> { [  m,               M,                mu,                    NoSymbol              ] };
    156     key <AB08> { [  comma,           semicolon,        dead_cedilla,          dead_ogonek           ] };
    157     key <AB09> { [  period,          colon,            periodcentered,        notsign               ] };
    158     key <AB10> { [  minus,           underscore,       hyphen,                dead_macron           ] };
    159 
    160     key <SPCE> { [  space,           space,            space,                 U202F                 ] };
    161 
    162     include "kpdl(comma)"
    163     include "level3(ralt_switch)"
    164 };
    165 
    166 partial alphanumeric_keys
    167 xkb_symbols "classic" {
    168 
    169     include "fi(fi)"
    170 
    171     name[Group1]="Finnish (classic)";
    172 };
    173 
    174 partial alphanumeric_keys
    175 xkb_symbols "nodeadkeys" {
    176 
    177     // Classic Finnish keyboard layout without dead keys
    178 
    179     include "fi(fi)"
    180 
    181     name[Group1]="Finnish (classic, no dead keys)";
    182 
    183     key <AE12> { [  acute,           grave,            cedilla,               ogonek                ] };
    184     key <AD12> { [  diaeresis,       asciicircum,      asciitilde,            caron                 ] };
    185     key <AC09> { [  l,               L,                l,                     L                     ] };
    186     key <BKSL> { [  apostrophe,      asterisk,         caron,                 breve                 ] };
    187     key <AB08> { [  comma,           semicolon,        cedilla,               ogonek                ] };
    188     key <AB10> { [  minus,           underscore,       hyphen,                macron                ] };
    189 };
    190 
    191 partial alphanumeric_keys
    192 xkb_symbols "smi" {
    193 
    194     // Describes the differences between a Norwegian Northern Sami
    195     // (keyboard with dead key support) and a Swedish/Finnish Sami
    196     // keyboard according to the specs at:
    197     // http://www.hum.uit.no/a/trond/se-lat9-sefi-keys.html
    198 
    199     include "no(smi)"
    200 
    201     name[Group1]="Northern Saami (Finland)";
    202 
    203     key <AC10> { [  odiaeresis,      Odiaeresis,       oslash,                Oslash                ] };
    204     key <AC11> { [  adiaeresis,      Adiaeresis,       ae,                    AE                    ] };
    205 };
    206 
    207 partial alphanumeric_keys
    208 xkb_symbols "mac" {
    209 
    210     // Macintosh keyboard for Finland based on Swedish(Macintosh) keyboard
    211 
    212     include "se(mac)"
    213 
    214     name[Group1]="Finnish (Macintosh)";
    215 };
    216 
    217 partial alphanumeric_keys
    218 xkb_symbols "sun_type6" {
    219     // #HW-SPECIFIC
    220 
    221     // Sun Type 6/7 keyboard for Finland
    222 
    223     include "sun_vndr/fi(sun_type6)"
    224 
    225     name[Group1]="Finnish";
    226 };
    227 
    228 partial
    229 xkb_symbols "das" {
    230 
    231     // DAS layout for typing Finnish designed by Cristian Seres (cseres at iki.fi).
    232     // More information about DAS is available at http://c.seres.fi/DAS_en.html.
    233     // This xkeyboard layout was created by Joel Lehtonen (joel.lehtonen at iki.fi),
    234     // and he released it to public domain.
    235 
    236     name[Group1]="Finnish (DAS)";
    237 
    238     key <TLDE> { [  backslash,       dead_tilde                                                     ] };
    239     key <AE01> { [  1,               exclam,           section                                      ] };
    240     key <AE02> { [  2,               quotedbl,         twosuperior                                  ] };
    241     key <AE03> { [  3,               at,               sterling                                     ] };
    242     key <AE04> { [  4,               EuroSign,         dollar                                       ] };
    243     key <AE05> { [  5,               percent,          onehalf                                      ] };
    244     key <AE06> { [  6,               ampersand                                                      ] };
    245     key <AE07> { [  7,               braceleft                                                      ] };
    246     key <AE08> { [  8,               parenleft,        bracketleft                                  ] };
    247     key <AE09> { [  9,               parenright,       bracketright                                 ] };
    248     key <AE10> { [  0,               braceright,       degree                                       ] };
    249     key <AE11> { [  plus,            question,         currency                                     ] };
    250     key <AE12> { [  equal,           numbersign                                                     ] };
    251 
    252     key <AD01> { [  p,               P,                Greek_pi                                     ] };
    253     key <AD02> { [  h,               H                                                              ] };
    254     key <AD03> { [  r,               R,                dead_circumflex                              ] };
    255     key <AD04> { [  k,               K,                dead_caron                                   ] };
    256     key <AD05> { [  less,            greater                                                        ] };
    257     key <AD06> { [  apostrophe,      bar                                                            ] };
    258     key <AD07> { [  w,               W                                                              ] };
    259     key <AD08> { [  u,               U                                                              ] };
    260     key <AD09> { [  y,               Y                                                              ] };
    261     key <AD10> { [  b,               B                                                              ] };
    262     key <AD11> { [  q,               Q                                                              ] };
    263     key <AD12> { [  z,               Z,                zcaron,                Zcaron                ] };
    264 
    265     key <AC01> { [  s,               S,                scaron,                Scaron                ] };
    266     key <AC02> { [  l,               L,                dead_acute                                   ] };
    267     key <AC03> { [  n,               N,                dead_grave                                   ] };
    268     key <AC04> { [  t,               T,                dead_diaeresis                               ] };
    269     key <AC05> { [  v,               V                                                              ] };
    270     key <AC06> { [  g,               G                                                              ] };
    271     key <AC07> { [  a,               A                                                              ] };
    272     key <AC08> { [  i,               I                                                              ] };
    273     key <AC09> { [  o,               O                                                              ] };
    274     key <AC10> { [  e,               E                                                              ] };
    275     key <AC11> { [  c,               C                                                              ] };
    276     key <BKSL> { [  asterisk,        slash                                                          ] };
    277 
    278     key <LSGT> { [  f,               F                                                              ] };
    279     key <AB01> { [  x,               X                                                              ] };
    280     key <AB02> { [  d,               D                                                              ] };
    281     key <AB03> { [  m,               M,                mu                                           ] };
    282     key <AB04> { [  j,               J                                                              ] };
    283     key <AB05> { [  aring,           Aring                                                          ] };
    284     key <AB06> { [  odiaeresis,      Odiaeresis,       oe,                    OE                    ] };
    285     key <AB07> { [  adiaeresis,      Adiaeresis,       ae,                    AE                    ] };
    286     key <AB08> { [  comma,           semicolon                                                      ] };
    287     key <AB09> { [  period,          colon                                                          ] };
    288     key <AB10> { [  minus,           underscore,       U2013,                 dead_macron           ] };
    289 
    290     key <SPCE> { [  space,           space,            space,                 nobreakspace          ] };
    291 
    292     include "kpdl(comma)"
    293     include "level3(ralt_switch)"
    294 };
    295 
    296 partial alphanumeric_keys
    297 xkb_symbols "fidvorak" {
    298 
    299     // Dvorak keyboard layout for use with Finnish by Pekka Oinas.
    300     //
    301     // Dedicated keys for  and  by utilizing the extra LSGT key found on Finnish keyboards
    302     // and by moving colon and semicolon behind shift-modifiers on comma and period.
    303     // Less and greater than symbols moved behind 3rd level modifiers on comma and period.
    304     // Includes an assortment of dead keys but was not created with them in mind.
    305 
    306     name[Group1]="Finnish (Dvorak)";
    307 
    308     key <TLDE> { [  grave,           asciitilde,       dead_grave,            dead_tilde            ] };
    309     key <AE01> { [  1,               exclam,           NoSymbol,              exclamdown            ] };
    310     key <AE02> { [  2,               at,               cent,                  rightdoublequotemark  ] };
    311     key <AE03> { [  3,               numbersign,       sterling                                     ] };
    312     key <AE04> { [  4,               dollar,           currency                                     ] };
    313     key <AE05> { [  5,               percent,          permille,              leftdoublequotemark   ] };
    314     key <AE06> { [  6,               asciicircum,      dead_circumflex,       doublelowquotemark    ] };
    315     key <AE07> { [  7,               ampersand,        section,               singlelowquotemark    ] };
    316     key <AE08> { [  8,               asterisk                                                       ] };
    317     key <AE09> { [  9,               parenleft                                                      ] };
    318     key <AE10> { [  0,               parenright,       degree,                dead_abovering        ] };
    319     key <AE11> { [  bracketleft,     braceleft                                                      ] };
    320     key <AE12> { [  bracketright,    braceright                                                     ] };
    321 
    322     key <AD01> { [  apostrophe,      quotedbl,         dead_acute,            dead_doubleacute      ] };
    323     key <AD02> { [  comma,           semicolon,        less,                  leftsinglequotemark   ] };
    324     key <AD03> { [  period,          colon,            greater                                      ] };
    325     key <AD04> { [  p,               P                                                              ] };
    326     key <AD05> { [  y,               Y,                yen                                          ] };
    327     key <AD06> { [  f,               F                                                              ] };
    328     key <AD07> { [  g,               G                                                              ] };
    329     key <AD08> { [  c,               C                                                              ] };
    330     key <AD09> { [  r,               R                                                              ] };
    331     key <AD10> { [  l,               L,                notsign                                      ] };
    332     key <AD11> { [  slash,           question,         NoSymbol,              questiondown          ] };
    333     key <AD12> { [  equal,           plus                                                           ] };
    334 
    335     key <AC01> { [  a,               A,                schwa,                 SCHWA                 ] };
    336     key <AC02> { [  o,               O,                aring,                 Aring                 ] };
    337     key <AC03> { [  e,               E,                EuroSign                                     ] };
    338     key <AC04> { [  u,               U,                udiaeresis,            Udiaeresis            ] };
    339     key <AC05> { [  i,               I,                idotless,              Iabovedot             ] };
    340     key <AC06> { [  d,               D,                eth,                   ETH                   ] };
    341     key <AC07> { [  h,               H                                                              ] };
    342     key <AC08> { [  t,               T,                thorn,                 THORN                 ] };
    343     key <AC09> { [  n,               N,                eng,                   ENG                   ] };
    344     key <AC10> { [  s,               S,                ssharp,                U1E9E                 ] };
    345     key <AC11> { [  minus,           underscore,       endash,                emdash                ] };
    346     key <BKSL> { [  backslash,       bar,              dead_caron,            dead_breve            ] };
    347 
    348     key <LSGT> { [  adiaeresis,      Adiaeresis,       ae,                    AE                    ] };
    349     key <AB01> { [  odiaeresis,      Odiaeresis,       dead_diaeresis,        dead_macron           ] };
    350     key <AB02> { [  q,               Q,                oslash,                Oslash                ] };
    351     key <AB03> { [  j,               J                                                              ] };
    352     key <AB04> { [  k,               K,                kra                                          ] };
    353     key <AB05> { [  x,               X,                multiply,              periodcentered        ] };
    354     key <AB06> { [  b,               B,                hyphen                                       ] };
    355     key <AB07> { [  m,               M,                mu,                    emdash                ] };
    356     key <AB08> { [  w,               W                                                              ] };
    357     key <AB09> { [  v,               V                                                              ] };
    358     key <AB10> { [  z,               Z,                ezh,                   EZH                   ] };
    359 
    360     include "level3(ralt_switch)"
    361 };
    362