Dbus: Difference between revisions

From Leo's Notes
This page was last edited on 24 February 2017, at 04:19.
Added see also links
m Text replacement - "{{highlight|lang=bash" to "{{highlight|lang=terminal"
Line 11: Line 11:
== Watching For Messages / Events ==
== Watching For Messages / Events ==
You can watch the dbus for messages using the {{code|dbus-monitor}} utility. A filter can be passed as an argument. For example, to limit only messages sent by the GNOME SessionManager:
You can watch the dbus for messages using the {{code|dbus-monitor}} utility. A filter can be passed as an argument. For example, to limit only messages sent by the GNOME SessionManager:
{{highlight|lang=bash|code=
{{highlight|lang=terminal|code=
dbus-monitor "type=signal,sender='org.gnome.SessionManager'"
dbus-monitor "type=signal,sender='org.gnome.SessionManager'"
}}
}}
Line 19: Line 19:


Eg:
Eg:
{{highlight|lang=bash|code=
{{highlight|lang=terminal|code=
gdbus call --session --dest org.gnome.SessionManager \
gdbus call --session --dest org.gnome.SessionManager \
   --object-path /org/gnome/SessionManager/Presence \
   --object-path /org/gnome/SessionManager/Presence \

Revision as of 04:19, 24 February 2017

Dbus is a messaging system used in Linux display managers such as GNOME.

Accessing Dbus

Dbus is accessed using a socket whose location is defined as an environment variable named DBUS_SESSION_BUS_ADDRESS. Typically, it will look something like:

DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-2L2ZxqLwNR,guid=9bf5b79ea33d45373491174856252e15

This environment variable must be defined in order for Dbus utilities to work properly.

Watching For Messages / Events

You can watch the dbus for messages using the dbus-monitor utility. A filter can be passed as an argument. For example, to limit only messages sent by the GNOME SessionManager:

dbus-monitor "type=signal,sender='org.gnome.SessionManager'"

Sending Messages

Messages can be sent using dbus call or dbus-send.

Eg:

gdbus call --session --dest org.gnome.SessionManager \
  --object-path /org/gnome/SessionManager/Presence \
  --method org.gnome.SessionManager.Presence.SetStatus 0

See Also

Gnome Presence Key

Gnome Screensaver (doesn't seem to work)