Файл .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-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 | Просмотр веб-содержимого | Все |