Многие пользователи привыкли, чтобы после входа в систему их встречали уже готовые к работе приложения. И Linux предоставляет исчерпывающие средства для реализации автозагрузки: на ум сразу приходят записи cron и пользовательские юниты systemd. Но когда речь идёт о Flatpak, существует и ещё один способ, который и используют сами приложения.
Возьмём для примера Telegram Desktop и Discord. Первое приложение поставляет по умолчанию возможность добавить себя в автозагрузку, второе же – только номинально: опция есть, но к результату никакому она не приводит.
Добавление в автозагрузку
Перейдите в каталог:
/home/{USERNAME}/.config/autostart
Здесь необходимо создать файл с именем по следующему образцу:
{FLATPAK_NAME}.desktop
Узнать имя пакета Flatpak можно, выполнив команду:
flatpak list
Конкретно в нашем примере должно получиться так:
com.discordapp.Discord.desktop
После этого открываем файл и записываем в него следующее содержимое на примере того же Discord:
[Desktop Entry]
Type=Application
Name=com.discordapp.Discord
Exec=flatpak run com.discordapp.Discord --start-minimized
X-Flatpak=com.discordapp.Discord
Разберём, что здесь написано. Мы указываем системе при старте запускать приложение с именем нашего пакета Flatpak. Для запуска используем команду flatpak run, которой также передаём имя пакета и добавляем флаг --start-minimized для того, чтобы наше приложение запускалось в свёрнутом режиме (можно убрать его, тогда окно будет появляться на рабочем столе).
Сохраняем файл, перезагружаемся и видим в фоновых процессах наше приложение. Для отключения автозагрузки достаточно удалить файл.