Plasma/shellswitching

From KDE Community Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.
  • 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

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.