title: USB devices UDev and D-BUS
body: <p>I am trying to get a list of currently plugged in USB devices in Ubuntu 10.10 and monitor changes that happen, like devices being plugged in or out using UDev and D-BUS. I'm fairly new to programming using D-BUS. I saw one example: <a href="https://stackoverflow.com/questions/4224796/linux-how-to-detect-is-usb-keyboard-is-plugged-and-unplugged">Linux : How to detect is usb keyboard is plugged and unplugged</a> only that one uses HAL and I know that HAL is deprecated. I found some working code, modified it a bit, only it doesn't work for any device only storage devices such as usb sticks, media players or cd-rom devices. I want the whole thing mice, keyboards, usb cameras chargers anything that is plugged in to the USB I want my program to know about it. This is basically what I have ( <a href="http://moserei.de/2010/01/08/accessing-devicekit-with-dbus-and-python.html" rel="nofollow noreferrer">http://moserei.de/2010/01/08/accessing-devicekit-with-dbus-and-python.html</a> ): </p>
  
  <pre><code>import dbus
  import gobject
  from dbus.mainloop.glib import DBusGMainLoop
  
  def device_added_callback(device):
      print 'Device %s was added' % (device)
  
  def device_changed_callback(device):
      print 'Device %s was changed' % (device)
  
  #must be done before connecting to DBus
  DBusGMainLoop(set_as_default=True)
  
  bus = dbus.SystemBus()
  
  proxy = bus.get_object("org.freedesktop.UDisks", 
                         "/org/freedesktop/UDisks")
  iface = dbus.Interface(proxy, "org.freedesktop.UDisks.Device")
  
  devices = iface.get_dbus_method('EnumerateDevices')()
  
  print '%s' % (devices)
  
  #addes two signal listeners
  iface.connect_to_signal('DeviceAdded', device_added_callback)
  iface.connect_to_signal('DeviceChanged', device_changed_callback)
  
  #start the main loop
  mainloop = gobject.MainLoop()
  mainloop.run()
  </code></pre>
  
  <p>Any help would be apreciated. Thank you in advance,
  Calota Romeo</p>