#878087 qemu-system-x86: xmodmap + qemu, keyboard settings is ignored

Package:
qemu-system-x86
Source:
qemu
Description:
QEMU full system emulation binaries (x86)
Submitter:
Antonio
Date:
2017-10-29 16:09:07 UTC
Severity:
normal
#878087#5
Date:
2017-10-09 17:34:44 UTC
From:
To:
Dear Maintainer,

if you modify some keys with xmodmap (eg: xmodmap -e "keycode
91=Delete" -e "keycode 90=Insert" -e "keycode 79=Home" -e "keycode
87=End" -e "keycode 81=Prior" -e "keycode 89=Next")
and then run qemu-system-x86_64, keyboard setting (-k it) is ignored
and en-us keyboard is set as default.

With previous version 1:2.10.0+dfsg-1 there was no problem.

Thanks

#878087#10
Date:
2017-10-09 18:02:43 UTC
From:
To:
09.10.2017 20:34, Antonio wrote:

It looks like this is a wontfix bug. The "problem" seems to be that
more recent ui frontends (sdl2 which is enabled in -2 compared to
obsolete sdl1 used before, and gtk to be enabled later), keyboard
handling has been reworked, and qemu now always uses raw keycodes,
not preprocessed by modmap and other tools, with guest being able
to see all keyboard keys.  You have to use xmodmap INSIDE the guest
to achieve what you want.

Thanks,

/mjt

#878087#15
Date:
2017-10-29 15:59:56 UTC
From:
To:
29.10.2017 18:54, Michael Gold wrote:
[]

For all modern UI types (introduced in upstream qemu in recent years),
-k option is ignored because the way qemu now handles key mapping is
entirely different, it is like bypass mechanism, and the upstream says
it is THE ONLY sane way to handle this, so no workaround is intended.
For multiple years they've been telling us users to stop using -k.

I for one never used it at all so I've no idea, but each time I tried
to reproduce various bugreports with context of keyboard handling,
there has always been a solution - removing -k helped.

Yes I agree, usage of -k with UI types which does not support it should
give a warning (definitely not an error but that's just my opinion).

/mjt

#878087#20
Date:
2017-10-29 15:54:12 UTC
From:
To:
I've recently been affected by this as well, and don't find the proposed
solution practical.  It assumes the guest is also using X11 or otherwise
allows the desired remapping, but in many guest OSes the ability doesn't
exist or is restricted (only allowing for "popular" layouts/tweaks).  If
the ability is there, but there's no persistent or network-mounted disk,
the mapping will need to be redone at every boot, which may be difficult
with the "wrong" layout.  If I share an image with someone else, they'll
need to find some way to reset it to a more familiar layout.

The ability to "hide" host settings such that people can use a common OS
image is a very useful feature of qemu.  I'd like to see it work for the
keyboard layout, as it does for other things: network hardware/settings,
CPU type/count, etc.  Is any workaround for this known?  And does the -k
option have any effect now?  My preference is to have it work as before;
but if it will have no effect, it should raise an error or be removed.