Файл .desktop
.desktop-файл приложения должен обладать следующей структурой:
Type=Application
X-Nemo-Application-Type=silica-qt5
Icon={название_пакета}
Exec={команда_запуска}
Name={отображаемое_название_приложения_на_английском_языке}
Name[ru]={отображаемое_название_приложения_на_русском_языке}
[X-Application]
Permissions={список_разрешений}
OrganizationName={доменное_имя}
ApplicationName={название_приложения}
ExecDBus={команда_запуска_для_службы_D-Bus}
ExportDBusInterfaces={название_интерфейса_1};{название_интерфейса_2};...
Ключи и разделы:
- X-Nemo-Application-Type
- Icon
- Exec
- Name
- Запуск нескольких экземпляров приложения
- Изоляция приложений
- Список разрешений
- Секция X-Aurora-SplashScreen
- Секция X-Aurora-Application
X-Nemo-Application-Type
Строка X-Nemo-Application-Type=silica-qt5
указывает,
что приложение использует модуль Silica.
Это позволяет ускорить запуск графического интерфейса пользователя.
Icon
Ключ Icon
должен содержать общее базовое имя файлов значка приложения.
Согласно требованиям оно совпадает с названием пакета.
Exec
Ключ Exec
должен содержать команду,
которая выполняется при запуске приложения:
Exec=/usr/bin/{название_пакета}
, если приложение содержит исполняемый бинарный файл;Exec=sailfish-qml {название_пакета}
, если приложение реализовано только на QML.
Name
Ключ Name
определяет название приложения на экране приложений ОС Аврора.
Его значение не обязательно должно совпадать с названием пакета или быть уникальным.
Таким образом, на экране приложений ОС Аврора
могут быть несколько значков с одинаковым названием.
Для локализации названия приложения используется конструкция Name[<двухбуквенный_код_языка>]
.
Например, Name[ru]
позволяет задать название приложения для русскоязычного интерфейса.
Запуск нескольких экземпляров приложения
Для приложений рекомендуется использовать запуск только одного экземпляра,
когда повторное касание значка приложения откроет окно запущенного ранее экземпляра.
Если по какой-либо причине требуется отключить такое поведение,
то в .desktop-файл следует добавить строку X‑Nemo‑Single‑Instance=no
.
Если требуется не только запускать несколько экземпляров приложения, но и управлять
количеством обложек, то следует обратиться к параметру X-Aurora-Single-Cover
.
X-Aurora-Single-Cover=no
разрешает несколько обложек, X-Aurora-Single-Cover=yes
ограничивает
количество обложек одной.
Настраивать X-Aurora-Single-Cover
имеет смысл только когда задано значение
X‑Nemo‑Single‑Instance=no
.
Изоляция приложений
Начиная с ОС Аврора версии 4.0.1 каждое приложение запускается в изолированном окружении,
которое ограничивает доступ к API и данным.
Раздел [X-Application]
позволяет настроить параметры изоляции приложения.
Он обязательно должен быть описан.
Ключ Permissions
определяет список необходимых приложению разрешений
в виде набора строк, разделённых знаком ;.
Например, Permissions=Audio;Location
.
Разрешения для использования API и доступа к директориям пользователя в приложениях приведены в списке. Разрешения для использования API также приводятся в описаниях библиотек в разделе Допустимые зависимости приложений ОС Аврора и в статьях справочной документации по API. Разрешения для доступа к директориям пользователя описаны в разделе Данные пользователя.
Ключи OrganizationName
и ApplicationName
используются для предоставления доступа к директориям, соответствующим приложению,
и должны содержать {доменное_имя}
и {название_приложения}
соответственно.
Ключ ExecDBus
используется для создания service-файла systemd,
регистрирующего D-Bus службу для приложения.
{команда_запуска_для_службы_D-Bus}
, описываемая этим ключом, должна содержать
полный путь до основного или дополнительного исполняемого файла приложения,
а также может включать параметры запуска.
На основе значений ключей .desktop-файла при установке RPM-пакета
будет сгенерирован файл {доменное_имя}
.{название_приложения}
.service.
Таким образом, при обращении к службе D-Bus {доменное_имя}.{название_приложения}, если она не зарегистрирована в системе, будет выполняться команда
/usr/bin/invoker --type=silica-qt5 --id={доменное_имя}.{название_приложения} --single-instance {команда_запуска_для_службы_D-Bus}
В результате её выполнения будет запущен основной или дополнительный исполняемый файл приложения, который может обработать аргументы командной строки и должен зарегистрировать службу D-Bus {доменное_имя}.{название_приложения}.
Экспортировать собственную D-Bus-службу можно с помощью ключа ExportDBusInterfaces
.
ExportDBusInterfaces={название_интерфейса_1};{название_интерфейса_2};...
Список разрешений
Разрешения используются для использования API и для доступа к директориям пользователя
Разрешение | Описание | Профиль |
---|---|---|
AccessSecurityLog | Чтение, запись и прослушивание событий безопасности | MDM |
Audio | Воспроизведение и запись аудио, отображение элементов управления аудио на Экране блокировки | Все |
AuthService | Обмен аутентификационными данными пользователя со службой аутентификации | Все |
Bluetooth | Подключение и использование Bluetooth-устройств | Все |
Call | Работа в качестве сервиса голосовых вызовов, использование интерфейса приложения Телефон для создания и управления голосовыми вызовами | Все |
Camera | Съёмка фотографий и видео | Все |
DeviceInfo | Извлечение данных об этом устройстве | Все |
Documents | Использование сохранённых файлов документов | Все |
Downloads | Использование загруженных файлов | Все |
Internet | Использование подключения к Интернету | Все |
Location | Использование геолокации с высокой и низкой точностью | Все |
LogSecurityEvents | Регистрация событий в журнале безопасности | Antivirus, MDM, Extended |
ManagedConfiguration | Использование унифицированной настройки | Все |
ManagedConfigurationAdmin | Работа с приложениями, поддерживающими унифицированную настройку | MDM |
Market | Разрешение на установку и удаление приложений магазина | Market |
MediaIndexing | Список файлов, хранящихся на устройстве | Все |
Microphone | Запись звука с помощью микрофона | Все |
Music | Использование сохранённых музыкальных файлов | Все |
NFC | Подключение и использование устройств с NFC | Все |
Pictures | Использование сохранённых файлов изображений | Все |
Printing | Обнаружение и использование доступных принтеров | Все |
PublicDir | Доступ к общей папке | Все |
PushNotifications | Получение push-уведомлений | Все |
RemovableMedia | Использование карты памяти и USB-накопителей | Все |
ScreenCapture | Получение содержимого экрана | Все |
SecureStorage | Secure Storage для зашифрованных паролем файлов приложений | Все |
Sensors | Доступ к показаниям датчиков устройства | Все |
UserdataWiper | Удаление пользовательских данных | Все |
UserDirs | Общий доступ к пользовательским каталогам | Все |
Videos | Использование сохранённых видеофайлов | Все |
VPN | Управление VPN-соединениями | MDM, Extended |
WebView | Просмотр веб-содержимого | Все |
Секция X-Aurora-SplashScreen
Для всех запускаемых приложений имеется упрощённый экран заставки, который раскрывается при нажатии на иконку приложения.
Автоматически выбранные цвета возможно переопределить полями GradientStartColor
и GradientEndColor
в секции X-Aurora-SplashScreen
.
GradientStartColor
— начало градиента, слева-сверху.GradientEndColor
— конец градиента, справа-снизу.
Пример:
[X-Aurora-SplashScreen]
GradientStartColor=#AAA000
GradientEndColor=#FEDCBA
Секция X-Aurora-Application
Ориентация приложения
Когда приложение работает в какой-либо исключительной ориентации (только в альбомной или только в портретной), можно заранее подготовить Домашний экран пользователя, "повернув" его в правильную ориентацию до запуска непосредственно самого приложения.
Такое поведение определяется группой полей в секции X-Aurora-Application
:
SmallScreenOrientation
— для устройств с категориейSilica.Screen.sizeCategory == Silica.Screen.Small
.MediumScreenOrientation
— для устройств с категориейSilica.Screen.sizeCategory == Silica.Screen.Medium
.LargeScreenOrientation
— для устройств с категориейSilica.Screen.sizeCategory == Silica.Screen.Large
.ExtraLargeScreenOrientation
— для устройств с категориейSilica.Screen.sizeCategory == Silica.Screen.ExtraLarge
.Orientation
— для устройств любой категории, но может быть переопределено другим полем из списка выше.
Значения, принимаемые в данных полях: Portrait
, Landscape
, PortraitInverted
,
LandscapeInverted
, PortraitMask
, LandscapeMask
, All
.
Каждое поле может принимать либо одну конкретную ориентацию из предложенного списка, либо список возможных значений, задаваемый через символ ; (точка с запятой).
Пример для приложения, которое может работать во всех ориентациях, но на устройствах с маленьким дисплеем — только в портрете:
[X-Aurora-Application]
Orientation=All
SmallScreenOrientation=Portrait
Пример для приложения, которое может работать только в неинвертированных ориентациях:
[X-Aurora-Application]
Orientation=Portrait;Landscape
Иконка приложения
По умолчанию иконки отрисовываются на белом фоне с размером 80% от оригинального.
Переопределить такое поведение можно полем IconMode
в секции X-Aurora-Application
, которое
может принимать одно из двух значений:
Scale
— по умолчанию, иконка масштабируется.Crop
— иконка отрисовывается без масшабирования, а края подрезаются системной формой.
Пример:
[X-Aurora-Application]
IconMode=Crop