14.08.2022

Представлено новое открытое пользовательское окружение Maui Shell

Разработчики дистрибутива Nitrux, предлагающего собственный рабочий стол NX Desktop, объявили о создании нового пользовательского окружения Maui Shell, которое может применяться на настольных системах, мобильных устройствах и планшетах, автоматически адаптируясь к размеру экрана и доступным методам ввода информации. Код проекта написан на языках C++ и QML, и распространяется под лицензией LGPL 3.0.

Окружение развивает концепцию «Convergence», подразумевающую возможность работы с одними и теми же приложениями как на сенсорных экранах смартфона и планшета, так и на больших экранах ноутбуков и ПК. Например, на базе Maui Shell может быть сформирована оболочка для смартфона, которая при подключении монитора, клавиатуры и мыши позволяет превратить смартфон в портативную рабочую станцию. Одна и та же оболочка может применяться для настольных систем, смартфонов и планшетов, без необходимости создания отдельных версий для устройств с разным форм-фактором.

Оболочка использует компоненты для построения графических интерфейсов MauiKit и фреймворк Kirigami, которые развиваются сообществом KDE. Kirigami является надстройкой над элементами Qt Quick Controls 2, а MauiKit предлагает готовые шаблоны элементов интерфейса, позволяющие очень быстро создавать приложения, автоматически адаптирующиеся к размеру экрана и доступным методам ввода.

Пользовательское окружение Maui Shell образуют два компонента:

  • Оболочка Cask, предоставляющая контейнер, охватывающий всё содержимое экрана. Оболочка также включает базовые шаблоны таких элементов, как верхняя панель, всплывающие диалоги, экранные карты, области уведомлений, dock-панель, ярлыки, интерфейс вызова программ и т.п.
  • Композитный менеджер Zpace, отвечающий за отображение и размещение окон в контейнере Cask, обработку виртуальных рабочих столов. В качестве основного используется протокол Wayland, работа с которым осуществляется при помощи API Qt Wayland Compositor. Позиционирование и обработка окон зависит от форм-фактора устройства.

Верхняя панель содержит область уведомлений, календарь и переключатели для быстрого доступа к различным типовым возможностям, таким как доступ к настройкам сети, изменение громкости, регулировка яркости экрана, управление воспроизведением и управление сеансом. В нижней части экрана размещается dock-панель, на которой отображаются пиктограммы закреплённых приложений, информация о запущенных программах и кнопка для навигации по установленным приложениям (launcher). Доступные программы разделяются по категориям или группируются в зависимости от заданного фильтра.

При работе на обычных мониторах оболочка функционирует в режиме рабочего стола, c закреплённой сверху панелью, которую не перекрывают раскрытые на весь экран окна, а элементы панели автоматически закрываются при клике за их пределами. Интерфейс выбора приложений открывается в центре экрана. Управление рассчитано на использование мыши. Возможно открытие произвольного числа окон, которые могут иметь любой размер, перекрывать друг друга, переноситься на другой рабочий стол и раскрываться на весь экран. Окна имеют рамки и заголовок, отображаемые при помощи компонента WindowControls. Декорирование окон производится на стороне сервера.


[embedded content]

При наличии сенсорного экрана оболочка работает в режиме планшета с вертикальной компоновкой элементов. Открытые окна занимают весь экран и отображаются без элементов декорирования. На одном виртуальном рабочем столе допускается открытие не более двух окон, которые размещаются бок о бок или в стековой форме, по аналогии с мозаичными оконными менеджерами. Возможно изменение размеров окон экранным жестом «щипок» или перемещение окон скольжением тремя пальцами, при перемещении окна за край экрана осуществляется его перенос на другой виртуальный рабочий стол. Интерфейс выбора приложений занимает всё доступное экранное пространство.


[embedded content]

На телефонах элементы панели и список приложения раскрываются на весь экран. Скользящее движение c левой стороны на верхней панели открывает блок со списком уведомлений и календарём, а с правой — блок быстрых настроек. Если содержимое списка программ, уведомлений или настроек не вмещается на один экран, используется прокрутка. Допускается отображение только одного окна для каждого виртуального рабочего стола, которое занимает всё доступное пространство и перекрывает нижнюю панель. При помощи скользящих экранных жестов можно вызвать нижнюю панель или переключиться между открытыми приложениями.

[embedded content]

Проект находится на стадии активной разработки. Из пока нереализованных возможностей отмечается поддержка многомониторных конфигураций, менеджер сеансов, конфигуратор и использование XWayland для запуска X11-приложений в сеансе на базе Wayland. Из функциональности, на которой сейчас акцентируется внимание разработчиков, упоминается поддержка расширения XDG-shell, панелей, виртуальных рабочих столов, механизма Drag&Drop, вывода звука через Pulseaudio, взаимодействия с Bluetooth-устройствами через Bluedevil, индикатора управления сетью, управления медиапроигрывателями через MPRI.

Первый экспериментальный вариант в качестве опции включён в состав декабрьского обновления дистрибутива Nitrux 1.8. Предоставлено два варианта запуска Maui Shell: со своим композитным сервером Zpace, использующим Wayland, и запуск отдельно оболочки Cask внутри сеанса на основе X-сервера. Выпуск первой альфа-версии запланирован на март, бета-версии — на июнь, а первого стабильного выпуска — на сентябрь 2022 года.

Источник.