blank window in lxqt desktop when attach locally
cadem opened this issue · comments
I use a lxqt desktop in a docker.
I attach a session locally, but I got a blank window showed. I guess I missed something in my linux, but I don't know what is it.
The command is:
dbus-run-session xpra attach :100 --opengl=no
the log is as follow:
Warning: XDG_RUNTIME_DIR is not defined
and '/run/user/1000' does not exist
using '/tmp'
dbus-daemon[8727]: [session uid=1000 pid=8727] Activating service name='org.gtk.vfs.Daemon' requested by ':1.0' (uid=1000 pid=8728 comm="/usr/bin/xpra attach :100 --opengl=no " label="unconfined")
dbus-daemon[8727]: [session uid=1000 pid=8727] Successfully activated service 'org.gtk.vfs.Daemon'
fusermount3: failed to access mountpoint /home/ubuntu/.cache/gvfs: Permission denied
2024-05-17 18:03:39,599 Xpra GTK3 X11 client version 6.0-r0
2024-05-17 18:03:39,714 running on Linux Ubuntu 22.04 jammy
2024-05-17 18:03:39,714 cpython 3.10
2024-05-17 18:03:39,715 window manager is 'Openbox'
Warning: failed to query pulseaudio using 'pactl info'
XDG_RUNTIME_DIR (/tmp) is not owned by us (uid 1000), but by uid 0! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
Warning: failed to query pulseaudio using 'pactl info'
XDG_RUNTIME_DIR (/tmp) is not owned by us (uid 1000), but by uid 0! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
2024-05-17 18:03:40,011 GStreamer version 1.20.3
2024-05-17 18:03:40,026 Warning: failed to query pulseaudio using 'pactl info'
2024-05-17 18:03:40,026 XDG_RUNTIME_DIR (/tmp) is not owned by us (uid 1000), but by uid 0! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
2024-05-17 18:03:40,026 Connection failure: Connection refused
2024-05-17 18:03:40,026 pa_context_connect() failed: Connection refused
2024-05-17 18:03:40,041 Warning: failed to instantiate the dbus notification handler
2024-05-17 18:03:40,041 you may need to start a notification service for 'org.freedesktop.Notifications'
2024-05-17 18:03:40,042 disable notifications to avoid this warning
2024-05-17 18:03:40,044 Warning: failed to create socket directory '/run/user/1000/xpra/clients'
2024-05-17 18:03:40,044 [Errno 13] Permission denied: '/run/user/1000'
2024-05-17 18:03:40,044 Warning: cannot create socket '/run/user/1000/xpra/clients/54d01-8728':
2024-05-17 18:03:40,045 [Errno 2] No such file or directory
2024-05-17 18:03:40,045 ($XDG_RUNTIME_DIR has not been created?)
2024-05-17 18:03:40,251 keyboard settings: rules=base, model=pc104, layout=us
2024-05-17 18:03:40,255 desktop size is 1920x973:
2024-05-17 18:03:40,256 :15.0 (508x257 mm - DPI: 96x96) workarea: 1920x941
2024-05-17 18:03:40,256 rdp0
2024-05-17 18:03:40,371 enabled fast mmap transfers using 512MB shared memory area
2024-05-17 18:03:40,371 enabled remote logging
2024-05-17 18:03:40,372 Xpra X11 seamless server version 6.0
2024-05-17 18:03:40,476 Attached to xpra server at socket://@xpra/100
2024-05-17 18:03:40,476 (press Control-C to detach)
2024-05-17 18:03:40,491 Warning: cannot handle window transparency
2024-05-17 18:03:40,491 screen is not composited
2024-05-17 18:03:40,499 Warning: window 0x1 changed its transparency attribute
2024-05-17 18:03:40,500 from False to True, behaviour is undefined
2024-05-17 18:03:40,510 Error on realize callback <function GTKClientWindowBase.set_opaque_region.<locals>.do_set_region at 0x7f39dd0ccca0> for window 1
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/xpra/client/gtk3/window_base.py", line 1006, in on_realize
x(*args)
File "/usr/lib/python3/dist-packages/xpra/client/gtk3/window_base.py", line 1395, in do_set_region
self.get_window().set_opaque_region(r)
KeyError: 'could not find foreign type Region'
2024-05-17 18:03:40,513 running, 1 windows
(Xpra:8728): Gdk-CRITICAL **: 18:03:40.931: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
2024-05-17 18:03:42,879 Error: cannot access the list of printers
2024-05-17 18:03:42,879 failed to connect to server
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
^C
2024-05-17 18:03:51,634 Python/GTK3 Client got signal SIGINT
There are nowhere near enough details, please see https://github.com/Xpra-org/xpra/wiki/Reporting-Bugs
Try with a different window manager, Openbox doesn't do compositing.
It is very amazing, cairo.Context error is not related to window manager. I searched at the internet, found the solution:
sudo apt install python3-gi-cairo
After installing this package, I attach the session successfully.
Thanks!
Ah, that makes sense.
This problem only occurred here because of two unrelated issues:
- docker builds don't install all the recommended dependencies, it is likely that a normal installation would have brought in
python-cairo
- running with
--opengl=no
uses the fallback paint path, which requirespython-cairo
9c07f77 makes this a requires dependency for the client, a recommends one for the server (not needed unless the sync-xvfb
option is used)