After upgrading my OpenSuSE Leap from 15.2 to 15.3, I found out that the Compose key (keycode: 135) was no longer working. In fact, xev no longer recognised it as Multi_key, but as NoSymbol:

KeyPress event, serial 40, synthetic NO, window 0x7800001,
    root 0x561, subw 0x0, time 8470151, (923,367), root:(923,396),
    state 0x10, keycode 135 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

NB: The key is really labeled Compose, as it's part of a Sun Type 7 keyboard. In the $XKB/keycodes/evdev file, I've got these two lines of code (of which the second one has been disabled by me, as it's for regular PC keyboards with Menu keys):

<COMP> = 135;
// alias <MENU> = <COMP>;

The $XKB/symbols/compose file has been upgraded with the following block:

partial modifier_keys
xkb_symbols "comp" {
    key <COMP>  { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };

The current setxkbmap config looks as follows:

╭─jacek@epica ~  
╰─➤  setxkbmap -print -verbose 10                                         127 ↵
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     de
variant:    pl
options:    compose:comp,terminate:ctrl_alt_bksp,altwin:meta_win,lv3:ralt_switch
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwertz)
types:      complete
compat:     complete
symbols:    pc+de(pl)+inet(evdev)+terminate(ctrl_alt_bksp)+altwin(meta_win)+level3(ralt_switch)+terminate(ctrl_alt_bksp)
geometry:   pc(pc105)
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwertz)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+de(pl)+inet(evdev)+terminate(ctrl_alt_bksp)+altwin(meta_win)+level3(ralt_switch)+terminate(ctrl_alt_bksp)"  };
        xkb_geometry  { include "pc(pc105)"     };

I can see the compose:comp option very clearly. So: What's wrong here?

1 Answer 1


OK, I've found the culprit myself: OpenSuSE's update service (resp. zypper) overwrites xkb config files, so that it's generally a poor idea to edit them yourself! You'll simply get your adaptations reverted with the next X11 update.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .