# dbus/connect Connect to a D-Bus bus and complete the SASL auth + `HELLO` handshake synchronously, so the connection is ready for calls, subscriptions, and exports immediately. ## Syntax
[dbus/connect ?opts]
## Parameters - `$opts` — optional map: - `:addr` — bus address string (e.g. `"unix:path=/run/user/1000/bus"`) - `:system` — `true` selects `unix:path=/run/dbus/system_bus_socket` Defaults to the session bus: `$DBUS_SESSION_BUS_ADDRESS`, else `$XDG_RUNTIME_DIR/bus`, else `/run/user/<uid>/bus`. `:system true` overrides `:addr`. ## Examples
set conn [dbus/connect]                       # session bus
set sys  [dbus/connect %{ :system true }]     # system bus
set priv [dbus/connect %{ :addr "unix:path=/tmp/testbus" }]
## Returns A `dbus_conn` native resource, or `%Err{:message}` on a bad address, a missing daemon (`"bus daemon not running"`), or a failed handshake. The resource is closed by `dbus/disconnect` or the GC finalizer. ## See Also `dbus/call`, `dbus/subscribe`, `dbus/export`, `dbus/info`