[Kde-hardware-devel] [PATCH] Add docking station support to Solid

Will Stephenson wstephenson at kde.org
Sat Nov 21 09:24:21 CET 2009


The attached patch adds support for laptop docking stations to Solid.  Knowing 
when the machine is docked will allow us to modify powersaving policy while 
docked, eg don't lock the screen if lid closed while docked, and help fix 
https://bugs.kde.org/show_bug.cgi?id=185460.

The missing part is how to instantiate a DockStation device in the hal 
manager, because in hal, dockstation isn't a capability and we use 
FindByCapability only.

Instead it seems to only be defined by the presence of an interface it 
supports.  I attach an extract from lshal to demonstrate this.  Solid-hal 
expert(s): is there an obvious way to deal with this?  Holger, how did you 
handle this in GNOME?

Will
-------------- next part --------------
A non-text attachment was scrubbed...
Name: solid_dockstation.diff.zip
Type: application/zip
Size: 3744 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-hardware-devel/attachments/20091121/7c559838/attachment.zip 
-------------- next part --------------
udi = '/org/freedesktop/Hal/devices/platform_dock_1'
  info.docked = false  (bool)
  info.interfaces = {'org.freedesktop.Hal.Device.DockStation'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.product = 'Platform Device (dock.1)'  (string)
  info.subsystem = 'platform'  (string)
  info.udi = '/org/freedesktop/Hal/devices/platform_dock_1'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'platform'  (string)
  linux.sysfs_path = '/sys/devices/platform/dock.1'  (string)
  org.freedesktop.Hal.Device.DockStation.method_argnames = {''} (string list)
  org.freedesktop.Hal.Device.DockStation.method_execpaths = {'hal-dockstation-undock'} (string list)
  org.freedesktop.Hal.Device.DockStation.method_names = {'Undock'} (string list)
  org.freedesktop.Hal.Device.DockStation.method_signatures = {''} (string list)
  platform.id = 'dock.1'  (string)

udi = '/org/freedesktop/Hal/devices/platform_dock_0'
  info.docked = true  (bool)
  info.interfaces = {'org.freedesktop.Hal.Device.DockStation'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.product = 'Platform Device (dock.0)'  (string)
  info.subsystem = 'platform'  (string)
  info.udi = '/org/freedesktop/Hal/devices/platform_dock_0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'platform'  (string)
  linux.sysfs_path = '/sys/devices/platform/dock.0'  (string)
  org.freedesktop.Hal.Device.DockStation.method_argnames = {''} (string list)
  org.freedesktop.Hal.Device.DockStation.method_execpaths = {'hal-dockstation-undock'} (string list)
  org.freedesktop.Hal.Device.DockStation.method_names = {'Undock'} (string list)
  org.freedesktop.Hal.Device.DockStation.method_signatures = {''} (string list)
  platform.id = 'dock.0'  (string)




More information about the Kde-hardware-devel mailing list