git: aa56b19e4a3d - main - x11/xpra: Update to 6.0.1

From: Gleb Popov <arrowd_at_FreeBSD.org>
Date: Thu, 06 Jun 2024 15:18:21 UTC
The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=aa56b19e4a3d2a3d45f97f5c4f523481ce2d6351

commit aa56b19e4a3d2a3d45f97f5c4f523481ce2d6351
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2024-06-06 15:11:27 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2024-06-06 15:18:15 +0000

    x11/xpra: Update to 6.0.1
---
 x11/xpra/Makefile             |   17 +-
 x11/xpra/distinfo             |    6 +-
 x11/xpra/files/patch-setup.py |   11 -
 x11/xpra/pkg-plist            | 1283 ++++++++++++++++++++++-------------------
 4 files changed, 701 insertions(+), 616 deletions(-)

diff --git a/x11/xpra/Makefile b/x11/xpra/Makefile
index 11c60ee69c9c..10f564d79ec1 100644
--- a/x11/xpra/Makefile
+++ b/x11/xpra/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	xpra
-PORTVERSION=	5.0.8
-PORTREVISION=	1
+PORTVERSION=	6.0.1
 CATEGORIES=	x11
 MASTER_SITES=	https://xpra.org/src/
 
@@ -10,7 +9,8 @@ WWW=		https://xpra.org/
 
 LICENSE=	GPLv2
 
-BUILD_DEPENDS=	pandoc:textproc/hs-pandoc
+BUILD_DEPENDS=	pandoc:textproc/hs-pandoc \
+		cython-${PYTHON_VER}:lang/cython3@${PY_FLAVOR}
 LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
 		libbrotlidec.so:archivers/brotli \
 		libdrm.so:graphics/libdrm \
@@ -18,7 +18,8 @@ LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
 		liblz4.so:archivers/liblz4 \
 		libopenh264.so:multimedia/openh264 \
 		libwebp.so:graphics/webp \
-		libx264.so:multimedia/libx264
+		libx264.so:multimedia/libx264 \
+		libxxhash.so:devel/xxhash
 RUN_DEPENDS=	${PY_PILLOW} \
 		${PYTHON_PKGNAMEPREFIX}bencode.py>1:converters/py-bencode.py@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}brotli>1:archivers/py-brotli@${PY_FLAVOR} \
@@ -41,7 +42,7 @@ USES=		desktop-file-utils gettext-runtime gnome localbase pkgconfig \
 		python shared-mime-info shebangfix tar:xz xorg
 
 USE_GNOME=	cairo gdkpixbuf2 gtk30 pygobject3
-USE_PYTHON=	cryptography cython distutils noflavors
+USE_PYTHON=	cryptography distutils noflavors
 USE_XORG=	x11 xcomposite xdamage xext xfixes xi xkbfile xrandr xres xtst
 PLIST_SUB+=	PORTVERSION=${PORTVERSION} \
 		PYTHON_SUFFIX=${PYTHON_SUFFIX} \
@@ -51,7 +52,7 @@ SHEBANG_FILES=	fs/lib/cups/backend/xpraforwarder fs/libexec/xpra/auth_dialog \
 		fs/libexec/xpra/xdg-open fs/libexec/xpra/xpra_signal_listener \
 		fs/libexec/xpra/xpra_udev_product_version
 
-OPTIONS_DEFINE=		AVAHI CUPS DOCS GSTREAMER LIBYUV SWSCALE \
+OPTIONS_DEFINE=		AVAHI CUPS DOCS GSTREAMER LIBYUV \
 			WEBCAM
 OPTIONS_DEFAULT=	AVAHI CUPS GSTREAMER
 OPTIONS_SUB=		yes
@@ -61,7 +62,6 @@ CUPS_DESC=	Enable CUPS for printer forwarding
 FFMPEG_DESC=	Enable FFmpeg encoder
 GSTREAMER_DESC=	Enable GStreamer for sound forwarding
 LIBYUV_DESC=	Enable libyuv CSC module (fastest)
-SWSCALE_DESC=	Enable swscale (FFmpeg) CSC module
 WEBCAM_DESC=	Enable webcam forwarding (client only)
 
 AVAHI_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}avahi>0:net/py-avahi@${PY_FLAVOR}
