-
-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Layout xkb options are not cleared during propagation #8230
Comments
The keyboard layout switching is broken since R4.1. It is not working properly for me too.
|
Hi,
and
Even "variant" is set correctly now. I am still wondering though, why it toggles between "ru,us" and "us", this doesn't happen in |
Glad it helped. About your question of layout toggling: starting from at least R4.1 the toogle works in More info on this topic: |
This was happening for me too, when the +++ /usr/lib/qubes/qubes-keymap.sh 2023-07-09 15:00:38.085000000 +0200
@@ -21,7 +21,7 @@
fi
if [ -n "$KEYMAP_OPTIONS" ]; then
- KEYMAP_OPTIONS="-option $KEYMAP_OPTIONS"
+ KEYMAP_OPTIONS="-option -option $KEYMAP_OPTIONS"
fi
# Set layout on all DISPLAY
|
This is explained in QubesOS/qubes-gui-agent-linux#139 - it doesn't appear to hurt in your case, does it? |
Thanks @solardiz ! So, together with #8035 (comment), I think now we know how to fix layout switching finally :) |
That other discussion looks like an alternative way to fix the issue. In this script, we can try simply omitting |
Omitting completely is a bad idea, since some options do remap keys (things like compose key for example). |
Should not the first Also do not forget proper quoting for bash/shell, I think options cannot have spaces, but better safe than sorry: |
I completely agree, options string should be stripped only of options that allow layout changes. In my case I do not have other options, so, I temporary modified
One more thing - I investigated another (independent) problem that causes minor issues with layout: Long story short:
Can we somehow fix doubling of most events like that? Or is it by
|
No, it is different. Your modification clears options before passing them to qube. But it still passes options like So, the way to fix layout issue as I see it:
|
I've just tried this on the command line, and it seems to work just as well as having it without an argument.
I also haven't yet tried patching the script that way. Yes, the man page wording suggests that having an empty argument is more correct.
This won't help - we're just building a string here, and any distinction on where the space characters came from is lost anyway. Further, the string is meant to contain multiple options/arguments separated by spaces, and is thus used without quoting on the command line later. If we want to support spaces inside options and pass them to |
How should this be mapped to libxkbcommon? The Wayland compositor I am working on does all of its keymap handling in C and uses libxkbcommon directly, not via a command-line tool. |
Unfortunately, the above line doesn't work as desired - it results in literal |
I also checked, both ways of calling |
QubesOS/qubes-issues#8230 (cherry picked from commit 4b6956e)
I propose this issue:
|
Closing as resolved. If anyone believes this issue is not yet resolved, or if anyone is still affected by this issue, please leave a comment, and we'll be happy to reopen it. Thank you. |
Qubes OS release
4.1.2 (R4.1)
Brief summary
Keyboard switching pollutes
setxbmap
options, eventually messing up the key mappings.Steps to reproduce
/etc/X11/xorg.conf.d/00-keyboard.conf
:setxkbmap -print -query
is:Expected behavior
Normal layout switching.
Actual behavior
options
get more and more polluted after each layout switch.xev
, the keyUp
turns intoPrint
:keycode 111 (keysym 0xff61, Print), same_screen YES
xmodmap -e "keycode 111 = Up"
fixes the mapping until the nextAlt+Shift
, then it is messed up again. Resetting the options withsetxkbmap -option
doesn't help.It seems that there is some competition between dom0 and the vm itself for handling the keycodes
The text was updated successfully, but these errors were encountered: