Xpra: Ticket #2354: Most AltGr+STH special characters not working

On a Debian buster system running Gnome via Wayland, where host keymap is German (DE), I can't manage to get certain special characters such as @ (AltGr+Q) or (AltGr+E) printed. Same for square brackets (AltGr+8/9) and so son. I don't think it's an obvious keymap/locale mismatch, as all Shift+[0-9] combinations result in the correct symbols. Also the German-specific ÄÖÜ-keys work as expected. Funny enough though '|' (AltGr+<) work, so it's not all AltGr-combinations.

PS: Most of the time writing this bug report was spent in copy+pasting above special characters, as this browser window was started via Xpra :)



Wed, 10 Jul 2019 13:13:07 GMT - Antoine Martin: status, description changed

mirko: please include a little more information as per wiki/ReportingBugs. ie: versions used, client and server output.


Wed, 10 Jul 2019 13:30:18 GMT - mirko:

Version is as of Debian buster: ii xpra 2.5.2+dfsg1-2 amd64

One unusual thing might be, that I'm starting xpra under a different user than my desktop (wayland/Xwayland) is running on.

xpra showconfig:

$ sudo -u x-mail /usr/bin/xpra showconfig
add-printer-options            = '-E', '-o printer-is-shared=false', '-u allow:$USER'
attach                         = None
auth                           = []
auto-refresh-delay             = 0.15
av-sync                        = True
bandwidth-detection            = True
bandwidth-limit                = 'auto'
bell                           = True
bind                           = 'auto'
bind-rfb                       = []
bind-ssh                       = []
bind-ssl                       = []
bind-tcp                       = []
bind-udp                       = []
bind-vsock                     = []
bind-ws                        = []
bind-wss                       = []
border                         = 'auto,5:off'
challenge-handlers             = 'all'
chdir                          = ''
clipboard                      = 'yes'
clipboard-direction            = 'both'
clipboard-filter-file           = ''
compression_level              = 1
compressors                    = 'lz4', 'lzo', 'zlib'
csc-modules                    = 'swscale'
cursors                        = True
daemon                         = True
dbus-control                   = True
dbus-launch                    = 'dbus-launch --sh-syntax --close-stderr'
dbus-proxy                     = True
debug                          = ''
delay-tray                     = False
desktop-fullscreen             = False
desktop-scaling                = 'auto'
display                        = ''
displayfd                      = 0
download-path                  = '~'
dpi                            = 0
encoding                       = 'auto'
encodings                      = 'h264', 'vp9', 'vp8', 'mpeg4', 'mpeg4+mp4', 'h264+mp4', 'vp8+webm', 'vp9+webm', 'png', 'png/P', 'png/L', 'webp', 'rgb', 'rgb24', 'rgb32', 'jpeg', 'h265', 'jpeg2000', 'mpeg1', 'mpeg2'
encryption                     = ''
encryption-keyfile             = ''
env                            = []
exec-wrapper                   = ''
exit-ssh                       = True
exit-with-children             = False
exit-with-client               = False
fake-xinerama                  = True
file-size-limit                = 100
file-transfer                  = 'auto'
forward-xdg-open               = True
gid                            = 5003
global-menus                   = True
html                           = 'auto'
idle-timeout                   = 0
input-devices                  = 'auto'
input-method                   = 'none'
key-shortcut                   = 'Control+Menu:toggle_keyboard_grab', 'Shift+Menu:toggle_pointer_grab', 'Shift+F11:toggle_fullscreen', '#+F1:show_menu', '#+F2:show_start_new_command', '#+F3:show_bug_report', '#+F4:quit', '#+F5:increase_quality', '#+F6:decrease_quality', '#+F7:increase_speed', '#+F8:decrease_speed', '#+F10:magic_key', '#+F11:show_session_info', '#+F12:toggle_debug', '#+plus:scaleup', '#+minus:scaledown', '#+underscore:scaledown', '#+KP_Add:scaleup', '#+KP_Subtract:scaledown', '#+KP_Multiply:scalereset', '#+bar:scalereset', '#+question:scalingoff'
keyboard-layout                = ''
keyboard-layouts               = []
keyboard-options               = ''
keyboard-raw                   = False
keyboard-sync                  = True
keyboard-variant               = ''
keyboard-variants              = []
local-clipboard                = 'CLIPBOARD'
lock                           = None
log-dir                        = 'auto'
log-file                       = '$DISPLAY.log'
lpadmin                        = '/usr/sbin/lpadmin'
lpinfo                         = '/usr/sbin/lpinfo'
max-size                       = ''
mdns                           = True
microphone                     = 'off'
microphone-codec               = []
min-port                       = 1024
min-quality                    = 30
min-size                       = ''
min-speed                      = 30
mmap                           = 'yes'
mmap-group                     = 'auto'
modal-windows                  = False
mousewheel                     = 'on'
notifications                  = True
open-command                   = '/usr/bin/xdg-open'
open-files                     = 'auto'
open-url                       = 'auto'
opengl                         = 'probe'
packet-encoders                = 'rencode', 'bencode', 'yaml'
password                       = ''
password-file                  = []
pdf-printer                    = ''
pidfile                        = ''
pings                          = 5
pixel-depth                    = 0
postscript-printer             = 'drv:///sample.drv/generic.ppd'
printing                       = 'yes'
proxy-start-sessions           = True
proxy-video-encoders           = []
pulseaudio                     = None
pulseaudio-command             = 'pulseaudio --start -n --daemonize=false --system=false --exit-idle-time=-1 --load=module-suspend-on-idle '--load=module-null-sink sink_name="Xpra-Speaker" sink_properties=device.description="Xpra\ Speaker"' '--load=module-null-sink sink_name="Xpra-Microphone" sink_properties=device.description="Xpra\ Microphone"' '--load=module-native-protocol-unix socket=$XPRA_PULSE_SERVER' --load=module-dbus-protocol --load=module-x11-publish --log-level=2 --log-target=stderr --enable-memfd=no'
pulseaudio-configure-commands           = 'pactl set-default-sink Xpra-Speaker', 'pactl set-default-source Xpra-Microphone.monitor'
quality                        = 0
readonly                       = False
remote-clipboard               = 'CLIPBOARD'
remote-logging                 = 'both'
remote-xpra                    = '$XDG_RUNTIME_DIR/xpra/run-xpra', 'xpra', '/usr/local/bin/xpra', '~/.xpra/run-xpra'
resize_display                 = True
rfb-auth                       = []
rfb-upgrade                    = 5
server-idle-timeout            = 0
session-name                   = ''
sharing                        = None
shortcut-modifiers             = 'auto'
socket-dir                     = ''
socket-dirs                    = '/run/user/$UID/xpra', '/run/xpra'
socket-permissions             = '600'
sound-source                   = ''
speaker               (used)   = 'off'                             <class 'str'>
speaker              (default) = 'on'                              <class 'str'>
speaker-codec                  = []
speed                          = 0
ssh                            = 'auto'
ssh-auth                       = []
ssh-upgrade                    = True
ssl                            = 'auto'
ssl-auth                       = []
ssl-ca-certs                   = 'default'
ssl-ca-data                    = ''
ssl-cert                       = ''
ssl-check-hostname             = False
ssl-ciphers                    = 'DEFAULT'
ssl-client-verify-mode           = 'optional'
ssl-key                        = ''
ssl-options                    = 'ALL,NO_COMPRESSION'
ssl-protocol                   = 'TLSv1_2'
ssl-server-hostname            = 'localhost'
ssl-server-verify-mode           = 'required'
ssl-verify-flags               = 'X509_STRICT'
start                 (used)   = '/etc/X11/Xsession true'          <class 'list'>
start                (default) = []                                <class 'list'>
start-after-connect            = []
start-child                    = []
start-child-after-connect           = []
start-child-on-connect           = []
start-child-on-last-client-exit           = []
start-env                      = '#avoid Ubuntu's global menu, which is a mess and cannot be forwarded:', 'UBUNTU_MENUPROXY=', 'QT_X11_NO_NATIVE_MENUBAR=1', '#fix for MainSoft's MainWin buggy window management:', 'MWNOCAPTURE=true', 'MWNO_RIT=true', 'MWWM=allwm', '#force GTK3 applications to use X11 so we can intercept them:', 'GDK_BACKEND=x11', '#force Qt applications to use X11 so we can intercept them:', 'QT_QPA_PLATFORM=xcb', '#overlay scrollbars complicate things:GTK_OVERLAY_SCROLLING=0', '#some versions of GTK3 honour this option, sadly not all:', 'GTK_CSD=0'
start-new-commands             = False
start-on-connect               = []
start-on-last-client-exit           = []
start-via-proxy                = False
sync-xvfb                      = 0
system-proxy-socket            = '/run/xpra/system'
system-tray                    = True
systemd-run                    = 'auto'
systemd-run-args               = ''
tcp-auth                       = []
tcp-encryption                 = ''
tcp-encryption-keyfile           = ''
tcp-proxy                      = ''
terminate-children             = False
title                          = '@title@ on @client-machine@'
tray                           = True
tray-icon                      = ''
udp-auth                       = []
uid                            = 5003
use-display                    = False
username                       = 'x-mail'
video-decoders                 = 'avcodec2', 'vpx'
video-encoders                 = 'x264', 'vpx', 'x265', 'ffmpeg'
video-scaling                  = 'auto'
vsock-auth                     = []
webcam                         = 'auto'
window-close                   = 'auto'
window-icon                    = ''
windows                        = True
wm-name                        = 'Xpra'
ws-auth                        = []
wss-auth                       = []
xsettings                      = True
xvfb                           = '/usr/lib/xorg/Xorg -noreset -novtswitch -nolisten tcp +extension GLX +extension RANDR +extension RENDER -auth $XAUTHORITY -logfile ${XPRA_LOG_DIR}/Xorg.${DISPLAY}.log -configdir ${XDG_RUNTIME_DIR}/xpra/xorg.conf.d/$PID -config /etc/xpra/xorg.conf'
 Warning: Ticket comment is too long (must be less than 262144 characters)