@@ -75,12 +75,11 @@ GSTREAMER_USE=			GSTREAMER=flac,lame,mpg123,ogg,opus,pulse,vorbis,wavpack
 GSTREAMER_VARS=			XPRA_OPTIONS+=sound
 LIBYUV_LIB_DEPENDS=		libyuv.so:graphics/libyuv
 LIBYUV_VARS=			XPRA_OPTIONS+=csc_libyuv
-SWSCALE_VARS=			XPRA_OPTIONS+=csc_swscale
 WEBCAM_RUN_DEPENDS=		opencv>2:graphics/opencv
 WEBCAM_VARS=			XPRA_OPTIONS+=webcam
 
 PYDISTUTILS_PKGNAME=	xpra_all
-XPRA_OPTIONS_ALL+=	${XPRA_OPTIONS_DISABLED} csc_libyuv csc_swscale \
+XPRA_OPTIONS_ALL+=	${XPRA_OPTIONS_DISABLED} csc_libyuv \
 			enc_x264 \
 			mdns printing vpx webcam
 XPRA_OPTIONS=		dec_avcodec2 enc_ffmpeg enc_x264
diff --git a/x11/xpra/distinfo b/x11/xpra/distinfo
index 7bf04353a21f..d0ef1846f9ee 100644
--- a/x11/xpra/distinfo
+++ b/x11/xpra/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1712994271
-SHA256 (xpra-5.0.8.tar.xz) = 9e9f60f05e4f378781dd5a6ec4cbbfaed0b6749fb35c386cf60f67feccb68956
-SIZE (xpra-5.0.8.tar.xz) = 8369060
+TIMESTAMP = 1717660129
+SHA256 (xpra-6.0.1.tar.xz) = e80ec6c129cc72acc941149da798c9939af54b5f25556e1bdbc319a5fb29a953
+SIZE (xpra-6.0.1.tar.xz) = 8967612
diff --git a/x11/xpra/files/patch-setup.py b/x11/xpra/files/patch-setup.py
deleted file mode 100644
index 6c3f76f246b0..000000000000
--- a/x11/xpra/files/patch-setup.py
+++ /dev/null
@@ -1,11 +0,0 @@
---- setup.py.orig	2024-02-06 07:54:06 UTC
-+++ setup.py
-@@ -1762,7 +1762,7 @@ else:
-     if data_ENABLED:
-         man_path = "share/man"
-         icons_dir = "icons"
--        if OPENBSD or FREEBSD:
-+        if OPENBSD:
-             man_path = "man"
-         if OPENBSD or FREEBSD or is_openSUSE():
-             icons_dir = "pixmaps"
diff --git a/x11/xpra/pkg-plist b/x11/xpra/pkg-plist
index e11b618bdf80..147be330634d 100644
--- a/x11/xpra/pkg-plist
+++ b/x11/xpra/pkg-plist
@@ -30,44 +30,23 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/PKG-INFO
 %%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/SOURCES.txt
 %%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/dependency_links.txt
+%%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/requires.txt
 %%PYTHON_SITELIBDIR%%/xpra-%%PORTVERSION%%-py%%PYTHON_VER%%.egg-info/top_level.txt
 %%PYTHON_SITELIBDIR%%/xpra/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/build_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/build_info%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/child_reaper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/child_reaper%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/colorstreamhandler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/colorstreamhandler%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/common%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/exit_codes%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/exit_codes%%PYTHON_EXT_SUFFIX%%.pyc
-%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/__pycache__/gst_common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/__pycache__/gst_common%%PYTHON_EXT_SUFFIX%%.pyc
-%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/__pycache__/gst_pipeline%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/__pycache__/gst_pipeline%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/log%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/log%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/make_thread%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/make_thread%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/os_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/os_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/queue_scheduler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/queue_scheduler%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/scaling_parser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/scaling_parser%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/simple_stats%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/simple_stats%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/splash_screen%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/splash_screen%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/src_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/__pycache__/src_info%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/version_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/__pycache__/version_util%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/audio/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/audio/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -89,18 +68,18 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_common_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_common_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_none_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_none_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_pactl_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_pactl_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pulseaudio_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pulseaudio_common_util.py
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pulseaudio_none_util.py
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pulseaudio_pactl_util.py
-%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pulseaudio_util.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/common_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/common_util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/none_impl%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/none_impl%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pactl_impl%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/pactl_impl%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/__pycache__/util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/common_util.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/none_impl.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/pactl_impl.py
+%%PYTHON_SITELIBDIR%%/xpra/audio/pulseaudio/util.py
 %%PYTHON_SITELIBDIR%%/xpra/audio/sink.py
 %%PYTHON_SITELIBDIR%%/xpra/audio/src.py
 %%PYTHON_SITELIBDIR%%/xpra/audio/wrapper.py
