KWin/Ideas: Difference between revisions
Mgraesslin (talk | contribs) No edit summary |
Mgraesslin (talk | contribs) Removed implemented ideas |
||
Line 6: | Line 6: | ||
= 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. | ||
= Shader Support for AnimationEffect = | = Shader Support for AnimationEffect = | ||
Line 21: | Line 18: | ||
= 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]. | ||
= Port WindowPaintData to use QGraphicsTransform = | = Port WindowPaintData to use QGraphicsTransform = | ||
Line 42: | Line 36: | ||
= Default Bindings for Switching between Windows of current Application = | = Default Bindings for Switching between Windows of current Application = | ||
GNOME Shell provides a feature to switch between Windows of the current application on "Alt + Key above Tab". KWin provides everything which is needed for that. To make it easier for users coming from GNOME the same default shortcut could be added preconfigured for this window switching mode. | GNOME Shell provides a feature to switch between Windows of the current application on "Alt + Key above Tab". KWin provides everything which is needed for that. To make it easier for users coming from GNOME the same default shortcut could be added preconfigured for this window switching mode. | ||
= Dedicated Configuration Module for Present Windows/Desktop Grid = | = Dedicated Configuration Module for Present Windows/Desktop Grid = |
Revision as of 12:26, 25 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.
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.
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.
Default Bindings for Switching between Windows of current Application
GNOME Shell provides a feature to switch between Windows of the current application on "Alt + Key above Tab". KWin provides everything which is needed for that. To make it easier for users coming from GNOME the same default shortcut could be added preconfigured for this window switching mode.
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.
The "To Desktop" menu contains entries for placing a window on all desktops and specific entries for each desktop. This could be extended by another entry to create a new desktop and move the window to the newly created desktop.