Sway. Совместимость приложений

Sway. Совместимость приложений.

Содержание

1 Java

1.1 Серое окно, приложения не меняют размер с помощью WM, меню сразу закрываются

  • В стандартных тулкитах для Java жестко зашит список оконных менеджеров.
  • Следует установить переменную окружения:
    1export _JAVA_AWT_WM_NONREPARENTING=1
    

1.2 Меню в приложениях плавает отдельно, им невозможно пользоваться

  • В выпусках Java до версии 9 GTK интерфейс ориентирован на GTK2, в последующих версиях на GTK3.
  • GTK LookAndFeel может работать с GTK версий 2, 2.2 и 3.
  • По умолчанию используется GTK3.
  • Следует явно задать более старую версию:
    1export JAVA_TOOL_OPTIONS='-Djdk.gtk.version=2.2'
    
  • Например, в файле ~/.profile:
    1if [ "$XDG_SESSION_DESKTOP" = "sway" ] || [ "$XDG_SESSION_DESKTOP" = "i3" ]
    2then
    3    # https://github.com/swaywm/sway/issues/595
    4    export _JAVA_AWT_WM_NONREPARENTING=1
    5    export JAVA_TOOL_OPTIONS='-Djdk.gtk.version=2.2'
    6fi
    

2 Приложения GTK+ запускаются с задержкой

  • Приложения GTK+ ожидают запуск xdg-desktop-portal через D-Bus.
  • Ожидание прекращается по таймауту потому, что активированная служба D-Bus не знает, к какому WAYLAND_DISPLAY подключиться.
  • Это можно исправить, добавив в файл конфигурации следующее:
    1exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
    2exec 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:
    1QT_QPA_PLATFORM=xcb avidemux3_qt5
    
  • Альтернативно можно задать опцию --platform 'xcb':
    1avidemux3_qt5 --platform 'xcb'
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие