// Keyboard layouts for Finland. // SFS 5966 / Kotoistus keymap created by Troy Korjuslommi // Classic keymap based on traditional by Marko Myllynen // Eliminate deadkeys alternative sent by Linus Torvalds default partial alphanumeric_keys xkb_symbols "kotoistus" { // Official keymap for Finland based on SFS 5966:2019 standard // // This keymap implements all the functionality of Annex 1 // of the standard and additionally defines the following to // allow entering these characters with keyboards without LSGT. // // AE08+4 : U+003C LESS-THAN SIGN (less) // AE09+4 : U+003E GREATER-THAN SIGN (greater) // AD08+4 : U+007C VERTICAL LINE (bar) // // Annex 3 of the standard is implemented in fi_FI.UTF-8/Compose. // // This keymap implements regular space in position "A-3" of the // standard and implements NARROW NO-BREAK SPACE (U+202F) in A-4. // // The following definitions are also included to allow entering // Greek letters and currency symbols with the libX11 sequences. // // AC08+4 : dead_greek // AC09+4 : dead_currency name[Group1]="Finnish"; key { [ section, onehalf, dead_stroke, NoSymbol ] }; key { [ 1, exclam, NoSymbol, exclamdown ] }; key { [ 2, quotedbl, at, rightdoublequotemark ] }; key { [ 3, numbersign, sterling, guillemotright ] }; key { [ 4, currency, dollar, guillemotleft ] }; key { [ 5, percent, permille, leftdoublequotemark ] }; key { [ 6, ampersand, singlelowquotemark, doublelowquotemark ] }; key { [ 7, slash, braceleft, NoSymbol ] }; key { [ 8, parenleft, bracketleft, less ] }; key { [ 9, parenright, bracketright, greater ] }; key { [ 0, equal, braceright, degree ] }; key { [ plus, question, backslash, questiondown ] }; key { [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; key { [ q, Q, q, Q ] }; key { [ w, W, w, W ] }; key { [ e, E, EuroSign, NoSymbol ] }; key { [ r, R, r, R ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, y, Y ] }; key { [ u, U, u, U ] }; key { [ i, I, idotless, bar ] }; key { [ o, O, oe, OE ] }; key { [ p, P, dead_horn, dead_hook ] }; key { [ aring, Aring, dead_doubleacute, dead_abovering ] }; key { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_macron ] }; key { [ a, A, schwa, SCHWA ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, f, F ] }; key { [ g, G, g, G ] }; key { [ h, H, h, H ] }; key { [ j, J, j, J ] }; key { [ k, K, kra, dead_greek ] }; key { [ l, L, dead_stroke, dead_currency ] }; key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ apostrophe, asterisk, dead_caron, dead_breve ] }; key { [ less, greater, bar, NoSymbol ] }; key { [ z, Z, ezh, EZH ] }; key { [ x, X, multiply, periodcentered ] }; key { [ c, C, c, C ] }; key { [ v, V, v, V ] }; key { [ b, B, b, B ] }; key { [ n, N, eng, ENG ] }; key { [ m, M, mu, emdash ] }; key { [ comma, semicolon, rightsinglequotemark, leftsinglequotemark ] }; key { [ period, colon, dead_belowdot, dead_abovedot ] }; key { [ minus, underscore, endash, dead_belowcomma ] }; key { [ space, space, space, U202F ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "winkeys" { include "fi(kotoistus)" name[Group1]="Finnish (Windows)"; include "eurosign(5)" }; hidden partial alphanumeric_keys xkb_symbols "fi" { // Classic Finnish keyboard layout with dead keys key { [ section, onehalf, onequarter, threequarters ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, quotedbl, at, twosuperior ] }; key { [ 3, numbersign, sterling, threesuperior ] }; key { [ 4, currency, dollar, cent ] }; key { [ 5, percent, EuroSign, masculine ] }; key { [ 6, ampersand, yen, ordfeminine ] }; key { [ 7, slash, braceleft, plusminus ] }; key { [ 8, parenleft, bracketleft, less ] }; key { [ 9, parenright, bracketright, greater ] }; key { [ 0, equal, braceright, degree ] }; key { [ plus, question, backslash, questiondown ] }; key { [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; key { [ q, Q, q, Q ] }; key { [ w, W, w, W ] }; key { [ e, E, EuroSign, cent ] }; key { [ r, R, registered, NoSymbol ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, y, Y ] }; key { [ u, U, u, U ] }; key { [ i, I, idotless, bar ] }; key { [ o, O, o, O ] }; key { [ p, P, paragraph, NoSymbol ] }; key { [ aring, Aring, oe, OE ] }; key { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] }; key { [ a, A, schwa, SCHWA ] }; key { [ s, S, scaron, Scaron ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, f, F ] }; key { [ g, G, eng, ENG ] }; key { [ h, H, h, H ] }; key { [ j, J, j, J ] }; key { [ k, K, kra, dead_greek ] }; key { [ l, L, dead_stroke, dead_currency ] }; key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ apostrophe, asterisk, dead_caron, dead_breve ] }; key { [ less, greater, bar, brokenbar ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ x, X, multiply, division ] }; key { [ c, C, copyright, cent ] }; key { [ v, V, v, V ] }; key { [ b, B, ssharp, U1E9E ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, mu, NoSymbol ] }; key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; key { [ period, colon, periodcentered, notsign ] }; key { [ minus, underscore, hyphen, dead_macron ] }; key { [ space, space, space, U202F ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "classic" { include "fi(fi)" name[Group1]="Finnish (classic)"; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Classic Finnish keyboard layout without dead keys include "fi(fi)" name[Group1]="Finnish (classic, no dead keys)"; key { [ acute, grave, cedilla, ogonek ] }; key { [ diaeresis, asciicircum, asciitilde, caron ] }; key { [ l, L, l, L ] }; key { [ apostrophe, asterisk, caron, breve ] }; key { [ comma, semicolon, cedilla, ogonek ] }; key { [ minus, underscore, hyphen, macron ] }; }; partial alphanumeric_keys xkb_symbols "smi" { // Describes the differences between a Norwegian Northern Sami // (keyboard with dead key support) and a Swedish/Finnish Sami // keyboard according to the specs at: // http://www.hum.uit.no/a/trond/se-lat9-sefi-keys.html include "no(smi)" name[Group1]="Northern Saami (Finland)"; key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; }; partial alphanumeric_keys xkb_symbols "mac" { include "se(mac)" name[Group1]="Finnish (Macintosh)"; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { // #HW-SPECIFIC include "sun_vndr/fi(sun_type6)" name[Group1]="Finnish"; }; partial xkb_symbols "das" { // DAS layout for typing Finnish designed by Cristian Seres (cseres at iki.fi). // More information about DAS is available at http://c.seres.fi/DAS_en.html. // This xkeyboard layout was created by Joel Lehtonen (joel.lehtonen at iki.fi), // and he released it to public domain. name[Group1]="Finnish (DAS)"; key { [ backslash, dead_tilde ] }; key { [ 1, exclam, section ] }; key { [ 2, quotedbl, twosuperior ] }; key { [ 3, at, sterling ] }; key { [ 4, EuroSign, dollar ] }; key { [ 5, percent, onehalf ] }; key { [ 6, ampersand ] }; key { [ 7, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, braceright, degree ] }; key { [ plus, question, currency ] }; key { [ equal, numbersign ] }; key { [ p, P, Greek_pi ] }; key { [ h, H ] }; key { [ r, R, dead_circumflex ] }; key { [ k, K, dead_caron ] }; key { [ less, greater ] }; key { [ apostrophe, bar ] }; key { [ w, W ] }; key { [ u, U ] }; key { [ y, Y ] }; key { [ b, B ] }; key { [ q, Q ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ s, S, scaron, Scaron ] }; key { [ l, L, dead_acute ] }; key { [ n, N, dead_grave ] }; key { [ t, T, dead_diaeresis ] }; key { [ v, V ] }; key { [ g, G ] }; key { [ a, A ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ e, E ] }; key { [ c, C ] }; key { [ asterisk, slash ] }; key { [ f, F ] }; key { [ x, X ] }; key { [ d, D ] }; key { [ m, M, mu ] }; key { [ j, J ] }; key { [ aring, Aring ] }; key { [ odiaeresis, Odiaeresis, oe, OE ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore, U2013, dead_macron ] }; key { [ space, space, space, nobreakspace ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "fidvorak" { // Dvorak keyboard layout for use with Finnish by Pekka Oinas. // // Dedicated keys for Ä and Ö by utilizing the extra LSGT key found on Finnish keyboards // and by moving colon and semicolon behind shift-modifiers on comma and period. // Less and greater than symbols moved behind 3rd level modifiers on comma and period. // Includes an assortment of dead keys but was not created with them in mind. name[Group1]="Finnish (Dvorak)"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, NoSymbol, exclamdown ] }; key { [ 2, at, cent, rightdoublequotemark ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, dollar, currency ] }; key { [ 5, percent, permille, leftdoublequotemark ] }; key { [ 6, asciicircum, dead_circumflex, doublelowquotemark ] }; key { [ 7, ampersand, section, singlelowquotemark ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright, degree, dead_abovering ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ apostrophe, quotedbl, dead_acute, dead_doubleacute ] }; key { [ comma, semicolon, less, leftsinglequotemark ] }; key { [ period, colon, greater ] }; key { [ p, P ] }; key { [ y, Y, yen ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ c, C ] }; key { [ r, R ] }; key { [ l, L, notsign ] }; key { [ slash, question, NoSymbol, questiondown ] }; key { [ equal, plus ] }; key { [ a, A, schwa, SCHWA ] }; key { [ o, O, aring, Aring ] }; key { [ e, E, EuroSign ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, idotless, Iabovedot ] }; key { [ d, D, eth, ETH ] }; key { [ h, H ] }; key { [ t, T, thorn, THORN ] }; key { [ n, N, eng, ENG ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ minus, underscore, endash, emdash ] }; key { [ backslash, bar, dead_caron, dead_breve ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ odiaeresis, Odiaeresis, dead_diaeresis, dead_macron ] }; key { [ q, Q, oslash, Oslash ] }; key { [ j, J ] }; key { [ k, K, kra ] }; key { [ x, X, multiply, periodcentered ] }; key { [ b, B, hyphen ] }; key { [ m, M, mu, emdash ] }; key { [ w, W ] }; key { [ v, V ] }; key { [ z, Z, ezh, EZH ] }; include "level3(ralt_switch)" };