X11 – Where Are Default Compose-Key Bindings Stored

compose-keyx11

I recently discovered the compose key. It's wonderful to type Compose-> and get a Unicode right-arrow (→).

I know I can add my own, but where can I find a complete chart of the defaults?


The largest list I could find is this one at freedesktop.org. However, it seems imperfect too: For example, it lists a combination ComposeFU as producing "reversed hand with middle finger extended", which—quite disappointingly—doesn't work for me…

Is there somewhere these are stored on my actual live system?

Best Answer

You can find the compose table used by your system at the same place programs do: it's a text file. To locate it, you can run something like

strace xterm -e true 2>&1 | grep -i compose

For example, the relevant lines on Debian wheezy are:

open("/home/gilles/.XCompose", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/X11/locale/compose.dir", O_RDONLY) = 5
open("/usr/share/X11/locale/en_US.UTF-8/Compose", O_RDONLY) = 5

This demonstrates several things:

  • To define your own table, put it in the file ~/.XCompose. Actually, you can override this location by setting the environment variable XCOMPOSEFILE.
  • The location of the system table is listed in /usr/share/X11/locale/compose.dir. This file can list different tables for different locales.

ComposeFU is a recent addition, the corresponding character is itself a recent addition to Unicode.

Related Question