GNOME готовит сохранение и восстановление сессии, но функция не войдёт в GNOME 51
Разработчики GNOME создают современный механизм, который позволит автоматически возвращать открытые приложения и их рабочее состояние после повторного входа в систему. Однако полноценная реализация не успеет к выпуску GNOME 51, запланированному на 16 сентября 2026 года. Поэтому пользователям придётся подождать, прежде чем GNOME сохранение и восстановление состояния приложений станет штатной возможностью рабочего стола.
О проекте рассказал на конференции GUADEC 2026 Адриан Вовк, разработчик GNOME из команды Red Hat. Концепция напоминает опцию "Открывать окна после входа", знакомую пользователям других окружений. После перезагрузки система должна определить, какие программы работали до завершения сеанса, запустить их заново и вернуть их в максимально близкое к прежнему состоянию.
Предполагается, что приложения смогут восстанавливать не только факт запуска, но и собственное содержимое. Текстовый редактор, например, сможет открыть прежние документы, браузер - вернуть вкладки, а другое приложение - восстановить последнюю страницу или рабочий экран. Таким образом, GNOME восстановление сессии должно избавить пользователей от необходимости вручную собирать рабочее пространство после каждого перезапуска компьютера.
В старой реализации GNOME для X11 уже существовал механизм восстановления сеанса, основанный на протоколе XSMP. Он требовал, чтобы приложения регистрировали команды запуска, которые менеджер сеансов выполнял при следующем входе. Со временем этот подход оказался ненадёжным и плохо соответствовал современной архитектуре рабочего стола. Особенно заметными стали проблемы с изолированными и sandbox-приложениями: менеджеру приходилось хранить и запускать произвольные командные строки.
После отказа от поддержки X11 старый механизм фактически исчез. Новая архитектура должна опираться на desktop portal. Вместо команд система будет отслеживать приложения по их идентификаторам и запускать их через соответствующие файлы `.desktop`. При повторном старте программа сможет получить информацию о причине восстановления - например, после выхода пользователя из системы или после сбоя.
Отдельная часть работы связана с управлением окнами в Wayland. В отличие от X11, приложения Wayland не могут произвольно выбирать координаты и размеры своих окон. Поэтому GNOME использует протокол `xdg_session_management_v1`. Программа запрашивает у композитора специальный токен, Mutter сохраняет связанные с ним параметры окна, а при следующем запуске приложение передаёт токен обратно. Это позволяет композитору восстановить положение и свойства окна централизованно.
Главная сложность сейчас находится на уровне GTK и программного интерфейса для разработчиков. GNOME необходимо предложить единый способ описания и восстановления внутреннего состояния приложений, чтобы каждому проекту не пришлось самостоятельно создавать подобную систему. Ожидается, что GTK сможет отвечать за сохранение состояния отдельных окон, периодическую запись данных и восстановление информации ещё до того, как окно станет активным.
Портал также пока не завершён. Его основные принципы уже обсуждались с разработчиками KDE и Firefox, однако технические детали требуют доработки. В GNOME 50 появился внутренний backend API, но его полноценный переход на desktop portal зависит от готовности пользовательской части интерфейса. Подробное описание архитектуры и текущего прогресса доступно в материале о том, как восстановить сессию в GNOME и какие компоненты для этого создаются.
В GNOME 51, вероятно, появится важная инфраструктура для будущей функции: поддержка со стороны Mutter, развитие Wayland-протокола и дальнейшая работа над GTK API. Но готовой пользовательской опции с полным восстановлением рабочего окружения в этом выпуске не будет. Разработчики пока не называют точную версию, в которой механизм станет доступен всем пользователям.
При этом проект уже вышел за рамки предварительной идеи. Протокол разрабатывается, поддержка на стороне композитора постепенно появляется, а обсуждение portal-интерфейса ведётся сразу в нескольких крупных проектах. Это повышает вероятность того, что будущая функция окажется совместимой не только с приложениями GNOME, но и с программами, использующими общие стандарты Linux.
Для пользователей новая система может стать более надёжной альтернативой ручной настройке автозапуска приложений GNOME. Сегодня многие решают задачу через автозапуск отдельных программ, пользовательские `.desktop`-файлы или сторонние расширения. Такой подход запускает приложения, но обычно не умеет возвращать вкладки, документы, виртуальные рабочие столы и конкретное состояние интерфейса.
Важным преимуществом станет и безопасность. Запуск через идентификаторы приложений и их desktop-файлы лучше соответствует модели sandbox, чем выполнение сохранённых командных строк. Это особенно актуально для Flatpak-программ, которым требуется чётко контролируемое взаимодействие с системой и пользовательскими данными.
Новая архитектура также способна улучшить поведение приложений после аварийного завершения. Если программа поддерживает сохранение состояния, она сможет восстановить рабочие данные не только после обычного выхода из сеанса, но и после сбоя или неожиданной перезагрузки. Однако итоговый результат будет зависеть от того, насколько активно разработчики конкретных приложений интегрируют соответствующие возможности GTK и портала.
Таким образом, новые функции GNOME 51 в этой области будут скорее фундаментом, чем завершённым пользовательским инструментом. GNOME последовательно переходит к более современной модели управления сеансами, рассчитанной на Wayland, sandbox-приложения и единый API восстановления. Полная версия механизма появится позже, но её архитектура уже формируется. GNOME сохранение и восстановление состояния приложений в перспективе может заметно изменить повседневную работу с Linux-десктопом.


