Difference between revisions of "KWin/Ideas"

Jump to: navigation, search
(Created page with "= Ideas = 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 ...")
 
(Ideas)
Line 1: Line 1:
= Ideas =
 
 
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.
 
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 ==
+
= 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.
 
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.
  
== Screen Edge Bindings for KWin Scripts ==
+
= Screen Edge Bindings for KWin Scripts =
 
KWin can trigger effects when the mouse enters a screen edge. This could be extended for KWin scripts, so that a specific callback is called in a Script if the Screen Edge is triggered.
 
KWin can trigger effects when the mouse enters a screen edge. This could be extended for KWin scripts, so that a specific callback is called in a Script if the Screen Edge is triggered.
  
== Global Shortcut Support for KWin Scripts ==
+
= Global Shortcut Support for KWin Scripts =
 
Add Global Shortcut Support to KWin Scripts. This would allow a Script to register a callback which gets executed whenever the global shortcut is triggered.
 
Add Global Shortcut Support to KWin Scripts. This would allow a Script to register a callback which gets executed whenever the global shortcut is triggered.
  
== Shader Support for AnimationEffect ==
+
= 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.
 
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 ==
+
= QIcon for Window Icons =
 
Currently KWin stores the window icons in different sizes as dedicated pixmaps. This could be changed to using just one [https://qt-project.org/doc/qt-4.8/qicon.html QIcon] with all provided sizes.
 
Currently KWin stores the window icons in different sizes as dedicated pixmaps. This could be changed to using just one [https://qt-project.org/doc/qt-4.8/qicon.html QIcon] with all provided sizes.
  
== GHNS support for KWin Scripts ==
+
= GHNS support for KWin Scripts =
 
Extend the KWin Scripts KCM to allow downloading new scripts through [http://techbase.kde.org/Development/Tutorials/Introduction_to_Get_Hot_New_Stuff Get Hot New Stuff].
 
Extend the KWin Scripts KCM to allow downloading new scripts through [http://techbase.kde.org/Development/Tutorials/Introduction_to_Get_Hot_New_Stuff Get Hot New Stuff].
  
== GHNS support for Window Switcher Layouts ==
+
= GHNS support for Window Switcher Layouts =
 
Extend the Window Switching KCM to allow downloading new scripts through [http://techbase.kde.org/Development/Tutorials/Introduction_to_Get_Hot_New_Stuff Get Hot New Stuff].
 
Extend the Window Switching KCM to allow downloading new scripts through [http://techbase.kde.org/Development/Tutorials/Introduction_to_Get_Hot_New_Stuff Get Hot New Stuff].
  
== Window Switcher layout similar to Present Windows ==
+
= Window Switcher layout similar to Present Windows =
 
The QML based Window Switchers provide all functionality to implement a switcher similar to the Present Windows effect. Currently the Present Windows effect can be used as a replacement for a Window Switcher. Unfortunately this is not what Present Windows is designed for and the code base could be simplified if the Present Windows mode is implemented as a Window Switcher.
 
The QML based Window Switchers provide all functionality to implement a switcher similar to the Present Windows effect. Currently the Present Windows effect can be used as a replacement for a Window Switcher. Unfortunately this is not what Present Windows is designed for and the code base could be simplified if the Present Windows mode is implemented as a Window Switcher.
  
== Port WindowPaintData to use QGraphicsTransform ==
+
= Port WindowPaintData to use QGraphicsTransform =
 
The WindowPaintData allows effects to transform windows by setting a translation value, a scaling value and a rotation. This is also provided by the [https://qt-project.org/doc/qt-4.8/qgraphicstransform.html QGraphicsTransform] and it's inheriting classes, which did not yet exist when the Effects Framework had been implemented. Using QGraphicsTransform makes it easier to apply the transformation in the compositor and to integrate better with QML based window thumbnails.
 
The WindowPaintData allows effects to transform windows by setting a translation value, a scaling value and a rotation. This is also provided by the [https://qt-project.org/doc/qt-4.8/qgraphicstransform.html QGraphicsTransform] and it's inheriting classes, which did not yet exist when the Effects Framework had been implemented. Using QGraphicsTransform makes it easier to apply the transformation in the compositor and to integrate better with QML based window thumbnails.
  
== OpenGL 3 Support ==
+
= 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.
 
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 ==
+
= Geometry Shader Support =
 
After OpenGL 3 Support has been added to KWin the Shader Manager should be extended to support [http://en.wikipedia.org/wiki/Shader#Geometry_shaders Geometry Shaders].
 
After OpenGL 3 Support has been added to KWin the Shader Manager should be extended to support [http://en.wikipedia.org/wiki/Shader#Geometry_shaders Geometry Shaders].
  
== Use Geometry Shaders for Wobbly Windows Effect ==
+
= 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.
 
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 ==
+
= 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.
 
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.

Revision as of 11:50, 2 March 2012

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.

Screen Edge Bindings for KWin Scripts

KWin can trigger effects when the mouse enters a screen edge. This could be extended for KWin scripts, so that a specific callback is called in a Script if the Screen Edge is triggered.

Global Shortcut Support for KWin Scripts

Add Global Shortcut Support to KWin Scripts. This would allow a Script to register a callback which gets executed whenever the global shortcut is triggered.

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.

GHNS support for KWin Scripts

Extend the KWin Scripts KCM to allow downloading new scripts through Get Hot New Stuff.

GHNS support for Window Switcher Layouts

Extend the Window Switching KCM to allow downloading new scripts through Get Hot New Stuff.

Window Switcher layout similar to Present Windows

The QML based Window Switchers provide all functionality to implement a switcher similar to the Present Windows effect. Currently the Present Windows effect can be used as a replacement for a Window Switcher. Unfortunately this is not what Present Windows is designed for and the code base could be simplified if the Present Windows mode is implemented as a Window Switcher.

Port WindowPaintData to use QGraphicsTransform

The WindowPaintData allows effects to transform windows by setting a translation value, a scaling value and a rotation. This is also provided by the QGraphicsTransform and it's inheriting classes, which did not yet exist when the Effects Framework had been implemented. Using QGraphicsTransform makes it easier to apply the transformation in the compositor and to integrate better with QML based window thumbnails.

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.


Content is available under Creative Commons License SA 4.0 unless otherwise noted.