Здравствуйте!
В связи с проблемами с X-сервером временно переполз на Wayland и тут же столкнулся с отвратительной его поддержкой установленными у меня приложениями на Qt: проблемы с копированием-вставкой, отсутствие теней и границ у окон, отчего всё сливается в кашу…
По идее, решение проблемы — это принудительное использование X11 в таких приложениях через задание переменной окружения:
Однако возникла проблема с Qt-приложениями, установленными с помощью flatpak:
aleksej@lenovo:~$ export QT_QPA_PLATFORM=xcb
aleksej@lenovo:~$ flatpak run org.flatpak.qtdemo
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
aleksej@lenovo:~$
Т.е. сам плагин есть, но почему-то не может достучаться до X-сервера. Xwayland при этом запущен и работает. Переменная DISPLAY
есть и имеет правильное значение; принудительная передача её через --env=…
ничего не меняет.
Передача опции --socket=x11
также ничего не даёт.
Приложения вне flatpak работают через Xwayland без проблем.
Те же Qt-приложения в flatpak также работают без проблем в X-сессии.
Единственный выход, который я пока нашёл, — это отключение доступа у соответствующих приложений к wayland-сокету целиком: flatpak run --nosocket=wayland org.flatpak.qtdemo
— тогда приложения магическим образом начинают работать, как требуется. (Почему простого указания платформы им недостаточно, и требуется аж запрещать доступ к Wayland, чтобы они наконец начали использовать X11?) Однако это плохо масштабируется: нужно делать это для каждой установленной программы.
Кто-нибудь сталкивался с подобной проблемой? Может, у кого-то есть мысли, как её можно решить лучше?
- Debian 11
- GNOME 3.38
- flatpak 1.10.2
- версия Qt в runtime — 5.15