I suggest changing the max-ticket-size in trac to at least allow inclusion of a fill "xpra info".


Mon, 22 Jul 2019 14:50:09 GMT - Antoine Martin: owner, status changed

I suggest changing the max-ticket-size in trac to at least allow inclusion of a fill "xpra info".

No. Please don't paste hundreds of lines into a ticket, that's what attachments are for.

Please see wiki/Keyboard. Is the keyboard layout detected correctly? What is in your server log? Client output? etc..

Does this occur if you switch to X11? I don't have wayland on my main system, and I have no idea how I would configure a german keyboard layout using a wayland display manager.


Mon, 29 Jul 2019 17:52:25 GMT - Antoine Martin:

Partial keyboard layout detection for pure wayland clients was added in r23321. This may help. You can try one of the latest beta builds.

Though I would have expected your xpra client to be using X11 running through Xwayland, which should have used the X11 keyboard detection path. The layout detected can be seen clearly in both the client and server output.


Sun, 25 Aug 2019 03:14:52 GMT - Antoine Martin: status changed; resolution set

Feel free to re-open if you can provide more details.


Tue, 03 Dec 2019 18:26:12 GMT - Martin:

I had probably the same issue with Debian testin, KDE Plasma on wayland and Swedish keyboard so maybe this can help someone.

Running setxkbmap -query gave layout us.

I fixed it by running setxkbmap -layout se before launching xpra.


Sat, 23 Jan 2021 05:49:03 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2354