xpra icon
Bug tracker and wiki

Opened 2 months ago

Closed 3 weeks ago

#2354 closed defect (needinfo)

Most AltGr+STH special characters not working

Reported by: mirko Owned by: mirko
Priority: critical Milestone: 3.0
Component: core Version: 2.5.x
Keywords: Cc:

Description (last modified by Antoine Martin)

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 :)

Change History (5)

comment:1 Changed 2 months ago by Antoine Martin

Description: modified (diff)
Status: newassigned

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

comment:2 Changed 2 months ago by 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".

comment:3 Changed 8 weeks ago by Antoine Martin

Owner: changed from Antoine Martin to mirko
Status: assignednew

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.

comment:4 Changed 7 weeks ago by 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.

comment:5 Changed 3 weeks ago by Antoine Martin

Resolution: needinfo
Status: newclosed

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

Note: See TracTickets for help on using tickets.