Экспорт D-Bus интерфейса
Приложения могут предоставлять доступ к собственным службам с помощью механизма D-Bus.
Каждое приложение может иметь несколько интерфейсов, предоставляющих свойства, сигналы и методы для сторонних приложений. Такое приложение будет служить получателем запросов через D-Bus от приложения-отправителя.
Все экспортируемые интерфейсы должны быть зарегистрированы
в .desktop-файле.
с помощью ключевых слов ExecDBus и ExportDBusInterface в секции [X-Application] в формате:
ExecDBus=<path_to_binary>
ExportDBusInterfaces=<название_интерфейса_1>;<название_интерфейса_2>;...
В конце строки точка с запятой не ставится.
Например, секция [X-Application] у получателя может выглядеть следующим образом:
[X-Application]
OrganizationName=ru.omp.test
ApplicationName=fdpass.receiver
ExecDBus=/usr/bin/ru.omp.test.fdpass.receiver
ExportDBusInterfaces=ru.omp.test.fdpass.receiver
В данном случае /usr/bin/ru.omp.test.fdpass.receiver — это путь к исполняемому файлу получателя,
который может быть запущен через D-Bus для обработки запроса.
ru.omp.test.fdpass.receiver — это название D-Bus интерфейса, к которому может обращаться
отправитель запросов.
Название интерфейса состоит из названий организации и приложения.
Для того, чтобы приложение-отправитель могло взаимодействовать с D-Bus-службой конкретного получателя, оно должно содержать в .desktop-файле соответствующее разрешение в формате:
Permissions=<название_интерфейса_1>@<название_организации>.<название_приложения>;<название_интерфейса_2>@<название_организации>.
<название_приложения>;...
В конце строки точка с запятой не ставится.
Названия интерфейсов, организации и приложения должны точно соответствовать данным приложения-получателя.
Например, секция [X-Application] у отправителя может выглядеть следующим образом:
[X-Application]
OrganizationName=ru.omp.test
ApplicationName=fdpass.sender
Permissions=ru.omp.test.fdpass.receiver@ru.omp.test.fdpass.receiver