@@ -111,255 +90,146 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/buffers/membuf%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/buffers/xxh%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/build_info.py
-%%PYTHON_SITELIBDIR%%/xpra/child_reaper.py
 %%PYTHON_SITELIBDIR%%/xpra/client/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/env_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/env_handler%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/file_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/file_handler%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/gss_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/gss_handler%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/kerberos_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/kerberos_handler%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/prompt_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/prompt_handler%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/u2f_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/u2f_handler%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/uri_handler%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/uri_handler%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/env_handler.py
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/file_handler.py
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/gss_handler.py
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/kerberos_handler.py
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/prompt_handler.py
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/u2f_handler.py
-%%PYTHON_SITELIBDIR%%/xpra/client/auth/uri_handler.py
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/env%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/env%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/file%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/file%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/gss%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/gss%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/kerberos%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/kerberos%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/prompt%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/prompt%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/u2f%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/u2f%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/uri%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/__pycache__/uri%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/env.py
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/file.py
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/gss.py
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/kerberos.py
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/prompt.py
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/u2f.py
+%%PYTHON_SITELIBDIR%%/xpra/client/auth/uri.py
 %%PYTHON_SITELIBDIR%%/xpra/client/base/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/client_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/fileprint_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/fileprint_mixin%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/gobject_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/gobject_client_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/client%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/command%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/command%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/fileprint%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/fileprint%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/gobject%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/gobject%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/rfb_protocol%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/rfb_protocol%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/serverinfo_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/serverinfo_mixin%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/serverinfo%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/serverinfo%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/stub_client_mixin%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/stub_client_mixin%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/top_client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/top_client%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/base/client_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/base/fileprint_mixin.py
-%%PYTHON_SITELIBDIR%%/xpra/client/base/gobject_client_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/top%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/__pycache__/top%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/base/client.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/command.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/fileprint.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/gobject.py
 %%PYTHON_SITELIBDIR%%/xpra/client/base/rfb_protocol.py
-%%PYTHON_SITELIBDIR%%/xpra/client/base/serverinfo_mixin.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/serverinfo.py
 %%PYTHON_SITELIBDIR%%/xpra/client/base/stub_client_mixin.py
