То, что я знаю из своего опыта, чтобы получить пути к объектам имени шины (службы), можно провести интроспекцию с помощью пути к объекту '/', т.е. (используя приведенный выше пример)
introspectfunc('org.freedesktop.UPower', '/')
это должно вернуть:
<node name="/">
<node name="org"/>
<node name="org"/>
<node name="org"/>
<node name="org"/>
<node name="org"/>
<node name="org"/></node>
затем самоанализ с помощью пути '/ org'
introspectfunc('org.freedesktop.UPower', '/org')
это должно вернуть:
<node name="/org">
<node name="freedesktop"/>
<node name="freedesktop"/>
<node name="freedesktop"/>
<node name="freedesktop"/>
<node name="freedesktop"/>
<node name="freedesktop"/></node>
и так далее:
introspectfunc('org.freedesktop.UPower', '/org/freedesktop')
introspectfunc('org.freedesktop.UPower', '/org/freedesktop/UPower')
etc.
Это похоже на просмотр структуры папок на жестком диске, где путь к объекту '/' - это корень, а каждый узел - это вложенная папка. Это кажется лучшим способом получить пути к объектам определенного имени шины (службы) и создать коллекцию, содержащую пути к объектам
{{1 }}Приложению, работающему в терминале, нелегко узнать, находится терминал в фокусе или нет. Однако сам терминал может вам помочь.
Вот ваши варианты с терминалами macOS:
Терминал.приложение
В разделе «Профили» → «Дополнительно» → «Звонок» вы можете отключить звуковой сигнал, но включите «Отражение значка приложения в фоновом режиме».
iTerm2
Как и в Terminal.app, в разделе «Профили» → «Терминал» → «Уведомления» вы можете отключить звонок и включить оповещения центра уведомлений.
Если вы используете tmux, вы также можете изменить поведение в настройках tmux. Глобальная опция bell-action
управляет тем, что происходит, когда в одном из ваших окон звонит звонок 1 . По умолчанию установлено значение any
, что означает, что звонки будут звонить всегда. Вы можете изменить его на звонок только для окон, отличных от текущего окна, с помощью
set -g bell-action other