KWin/Ideas: Difference between revisions

From KDE Community Wiki
(WindowPaintData is in refactoring)
Line 4: Line 4:
KWin provides window tiling which is hardly maintained and unknown to the core KWin team. The idea behind this task is to reimplement the tiling functionality as a KWin Script. This has several advantages: tiling gets properly decoupled from KWin core reducing the maintenance costs for the core team. It would also proof that KWin Scripts are powerful enough to implement a complete new window management concept.
KWin provides window tiling which is hardly maintained and unknown to the core KWin team. The idea behind this task is to reimplement the tiling functionality as a KWin Script. This has several advantages: tiling gets properly decoupled from KWin core reducing the maintenance costs for the core team. It would also proof that KWin Scripts are powerful enough to implement a complete new window management concept.


= Use KWin::Options in KCMs =
= Port KCMs to KConfigXT =
Since 4.9 the internal KWin::Options provide the default options as static member functions. In KWin's configuration modules the default values are still hard coded. It would make sense to use the static functions to set the default values.
KWin's settings are partially described by kconfigxt which would allow to move the configuration modules (KCM) to be generated from KConfigXT.


= Shader Support for AnimationEffect =
= Shader Support for AnimationEffect =

Revision as of 10:17, 11 April 2013

This page lists a few ideas of simple tasks to be implemented in KWin. If you want to work on one, please check with the KWin team whether anybody is working on it already. If you need help on your task you can always contact the KWin team.

Tiling as KWin Script

KWin provides window tiling which is hardly maintained and unknown to the core KWin team. The idea behind this task is to reimplement the tiling functionality as a KWin Script. This has several advantages: tiling gets properly decoupled from KWin core reducing the maintenance costs for the core team. It would also proof that KWin Scripts are powerful enough to implement a complete new window management concept.

Port KCMs to KConfigXT

KWin's settings are partially described by kconfigxt which would allow to move the configuration modules (KCM) to be generated from KConfigXT.

Shader Support for AnimationEffect

The AnimationEffect provides easy ways to define animations for windows. This could be extended to allow uploading a vertex and/or fragment shader which is used when rendering a window. The AnimationEffect would in that case animate a uniform value of the shader.

QIcon for Window Icons

Currently KWin stores the window icons in different sizes as dedicated pixmaps. This could be changed to using just one QIcon with all provided sizes.

OpenGL 3 Support

Since Mesa 8.0 the free drivers support OpenGL 3. This would allow to initialize an OpenGL 3 rendering context if available.

Geometry Shader Support

After OpenGL 3 Support has been added to KWin the Shader Manager should be extended to support Geometry Shaders.

Use Geometry Shaders for Wobbly Windows Effect

After Geometry Shader Support has been added to KWin it should be possible to use a Geometry Shader to calculate the Geometry for Wobbly Windows Effect.

Use Geometry Shaders for Magic Lamp Effect

After Geometry Shader Support has been added to KWin it should be possible to use a Geometry Shader to calculate the Geometry for Magic Lamp Effect.

Dedicated Configuration Module for Present Windows/Desktop Grid

One of the main window management UIs of the KDE Plasma Workspaces are Present Windows and Desktop Grid. Unfortunately the user has to know about it and the configuration interface is very hidden. In this small project a dedicated configuration module should be written to configure Present Windows and Desktop Grid.

Better Default Options

KWin could need improvments for the default options. For example there is a default of one desktop. This implies that if the user changes to more desktops we can expect that he wants to use it. So desktop grid should be enabled by default.