Единственный разработчик GNOME Boxes, Фелипе Боргес, представил полностью переписанную бета-версию приложения, работающую только через Flatpak и основанную на современном интерфейсном фундаменте.

Совмещая основную работу в Red Hat с обязанностями мейнтейнера GNOME Settings, Фелипе рассказывает, что трудился над проектом в одиночку последние два года, делясь подробностями на встречах сообщества.

Первым архитектурным решением стал отказ от всех форматов, кроме Flatpak. Boxes выполняет роль фронтенда для libvirt и QEMU, поэтому его поведение сильно зависит от того, какие версии компонентов предоставляет хост-дистрибутив. Поддерживать отдельные ветки кода для каждого дистрибутива в одиночку нереально, так что новая сборка включает полный стек виртуализации вместо того, чтобы полагаться на хост.

Второе решение бросается в глаза сразу: Boxes переехал на GTK4 и Libadwaita, отказавшись от старого виджета SPICE на GTK3 в пользу нового дисплейного виджета Libmks. Именно здесь окончательно исчезает устаревший визуальный стиль.

Третьим шагом стала доработка поддержки Windows 11: обновлённый Boxes теперь способен установить систему без ручных обходных путей и прочей магии, поскольку самостоятельно настраивает Secure Boot и виртуальный модуль TPM.

Кроме того, новое устройство VSOCK обходит ограничения песочницы Flatpak и позволяет подключаться к гостевой системе по SSH напрямую, если в ней используется systemd версии 256 или новее. Также появилась предварительная поддержка проброса портов, пока охватывающая SSH и HTTP.

Что изменилось?

*Заметили разницу? Не обращайте внимания на полосы в заголовке справа.*

Весь облик обновлённого Boxes определяют новые компоненты интерфейса. Несмотря на это, приложение с первого взгляда показалось знакомым. Даже постоянный пользователь прежнего Boxes без труда ориентируется в интерфейсе.

Процесс создания новой виртуальной машины (ВМ) отлично подтверждает это ощущение. При запуске установки Windows 11 Boxes самостоятельно подставил подходящие объёмы памяти и накопителя и сразу выбрал UEFI в качестве предпочтительного способа загрузки, без какого-либо вмешательства.

**Сама установка прошла без сучка и задоринки**, однако затем Windows потребовала учётную запись Microsoft, не подпуская к рабочему столу, так что на этом пришлось остановиться.

Тем не менее, меню из трёх точек в правом верхнем углу окна виртуальной машины предоставило достаточно возможностей и до этого момента: можно делать снимки экрана, отправлять комбинации клавиш и открывать полноценную страницу Свойств.

К слову, всё это совсем не похоже на то, что предлагает нынешняя версия Boxes. 🤓

Видео выше демонстрирует новый диалог свойств. То, что раньше было частью одного окна с меню в заголовке, теперь превратилось в диалоговое окно с боковой панелью, где размещены семь разделов.

Общие, Ресурсы, Сеть, Устройства, Снимки, Журналы и Конфигурация.

Раздел Ресурсы позволяет изменять объём ОЗУ и размер хранилища; Устройства управляют порядком загрузки и сменными носителями; Журналы показывают реальные команды, которые Boxes выполняет внутри; а Конфигурация предоставляет необработанный Libvirt Domain XML для прямого редактирования.

Страница Сеть даёт возможность пробрасывать порты с хоста в виртуальную машину, с переключателями для SSH и HTTP. Страница Снимки позволяет зафиксировать точное состояние ВМ в определённый момент, а затем откатиться к нему или удалить.

диалог свойств виртуальной машины в GNOME Boxes
диалог свойств виртуальной машины в GNOME Boxes
Сравните это с текущей версией Boxes (*показана выше*). Классическое окно свойств вмещает *Ресурсы*, *Устройства и общие папки* и *Снимки* всего в три вкладки, которые функциональны, но крайне неуклюжи.

Однако не обошлось без серьёзной накладки. Виртуальная машина с Windows 11 аварийно завершилась вскоре после создания снимка. Точную причину выяснить не удалось, хотя вероятным виновником стало извлечение ISO-образа примерно в тот же момент.

До этого была предпринята попытка установить EndeavourOS, но она постоянно завершалась ошибкой неподдерживаемой конфигурации, что бы ни пробовалось. Переключение типа ОС между Generic Linux и Arch Linux, а также прошивки между UEFI и Legacy BIOS ни к чему не привело.

**Поменялась и пара мелочей**. Выход из окна виртуальной машины теперь выполняется по `Super+Escape` вместо прежнего сочетания `Ctrl+Alt`. Также исчезла отдельная кнопка полноэкранного режима, и клавиша `F11` тоже ничего не делает.

Попробуйте сами

Если у вас Ubuntu или другой дистрибутив на основе Debian, для запуска бета-версии понадобится всего несколько команд в терминале. Сначала нужно установить Flatpak.

В нашем руководстве описан весь процесс, если Flatpak ещё не установлен. Когда всё готово, добавьте репозиторий GNOME Nightly:

flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
Затем можно проверить содержимое репозитория перед установкой:
flatpak remote-ls --app gnome-nightly

Как только увидите в списке org.gnome.Boxes.Devel, установите его командой:

flatpak install gnome-nightly org.gnome.Boxes.Devel

Это по-прежнему бета-версия, поэтому заранее сделайте резервные копии важных виртуальных машин и не удивляйтесь, если столкнётесь с упомянутыми выше шероховатостями.