screenmanagment review :-)

Aike J Sommer dev at aikesommer.name
Tue Sep 2 15:02:57 CEST 2008


Hi,

i have the feeling that my gsoc-project finally is in a state, in which it 
could be made ready for trunk... So i wanna get a discussion started on what 
still needs to be done or what should be changed! :-)

The current state is:
- there is a daemon (kephald) which will monitor xrandr events and change
  configurations accordingly
  - each set of connected monitors will be saved along with the last used
    configuration for them
  - if a known set of monitors is plugged in, that saved configuration will be
    loaded and applied to the monitors (that includes position, size, rate,
    rotation, reflection)
  - if unknown monitors are plugged in a default configuration will be loaded
- theres a library (libkephal) which wraps kephald's d-bus api, which is split 
in 3 parts:
  1) screens: the individual areas available for apps, eg what plasma needs
      for deciding where to put a desktop-containment
  2) outputs: the actual outputs and its connected monitor, needed for
      configuration of those
  3) configurations: the configurations, these have a unique name and can be
      used for context
- theres a dataengine, holding most of the available information from
  libkephal, including jobs for actions like move, resize...
- theres a (very basic) applet for managment of screens, it allows for:
  - moving of an output
  - resizing of an output
  - reverting or confirming the change
  - its not really well tested yet and still lacks lots of possible settings

There is currently only support for xrandr 1.2, but xinerama support is 
already started locally... If xrandr is not available it will just fall back 
to using QDesktopWidget for screen-information, so it should still behave 
kind of sane!! ;-)

My currently planned next steps would be:
 - compile time checks for xrandr 1.2
 - xinerama support
 - maybe nv-control support
 - work on the applet
 - use as much of the applet as possible to create a kcm

What would be needed in plasma:
 - make plasma listen to libkephal's signaling about screen-changes instead of
   qdesktopwidget
 - use the configuration-name for context


There's also a techbase page, where i put some more infos:
http://techbase.kde.org/Projects/Plasma/ScreenManagement


Now... Would be nice to get as much input as possible... :-)
One of my open questions would be: Should kephald be converted into a 
kded-module?
And of course: What do or dont you like?
What did i forget?
What ideas do you have?

:-)


More information about the Plasma-devel mailing list