Линуксопроблемы с Wayland

На моём основном компьютере установлен Arch Linux, а в качестве окружения рабочего стола используется Gnome, работающий поверх Wayland.

Wayland ― это относительно молодая технология по сравнению с Xorg, поэтому на момент написания заметки у многих десктопных приложений есть проблемы совместимости с ним. К моему удивлению, даже в крупных программных пакетах могут больше года жить серьёзные баги, связанные с этим.

Я столкнулся с двумя такими случаями, и каждый раз мне удавалось находить решение проблемы только после продолжительного поиска в GitHub Issues и багтрекерах. Конечно, решениями это можно назвать с натяжкой, слово «костылики» тут подходит больше. Но дорабатывать исходники приложений мне лень, поэтому я довольствуюсь найденным. Возможно, кто-то столкнётся с такими же проблемами и эта заметка сэкономит ему время.

Неправильный масштаб элементов в LibreOffice

На компьютерах с Wayland и HiDPI мониторами LibreOffice отображался в совершенно непригодных для работы пропорциях. Привести иконки в порядок позволяет передача переменной окружения SAL_USE_VCLPLUGIN=gtk при запуске приложения. То есть запуск текстового редактора будет осуществляться следующей командой:

env SAL_USE_VCLPLUGIN=gtk libreoffice --writer &

Перед тем, как написать предыдущий абзац, я проверил LibreOffice без передачи этой переменной, и на моём компьютере версия 5.2.4 отобразилась нормально. Судя по всему, баг был всё-таки исправлен.

Отсутствие иконки трея в Telegram

Из-за проблем совместимости с Wayland у официального клиента Telegram на данный момент не отображается иконка в трее. Насколько я знаю, аналогичные баги есть ещё у нескольких приложений, но меня интересует именно Telegram.

Проблема решается запуском приложения командой

env GDK_BACKEND=x11 /path/to/Telegram

Запуск приложений

Для удобства можно задать алиасы с нужными командами:

alias librewriter=’env SAL_USE_VCLPLUGIN=gtk libreoffice --writer &’

Или прописать их в .desktop файл:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=Telegram Desktop
Comment=Official desktop version of Telegram messaging app
Exec=env GDK_BACKEND=x11 /opt/Telegram/Telegram -- %u
Icon=telegram
Terminal=false
StartupWMClass=Telegram
Type=Application
Categories=Network;
MimeType=x-scheme-handler/tg;
X-Desktop-File-Install-Version=0.23