-%%PYTHON_SITELIBDIR%%/xpra/client/base/top_client.py
+%%PYTHON_SITELIBDIR%%/xpra/client/base/top.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_check%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_check%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_colorspace_conversions%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_colorspace_conversions%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_drivers%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_drivers%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_spinner%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_spinner%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_window_backing_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/gl_window_backing_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/window_backend%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/window_backend%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_check.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_colorspace_conversions.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_drivers.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_spinner.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gl_window_backing_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/backing%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/backing%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/check%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/check%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/debug%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/debug%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/drivers%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/drivers%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/shaders%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/shaders%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/spinner%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/spinner%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/__pycache__/window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/backing.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/check.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/debug.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/drivers.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/gl_client_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/gl_client_window%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/gl_drawing_area%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/gl_drawing_area%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/nativegl_client_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/nativegl_client_window%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/gl_client_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/gl_drawing_area.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/nativegl_client_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gl/window_backend.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/client_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/client_window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/drawing_area%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/drawing_area%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/glarea_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/glarea_window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/native_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/__pycache__/native_window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/client_window.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/drawing_area.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/glarea_window.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/gtk3/native_window.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/shaders.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/spinner.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/util.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gl/window.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/bug_report%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/bug_report%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/cairo_backing%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/cairo_backing%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/cairo_backing_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/cairo_backing_base%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_launcher%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_launcher%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_window%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/confirm_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/confirm_dialog%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk3_client_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk3_client_window%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk3_notifier%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk3_notifier%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_client_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_client_window_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_client_window_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_keyboard_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_keyboard_helper%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_spinner%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_spinner%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_tray_menu_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/gtk_tray_menu_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/mdns_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/mdns_gui%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/client_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/keyboard_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/keyboard_helper%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/launcher%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/launcher%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/menu_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/menu_helper%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/open_requests%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/open_requests%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/pass_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/pass_dialog%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/qrcode_client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/qrcode_client%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/server_commands%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/server_commands%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/session_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/session_info%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/sessions_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/sessions_gui%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/show_shortcuts%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/show_shortcuts%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/start_new_command%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/start_new_command%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/notifier%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/notifier%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/statusicon_tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/statusicon_tray%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/toolbox%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/toolbox%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/tray_menu%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/tray_menu%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/u2f_tool%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/u2f_tool%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/update_status%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/update_status%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_base%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_info%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_menu%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/__pycache__/window_menu%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/bug_report.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/cairo_backing.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/cairo_backing_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/cairo_workaround%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/client.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/client_launcher.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/client_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/confirm_dialog.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__init__.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/bell%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/bell%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/clicks%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/clicks%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors_gradient%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors_gradient%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors_plain%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/colors_plain%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/cursors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/cursors%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/file_chooser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/file_chooser%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/fontrendering%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/fontrendering%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/grabs%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/grabs%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/header_bar%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/header_bar%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/initiate_moveresize%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/initiate_moveresize%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/text_entry%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/text_entry%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/transparent_colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/transparent_colors%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/transparent_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/transparent_window%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_focus%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_focus%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_geometry_hints%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_geometry_hints%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_opacity%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_opacity%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_overrideredirect%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_overrideredirect%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_states%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_states%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_title%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_title%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_transient%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/__pycache__/window_transient%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/bell.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/clicks.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/colors.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/colors_gradient.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/colors_plain.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/cursors.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/file_chooser.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/fontrendering.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/grabs.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/header_bar.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/initiate_moveresize.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/text_entry.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/transparent_colors.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/transparent_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/tray.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_focus.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_geometry_hints.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_opacity.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_overrideredirect.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_states.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_title.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/example/window_transient.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk3_client_window.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk3_notifier.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_client_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_client_window_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_keyboard_helper.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_spinner.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/gtk_tray_menu_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/mdns_gui.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/client_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/keyboard_helper.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/launcher.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/menu_helper.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/open_requests.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/pass_dialog.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/qrcode_client.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/server_commands.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/session_info.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/sessions_gui.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/show_shortcuts.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/start_new_command.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/notifier.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/statusicon_tray.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/toolbox.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/tray_menu.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/u2f_tool.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/update_status.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/window.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gtk3/window_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/window_info.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gtk3/window_menu.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__init__.py
@@ -367,20 +237,16 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_tray%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_widget_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_widget_base%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_window_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/client_window_base%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/fake_client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/fake_client%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/fake_window_backing%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/fake_window_backing%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/features%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/features%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/keyboard_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/keyboard_helper%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/keyboard_shortcuts_parser%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/keyboard_shortcuts_parser%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/mixin_features%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/mixin_features%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/paint_colors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/paint_colors%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/spinner%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -389,23 +255,27 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/tray_base%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/ui_client_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/ui_client_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/widget_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/widget_base%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_backing_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_backing_base%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_base%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_base%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_border%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/__pycache__/window_border%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/client_tray.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/client_widget_base.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/client_window_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/fake_client.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/fake_window_backing.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/features.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/keyboard_helper.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/keyboard_shortcuts_parser.py
-%%PYTHON_SITELIBDIR%%/xpra/client/gui/mixin_features.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/paint_colors.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/spinner.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/tray_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/ui_client_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/widget_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/window_backing_base.py
+%%PYTHON_SITELIBDIR%%/xpra/client/gui/window_base.py
 %%PYTHON_SITELIBDIR%%/xpra/client/gui/window_border.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -418,65 +288,62 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/display%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/encodings%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/encodings%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/logging%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/logging%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/mmap%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/mmap%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/network_listener%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/network_listener%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/network_state%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/network_state%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/notifications%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/notifications%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/remote_logging%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/remote_logging%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/rpc%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/rpc%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/notification%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/notification%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/tray%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/webcam%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/webcam%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/window_manager%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/window_manager%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/windows%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/__pycache__/windows%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/audio.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/clipboard.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/display.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/encodings.py
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/logging.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/mmap.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/network_listener.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/network_state.py
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/notifications.py
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/remote_logging.py
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/rpc.py
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/notification.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/tray.py
 %%PYTHON_SITELIBDIR%%/xpra/client/mixins/webcam.py
-%%PYTHON_SITELIBDIR%%/xpra/client/mixins/window_manager.py
+%%PYTHON_SITELIBDIR%%/xpra/client/mixins/windows.py
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/clipboard_core%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/clipboard_core%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/clipboard_timeout_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/clipboard_timeout_helper%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/clipboard_core.py
-%%PYTHON_SITELIBDIR%%/xpra/clipboard/clipboard_timeout_helper.py
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/core%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/core%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/timeout%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/__pycache__/timeout%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/core.py
+%%PYTHON_SITELIBDIR%%/xpra/clipboard/timeout.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/codec_checks%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/codec_checks%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/codec_constants%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/codec_constants%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/codec_debug%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/codec_debug%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/checks%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/checks%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/constants%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/constants%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/debug%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/debug%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/icon_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/icon_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/image_wrapper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/image_wrapper%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/image%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/image%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/loader%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/loader%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/rgb_transform%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/rgb_transform%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/video_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/video_helper%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/video%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/__pycache__/video%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -487,61 +354,60 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/argb%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/encoder.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/argb/scale.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_checks.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_constants.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/codec_debug.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/checks.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/constants.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/colorspace_converter%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/csc_cython/converter%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/codecs/debug.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/drm/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/drm/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/drm/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/drm/drm%%PYTHON_EXT_SUFFIX%%.so
-%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/__init__.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/av_log%%PYTHON_EXT_SUFFIX%%.so
-%%SWSCALE%%%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/colorspace_converter%%PYTHON_EXT_SUFFIX%%.so
-%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/decoder%%PYTHON_EXT_SUFFIX%%.so
-%%PYTHON_SITELIBDIR%%/xpra/codecs/ffmpeg/encoder%%PYTHON_EXT_SUFFIX%%.so
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__init__.py
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/capture%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/capture%%PYTHON_EXT_SUFFIX%%.pyc
-%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/codec_common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/codec_common%%PYTHON_EXT_SUFFIX%%.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/common%%PYTHON_EXT_SUFFIX%%.pyc
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/decoder%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/decoder%%PYTHON_EXT_SUFFIX%%.pyc
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.pyc
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/capture.py
-%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/codec_common.py
+%%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/common.py
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/decoder.py
 %%GSTREAMER%%%%PYTHON_SITELIBDIR%%/xpra/codecs/gstreamer/encoder.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/icon_util.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/image_wrapper.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/image.py
 %%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/__init__.py
 %%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/colorspace_converter%%PYTHON_EXT_SUFFIX%%.so
+%%LIBYUV%%%%PYTHON_SITELIBDIR%%/xpra/codecs/libyuv/converter%%PYTHON_EXT_SUFFIX%%.so
 %%PYTHON_SITELIBDIR%%/xpra/codecs/loader.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_context%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_context%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_errors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_errors%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_image_wrapper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/cuda_image_wrapper%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/info%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/nv_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/nv_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda_context.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda_errors.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda_image_wrapper.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/info.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/nv_util.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/__pycache__/util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/context%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/context%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/errors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/errors%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/image%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/image%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/__pycache__/info%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/context.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/errors.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/image.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/cuda/info.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/nvidia/util.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/openh264/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/openh264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/openh264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -563,7 +429,7 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/codecs/proxy/__pycache__/encoder%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/proxy/encoder.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/rgb_transform.py
-%%PYTHON_SITELIBDIR%%/xpra/codecs/video_helper.py
+%%PYTHON_SITELIBDIR%%/xpra/codecs/video.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/webp/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
@@ -573,7 +439,6 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/codecs/x264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/x264/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
 %%PYTHON_SITELIBDIR%%/xpra/codecs/x264/encoder%%PYTHON_EXT_SUFFIX%%.so
