Sway. Совместимость приложений
Sway. Совместимость приложений.
Содержание
1 Java
1.1 Серое окно, приложения не меняют размер с помощью WM, меню сразу закрываются
- В стандартных тулкитах для Java жестко зашит список оконных менеджеров.
- Следует установить переменную окружения:
export _JAVA_AWT_WM_NONREPARENTING=1
1.2 Меню в приложениях плавает отдельно, им невозможно пользоваться
- В выпусках Java до версии 9 GTK интерфейс ориентирован на GTK2, в последующих версиях на GTK3.
- GTK LookAndFeel может работать с GTK версий 2, 2.2 и 3.
- По умолчанию используется GTK3.
- Следует явно задать более старую версию:
export JAVA_TOOL_OPTIONS='-Djdk.gtk.version=2.2'
- Например, в файле
~/.profile
:if [ "$XDG_SESSION_DESKTOP" = "sway" ] || [ "$XDG_SESSION_DESKTOP" = "i3" ] then # https://github.com/swaywm/sway/issues/595 export _JAVA_AWT_WM_NONREPARENTING=1 export JAVA_TOOL_OPTIONS='-Djdk.gtk.version=2.2' fi
2 Приложения GTK+ запускаются с задержкой
- Приложения GTK+ ожидают запуск
xdg-desktop-portal
через D-Bus. - Ожидание прекращается по таймауту потому, что активированная служба D-Bus не знает, к какому
WAYLAND_DISPLAY
подключиться. - Это можно исправить, добавив в файл конфигурации следующее:
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK exec hash dbus-update-activation-environment 2>/dev/null && dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
3 Qt приложения
- Qt по умолчанию использует бэкэнд X11 вместо собственного бэкэнда Wayland. Чтобы использовать бэкэнд Wayland, установите
QT_QPA_PLATFORM=wayland
. - Qt прорисовает оформление окон на стороне клиента. Чтобы отключить это, установите
QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
.
4 Avidemux
- При запуске Avidemux под Wayland не отображается окно просмотра.
- Следует установить переменную окружения
QT_QPA_PLATFORM=xcb
илиWAYLAND_DISPLAY=0
:QT_QPA_PLATFORM=xcb avidemux3_qt5
- Альтернативно можно задать опцию
--platform 'xcb'
:avidemux3_qt5 --platform 'xcb'