class DBus::ASessionBus
D-Bus session bus class¶ ↑
The session bus is a session specific bus (mostly for desktop use).
Use SessionBus, the non-singleton ASessionBus is for the test suite.
Public Class Methods
address_from_file()
click to toggle source
# File lib/dbus/bus.rb 617 def self.address_from_file 618 # systemd uses /etc/machine-id 619 # traditional dbus uses /var/lib/dbus/machine-id 620 machine_id_path = Dir["{/etc,/var/lib/dbus,/var/db/dbus}/machine-id"].first 621 return nil unless machine_id_path 622 machine_id = File.read(machine_id_path).chomp 623 624 display = ENV["DISPLAY"][/:(\d+)\.?/, 1] 625 626 bus_file_path = File.join(ENV["HOME"], "/.dbus/session-bus/#{machine_id}-#{display}") 627 return nil unless File.exist?(bus_file_path) 628 629 File.open(bus_file_path).each_line do |line| 630 if line =~ /^DBUS_SESSION_BUS_ADDRESS=(.*)/ 631 address = Regexp.last_match(1) 632 return address[/\A'(.*)'\z/, 1] || address[/\A"(.*)"\z/, 1] || address 633 end 634 end 635 end
new()
click to toggle source
Get the the default session bus.
Calls superclass method
DBus::Connection::new
# File lib/dbus/bus.rb 606 def initialize 607 super(self.class.session_bus_address) 608 send_hello 609 end
session_bus_address()
click to toggle source
# File lib/dbus/bus.rb 611 def self.session_bus_address 612 ENV["DBUS_SESSION_BUS_ADDRESS"] || 613 address_from_file || 614 "launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET" 615 end