Вопрос или проблема
Я наблюдал необычное поведение Sway на Fedora 39 (на которой также установлен GNOME, и мне нужно оставить GNOME установленным). Рабочий стол запускается, но любые GTK-приложения, которые я запускаю, не открываются до тех пор, пока не пройдет около 25 секунд. Также мой waybar никогда не появляется, пока я не перезагружу конфигурацию после истечения 25 секунд.
Как мне предотвратить эту задержку?
Ответы, которые я видел и пробовал:
- Удалить
xdg-desktop-portal
иxdg-desktop-portal-gnome
(оказалось, что это зависимости для GNOME, так что это не вариант). - Установить
GTK_USE_PORTAL=0
. - Установить
WAYLAND_DISPLAY=wayland-1
. - Запустить
exec systemctl --user import-environment
в моей конфигурации sway (Я пробовал поместить это до и после строкиwaybar
). - Закомментировать строку
pam_gnome_keyring.so
в файле под/etc/pam.d
(в моем случае,/etc/pam.d/gdm-autologin
). - Экспортировать определенный набор переменных по имени
(WAYLAND_DISPLAY
,DISPLAY
,XDG_CURRENT_DESKTOP
и т.д.), чтобы systemd и dbus могли их использовать.
К сожалению, задержка сохранялась после перезагрузки с каждым из этих изменений. Я публикую это, потому что наконец нашел решение, но объяснение будет приветствоваться (я действительно не понимаю решения).
Создайте файл ~/.config/xdg-desktop-portal/sway-portals.conf
со следующим содержимым:
[preferred]
default=wlr;gtk;
xdg-desktop-portal
действительно является проблемой. Он требует конфигурационного файла, объявляющего, какие порталы следует использовать, и если он не находит его, он зависает на около 25 секунд перед выходом. Я нашел правильную конфигурацию здесь.
Ответ или решение
Проблема, с которой вы столкнулись при использовании Sway на Fedora 39, связана с задержкой в запуске GTK-приложений и тем, что Waybar не запускается до завершения этого времени. Автор поста уже пробовал несколько возможных решений, включая отключение xdg-desktop-portal и попытки манипуляций с переменными окружения. Однако эти меры не оказали должного эффекта. Решение, которое было найдено, связано с правильной конфигурацией xdg-desktop-portal
.
Причина проблемы
Как было замечено, основным виновником задержки является сам xdg-desktop-portal
, который предназначен для взаимодействия между различными средами рабочего стола и приложениями. Когда xdg-desktop-portal
не может найти соответствующий файл конфигурации, он остается в состоянии ожидания, что и приводит к задержкам в запуске приложений — в вашем случае это около 25 секунд.
По умолчанию, если xdg-desktop-portal
не настроен должным образом, он будет ожидать ответа от отсутствующего «портала», что вызывает такую задержку.
Решение проблемы
Чтобы устранить задержки, необходимо создать файл конфигурации для xdg-desktop-portal
, который укажет, какие порты использовать по умолчанию. Для этого выполните следующие шаги:
-
Создайте файл конфигурации:
Откройте терминал и выполните команду для создания файлаsway-portals.conf
:mkdir -p ~/.config/xdg-desktop-portal nano ~/.config/xdg-desktop-portal/sway-portals.conf
-
Добавьте следующие строки в созданный файл:
[preferred] default=wlr;gtk;
Этот файл говорит
xdg-desktop-portal
, чтобы по умолчанию использовались портыwlr
иgtk
, что соответствует окружению Wayland и GTK.
Объяснение решения
После создания этого файла xdg-desktop-portal
больше не будет зависать в ожидании, так как теперь он знает, какие порты использовать для обмена данными. Это решение устраняет задержки, позволяя GTK-приложениям запускаться без ожидания, и помогает Waybar корректно стартовать при первом запуске.
Заключение
Ваша проблема с длительным запуском GTK-приложений и проблемами с Waybar решена путем правильной настройки xdg-desktop-portal
. Не забывайте, что сохранение правильной конфигурации критически важно для стабильной работы среды рабочего стола на основе Wayland. Если в дальнейшем вы столкнетесь с подобными проблемами, исследование конфигураций используемых вами сервисов и приложений поможет вам найти решения, устраняющие задержки и другие проблемы.