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 <[email protected]> - 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)

