[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#994037: xkb-data: TWO_LEVEL is not available



Control: reassign -1 x11-xkb-utils 7.7+5
Control: retitle -1 x11-xkb-utils: xkbcomp fails with "X Error of failed request: BadValue" for XkbSetMap on specific config

On 2021-09-10 14:31:38 +0200, Vincent Lefevre wrote:
> cventin:~> xkbcomp -w 0 -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY
> Internal error:   Could not resolve keysym XF86BrightnessAuto
> Internal error:   Could not resolve keysym XF86DisplayOff
> [...]
> Internal error:   Could not resolve keysym XF86KbdLcdMenu4
> Internal error:   Could not resolve keysym XF86KbdLcdMenu5
> X Error of failed request:  BadValue (integer parameter out of range for operation)
>   Major opcode of failed request:  135 (XKEYBOARD)
>   Minor opcode of failed request:  9 (XkbSetMap)
>   Value in failed request:  0x166c0002
>   Serial number of failed request:  120
>   Current serial number in output stream:  126
> 
> The internal errors are unrelated. The real issue is the BadValue.
> If I change TWO_LEVEL to ONE_LEVEL, the error disappears (but I
> don't get the second level).
> 
> There is no such issue with xkb-data 2.29-2.

This was due to the default ralt_switch_multikey option in 2.29-2.
So, this seems to be more a bug of xkbcomp. In particular, the
error message is very cryptic, and I couldn't find any clue on
the web (except from users who obtained a similar error several
years ago, but this was eventually fixed in xkbcomp, like
<https://bugs.freedesktop.org/show_bug.cgi?id=45188>).

My problem is reproducible with:

zira:~> cat .xkb/keymap/custom
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete" };
        xkb_compat    { include "complete" };
        xkb_symbols   { include "pc+gb+level3(ralt_switch)+local" };
        xkb_geometry  { include "pc(pc105)" };
};

zira:~> cat .xkb/symbols/local
xkb_symbols "local" {
    key <RALT> {
        type = "TWO_LEVEL",
        symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
    };
};

zira:~> xkbcomp -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY
[unrelated warnings]
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  135 (XKEYBOARD)
  Minor opcode of failed request:  9 (XkbSetMap)
  Value in failed request:  0x166c0002
  Serial number of failed request:  120
  Current serial number in output stream:  126

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)


Reply to: