Review Request 112294: Implement multi-seat support in KDM

Stefan Brüns stefan.bruens at
Sun May 18 20:44:57 BST 2014

This is an automatically generated e-mail. To reply, visit:

(Updated May 18, 2014, 7:44 p.m.)

Review request for kde-workspace and Oswald Buddenhagen.


Enhanced the patch based on feedback.

The second patch adds a DynamicServers option. Displays are specified like for StaticServers, e.g. "DynamicServers=:10,:11". The seat name can be specified in place of the class name, e.g. "DynamicServers=:10_ at seat-left,:11_ at seat-right". If the seat name is specified each server can be provided with its own set of options, e.g:

[X-:*_ at seat-left-Core]
ServerArgsLocal=-layout seat-left

This patch also fixed two bugs in the config/class matching code. The class name in the display list included the "_" separator, and the class in the section name did not strip the "-" character between class name and subsection name.

Repository: kde-workspace


This patch implements dynamic multiseat in KDM. It follows the description in:

In case systemd is no found at compile time, nothing changes. If logind is not running, nothing changes. If no additional seats have been configured (some Plugable USB-GPUs are automatically added as additional seats), nothing changes.

In case there are additional seats beyond seat0, a reserved display is promoted to a local static one (and demoted if the seat is removed) and a new X-Server/greeter is spawned.

The code has been tested extensively, with a combination of [Radeon dedicated GPU|Intel iGPU], [Intel iGPU|Displaylink USB GPU] and others. For history of this patch, see and

Diffs (updated)

  kdm/backend/dm.h b2f8c61 
  kdm/backend/dm.c 77a2ef7 
  kdm/backend/dpylist.c b650c2f 
  kdm/backend/resource.c 38a8c70 
  kdm/config.def 751c0ed 
  kdm/kfrontend/kdm_config.c 368c8d1 



Single seat system, several multiseat systems


Stefan Brüns

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the kde-core-devel mailing list