Kotoistus - Finnish International Keyboard Layout

The keyboard layout described here was approved as a Finnish standard in 2008 [SFS standard 5966].

Files at the Kotoistus project site, describing the new Finnish keyboard layout:

Implementation for X Windows (Xkb) / Linux

You should use a Finnish keyboard for testing.

I have verified the new layout against the list of Mandatory Precompositions.

Items which caused debate:

Some items are under discussion.

  1. Space
  2. Minus/dash characters
  3. Compose file for Finnish
  4. VoidSymbol vs. NoSymbol
  5. AltGr vs. Ctrl-Alt

Stroke key:

The stroke dead-key is an exception, because the character does not appear in decomposed form (it doesn't have a corresponding Unicode character). All other dead keys do. Because a stroke dead letter is needed to generate the various characters with a stroke, the Kotoistus project added one. The dead_stroke symbol must be defined in keysymdef.h, in order for it to be usable. I have chosen to use UFE63, an unused position, as the value for dead_stroke. This has now been approved for a future version of X, version 7.0.7. Once that version is widely deployed, the UFE63 entries in the symbols/fi can be changed to "dead_stroke." In any case, since it's not in use in the current version either, we can use it without creating a conflict.

The Kotoistus keyboard doesn't specify a compose key. I have defined the right windows key as the compose key, for convenience. You can use it as follows (in the example below, we enter "compose + +" which produces the '#' character; and "compose / d" which produces d with a stroke):
#: Press "compose" key, then "+" twice. You get "#" on the screen.
d with stroke: Press "compose" key, then "/" and release both keys. (you can actually leave "compose" key pressed). Then press "d." You get d with a stroke on the screen.


In order to test the new keyboard layout, we need to make some changes to all keys with a stroke. We do this by modifying the following file:
The changes are listed in the file below:
You can also replace the entire file with the contents of the following file:

Gnome applications don't see changes made in the Compose file, unless the IM (Input Method) module has been set to xim. Run the following command (if you are using bash) before you run setxkbdmap:
export GTK_IM_MODULE=xim
Start the program you use for testing (xev, firefox, oowriter etc.) only after running the previous command, so that the application knows to use xim as the IM module.

In order to test the settings, append the contents of this file to one of the following files (if symbols/pc/fi exists, it is probably the default; otherwise use symbols/fi):
Then run this command:
setxkbdmap 'fi(kotoistus)'

In order to see the characters on the screen, the application you use must know how to handle UTF-8 data. The character you want to generate must also be found in the Compose file. Make sure that your locale uses a UTF-8 encoding.

  • xev: The best program for testing, as it tells you each key stroke, and also what character is generated by name.
  • oowriter2 (Open Office 2.0 document editor): Works perfectly, as far as I can see.
  • Firefox: Works perfectly, as far as I can see. Important for editing data in web forms.
  • Terminals:
    xterm: Works. Start with "xterm -lc", to use your current locale (not needed if "XTerm*locale: true" is in effect; set e.g. in the ~/.Xresources file).
    gnome-terminal: Works.
  • gedit: Works.

Common notes:
X programs must have a fontset defined which contains the characters being tested. Most programs seem to handle picking a Unicode (iso10646-1) font automatically, upon noticing that you have a UTF-8 locale in use.

This page is maintained by Troy Korjuslommi.

Copyright 2008 Troy Korjuslommi. All rights reserved.