-%%PYTHON_SITELIBDIR%%/xpra/colorstreamhandler.py
 %%PYTHON_SITELIBDIR%%/xpra/common.py
 %%PYTHON_SITELIBDIR%%/xpra/dbus/__init__.py
 %%PYTHON_SITELIBDIR%%/xpra/dbus/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
@@ -588,78 +453,264 @@ etc/dbus-1/system.d/xpra.conf
 %%PYTHON_SITELIBDIR%%/xpra/dbus/helper.py
 %%PYTHON_SITELIBDIR%%/xpra/dbus/notifications_forwarder.py
 %%PYTHON_SITELIBDIR%%/xpra/exit_codes.py
-%%PYTHON_SITELIBDIR%%/xpra/gst_common.py
-%%PYTHON_SITELIBDIR%%/xpra/gst_pipeline.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__init__.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/about%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/about%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/auth_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/auth_dialog%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/css_overrides%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/css_overrides%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/cursor_names%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/cursor_names%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/desktop_greeter%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/desktop_greeter%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/error%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/error%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gobject_compat%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gobject_compat%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gobject_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gobject_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/graph%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/graph%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_clipboard%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_clipboard%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_notifier%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_notifier%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_util%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_view_clipboard%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_view_clipboard%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_view_keyboard%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gtk_view_keyboard%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/gui%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/keymap%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/keymap%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/start_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/__pycache__/start_gui%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/about.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/auth_dialog.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/css_overrides.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/cursor_names.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/desktop_greeter.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/error.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_compat.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gobject_util.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/graph.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk3/__init__.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk3/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk3/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk3/gdk_atoms%%PYTHON_EXT_SUFFIX%%.so
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk3/gdk_bindings%%PYTHON_EXT_SUFFIX%%.so
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_clipboard.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_notifier.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_util.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_clipboard.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gtk_view_keyboard.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/gui.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/keymap.py
-%%PYTHON_SITELIBDIR%%/xpra/gtk_common/start_gui.py
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/__pycache__/common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/__pycache__/common%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/__pycache__/pipeline%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/__pycache__/pipeline%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/common.py
+%%PYTHON_SITELIBDIR%%/xpra/gstreamer/pipeline.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/clipboard%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/clipboard%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/css_overrides%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/css_overrides%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/cursors%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/cursors%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/error%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/error%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/gobject%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/gobject%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/graph%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/graph%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/info%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/keymap%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/keymap%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/notifier%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/notifier%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/pixbuf%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/pixbuf%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/signals%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/signals%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/util%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/versions%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/versions%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/widget%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/widget%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/__pycache__/window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/bindings/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/bindings/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/bindings/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/bindings/atoms%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/gtk/bindings/gobject%%PYTHON_EXT_SUFFIX%%.so
+%%PYTHON_SITELIBDIR%%/xpra/gtk/clipboard.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/common%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/common%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/encodings%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/encodings%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/features%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/features%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/gstreamer%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/gstreamer%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/home%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/home%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/main%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/main%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/opengl%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/opengl%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/packages%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/packages%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/shadow%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/__pycache__/shadow%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/common.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/encodings.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/features.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/gstreamer.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/home.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/main.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/opengl.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/packages.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/configure/shadow.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/css_overrides.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/cursors.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__init__.py
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/about%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/about%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/auth_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/auth_dialog%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/base_gui_window%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/base_gui_window%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/bug_report%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/bug_report%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/confirm_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/confirm_dialog%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/desktop_greeter%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/desktop_greeter%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/gui%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/mdns_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/mdns_gui%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/open_requests%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/open_requests%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/pass_dialog%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/pass_dialog%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/qrcode%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/qrcode%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/qrcode_client%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/qrcode_client%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/server_commands%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/server_commands%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/session_info%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/session_info%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/sessions_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/sessions_gui%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/show_shortcuts%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/show_shortcuts%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/show_webcam%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/show_webcam%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/splash%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/splash%%PYTHON_EXT_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/xpra/gtk/dialogs/__pycache__/start_gui%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
*** 979 LINES SKIPPED ***