In older versions of openSUSE (at least up until 13.2), I was able to type Umlaute or accents, such as ä, ü, è, on a US keyboard by pressing the right SHIFT key and then pressing the right CTRL key, which corresponded to “Compose”. Then I could for example press " followed by u to get ü. In openSUSE 15.2, this does not seem to be activated by default. I can actually achieve something similar by entering in a terminal:
setxkbmap -option compose:rctrl
I could also add this to a login script so I don’t have to type it every time I start a new session. However, it is still not quite the same
as in older versions of openSUSE where I had to press rshift and then while keeping it pressed I had to press rctrl to enter compose mode (with setxkbmap as above it’s enough to just press rctrl).
In older versions of openSUSE it looks like the compose key was set at bootup even before the X server would start. I’m not sure whether this is related, but file /etc/sysconfig/keyboard contained in older versions the section:
# Compose tables to be loaded.
# Compose tables are good for producing characters, which can not
# be directly input from your keyboard, such as characters with
# accents, currency signs, ...
# Please read /usr/share/doc/packages/kbd/README.SuSE for an
# You may leave this variable empty (default compose table from kernel
# or KEYTABLE will be used then -- most keyboard maps don't have a
# compose table, though)
# More than one compose table can be given. For a selection of possible
# tables see /usr/share/kbd/keymaps/include/compose.*
# You can give more than one compose table, but only the last one will
# determine the compose combinations.
# The word "clear" has a special meaning:
# Your compose table will be cleared, before more compose symbols are
# The files compose.winkeys and shiftctrl may be used to map the
# <compose> key to the W*n menu key and Shift-Ctrl, respectively,
# on a PC keyboard.
# A typical setting for Latin1 users (with a PC keyboard) may be
# COMPOSETABLE="clear winkeys shiftctrl latin1.add"
# For latin2, this would be
# COMPOSETABLE="clear winkeys shiftctrl latin2"
# A typical setting for sb. with a character set, where a matching
# compose table is missing (but with a PC keyboard), would be
# COMPOSETABLE="winkeys shiftctrl"
and there was a folder /usr/share/kbd/keymaps/include, which contained compose.* files such as compose.shiftctrl:
# Map the compose key to Shift-Ctrl and Ctrl-Shift
shift keycode 29 = Compose
control keycode 42 = Compose
control keycode 54 = Compose
shift keycode 97 = Compose
#keycode 58 = Caps_Lock
In openSUSE 15.2, the section about “COMPOSETABLE” is not present in /etc/sysconfig/keyboard and there is no folder named /usr/share/kbd/keymaps/include. I added the section manually to /etc/sysconfig/keyboard and I also copied /usr/share/kbd/keymaps/include from an older installation, rebooted the system, but rshift-rctrl would still not act as Compose (unless of course I use
setxkbmap). I also tried using in /etc/sysconfig/keyboard:
COMPOSETABLE="clear shiftctrl latin1.add"
but it still has no effect. So, my question is whether there is something that I can change at bootup to map rshift+rctrl to Compose like it used to be in older versions or whether my only option is the use of
setxkbmap (with not quite the same behavior). I also note that this is independent of the desktop environment as I have tried it out in LXDE and TDE.
To provide some background: Sun workstation keyboards used to have an actual Compose key, which was located on the right side of the keyboard (next to where rctrl is now). By pressing it a small LED would lit up indicating that you could now type special characters by combining for example " + u to get ü. Since Linux is used on regular PCs with regular keyboards, rshift+rctrl became the new “Compose” key.