Графическая оболочка Lipstick

Основной домашний экран и область пользовательского интерфейса приложения управляются подсистемой Lipstick, которая обрабатывает:

  • домашний экран и панель запуска приложений;
  • навигацию с помощью жестов в основном системном интерфейсе;
  • окна/композицию приложений;
  • окна и уведомления на системном уровне;
  • окно событий и уведомления на уровне пользовательского пространства;
  • блокировку устройства;
  • переключение атмосферы.

На домашнем экране отображаются основные сведения о статусе устройства (например, уровень заряда аккумулятора, активные мобильные соединения и системное время), а также панель запуска приложений вместе со всеми фоновыми приложениями. На домашнем экране возможно:

  • провести влево или вправо, чтобы переместиться между домашним экраном, окном событий и партнерскими приложениями;
  • провести с верхнего края экрана к нижнему, чтобы просмотреть верхнее меню с атмосферами;
  • провести по экрану снизу вверх, чтобы получить доступ к панели запуска приложений с установленными приложениями.

Фреймворк Lipstick в Mer

Основная архитектура Lipstick реализована в рамках фреймворка Lipstick на git.merproject.org. Sailfish OS создает свой собственный слой пользовательского интерфейса Lipstick, основанный на QML, поверх пользовательского стиля, но основные операции выполняются с помощью библиотеки Lipstick для mer-слоя, которая обеспечивает:

  • точку входа пользовательского интерфейса на основе QML;
  • составление слоя композитора окон;
  • работу системы управления запуском приложений;
  • возможность блокировки экрана;
  • управление уведомлениями о событиях;
  • встроенную поддержку общих уведомлений пользовательского интерфейса, таких как изменения громкости, уровни заряда батареи и сетевые подключения;
  • обработку экрана запуска и завершения работы.

Система управления запуском приложений обеспечивает легкий доступ к добавлению и удалению приложений из панели запуска приложений через D-Bus API (следует ознакомиться с исходным пакетом c документацией, основанной на Doxygen, данного API).

Композитор

Композитор Lipstick управляет всеми отображаемыми окнами. Он использует Qt Wayland для управления отображаемыми поверхностями. Он также обрабатывает изменения ориентации экрана и включение/выключение дисплея.

Доступ к настройкам быстрых действий композитор также управляет перекрытием специальных типов окон, таких как блокировка экрана, системные окна (например, окно подключения к USB) и окна с предупреждающими сообщениями. Помимо этого, композитор реализует возможность «заглядывания» за текущее окно приложения и пролистывания между домашним экраном и другими основными системными экранами при проведении по экрану влево/вправо.

Окно событий

Окно событий обеспечивают быстрый доступ к:

  • дате;
  • текущей погоде и прогнозу;
  • уведомлениям, таким как полученные электронные письма, сообщения и пропущенные сигналы календаря;
  • предстоящим событиям календаря;
  • настройкам быстрых действий и ярлыков для основных функций Sailfish OS (настраиваемых пользователем);
  • другим партнерским приложениям.

Доступ к настройкам быстрых действий и ярлыков осуществляется путем проведения по экрану сверху вниз в окне событий. Быстрые действия обеспечивают удобный доступ к общим функциям, таким как установка будильника и выполнение веб-поиска. Настройка ярлыков позволяет отображать системные настройки в окне событий без перехода через приложение «Настройки». Также и в приложении «Настройки» можно добавлять / удалять ярлыки или действия.

Прошедшие уведомления о событиях автоматически отображаются в окне событий, если они не были настроены иначе.

Уведомления о событиях

Фреймворк уведомлений Lipstick позволяет приложениям отправлять уведомления пользователя на Lipstick, чтобы отображать их в пользовательском интерфейсе. Уведомления могут быть как на системном уровне, например, о низком уровне заряда батареи, так и на уровне пользовательского пространства, например, о получении новых сообщений электронной почты. Фреймворк уведомлений реализует спецификацию уведомлений рабочего стола и получает информацию об уведомлениях через D-Bus.

Подробную документацию о фреймворке уведомлений, основанную на Doxygen, можно найти в исходном пакете Lipstick от Mer.