Plasma/shellswitching: Difference between revisions

From KDE Community Wiki
Line 27: Line 27:
All the shells will be replaced by an upgraded plasma-device.  
All the shells will be replaced by an upgraded plasma-device.  
* control UI (add widgets, e.g.) will move into the shell QML, just as it is with plasma-device now in Plasma Active.
* control UI (add widgets, e.g.) will move into the shell QML, just as it is with plasma-device now in Plasma Active.
** for desktop that includes: activity switcher, add widgets, panel settings
* will listen to the workspace change signal from the kded module and possibly load a different workspace QML structure
* will listen to the workspace change signal from the kded module and possibly load a different workspace QML structure
* the following features from plasma-desktop must be ported:
* the following features from plasma-desktop must be ported:
* multiple panels
** multiple panels
* multi-screen awareness
** multi-screen awareness
** integrate Desktop Scripting (perhaps even becoming the way layouts are set up)
* a single DBus API will need to be settled on (alternative is allowing each shell layout to define a custom one; technically more difficult and the benefit is undefined)


==kwin==
==kwin==

Revision as of 12:09, 1 February 2013

definitions

  • shell: the binary that loads full screen and displays desktop, panels, etc. currently those would be: plasma-desktop, plasma-netbook, plasma-device, etc.
  • workspace: a full arrangement of shell (+ default layout), window manager, GUI utilities (e.g. krunner) and infrastructure processes (kactivitymanagerd, e.g.)

Workspace definitions

Workspaces should be defined by self-contained Plasma Packages, one per workspace setup, containing:

  • processes other than the shell and window manager that are required (e.g. krunner, software keyboard)
  • QML layout to use (perhaps also included in package?)
  • kwin configuration
  • other application configuration (krunner, e.g.?)

Track workspace setting in a kded module

What is the current workspace will be tracked by a kded module. Features:

  • auto-switching based on triggers.
    • screen change
    • docking
    • custom user signal?
  • manual switching via dbus (perhaps tied to window manager; see secdtion on kwin)
  • dbus signal emitted when workspace changes
    • shell may load a different QML layout
    • kwin may change settings
  • start/stop processes according to workspace definition.
    • e.g. "desktop" will want to start krunner; switching to "netbook" which does not include krunner in its definition would result in krunner being stopped
    • re-use session management for this? some custom configuration system? modified startactive? systemd? or ...?

plasma-device becomes the only shell

All the shells will be replaced by an upgraded plasma-device.

  • control UI (add widgets, e.g.) will move into the shell QML, just as it is with plasma-device now in Plasma Active.
    • for desktop that includes: activity switcher, add widgets, panel settings
  • will listen to the workspace change signal from the kded module and possibly load a different workspace QML structure
  • the following features from plasma-desktop must be ported:
    • multiple panels
    • multi-screen awareness
    • integrate Desktop Scripting (perhaps even becoming the way layouts are set up)
  • a single DBus API will need to be settled on (alternative is allowing each shell layout to define a custom one; technically more difficult and the benefit is undefined)

kwin

  • kwin will need to be able to source different sets of configuration files and change it's configuration in response to the signal
  • an elegant desktop effect to make the workspace UI reshuffle smooth
    • a simple fade to black with a busy spinner , followed by a fade back in would be enough
    • requires that kwin is the first process that starts switching
    • requires that kwin controls when the change signal is emitted to other processes
    • requires that applications provide feedback as to when they are finished transforming to trigger the fade in
    • unload/load window decoration, currently either a decoration is required (desktop) or hard disabled in code (active)

application integration

would be fantastic if applications can also adjust; e.g. okular switch from desktop to touch UI on workspace change.