| Line 14: | Line 14: | ||
== Developer information == | == Developer information == | ||
| − | + | ===Hacking on KWin itself=== | |
| − | * [http://api.kde.org/4.x-api/ | + | |
| − | * [http:// | + | Refer to the [http://community.kde.org/KWin/ KWin section] of the KDE Community Wiki. |
| − | * [http://api.kde.org/4.x-api/ | + | |
| − | * [[Development/Tutorials/KWin/ | + | ===Creating Window Decorations=== |
| − | * [[Projects/KWin/Scripting_Update_Notes| | + | |
| + | The <tt>libkdecorations</tt> library shipped with KWin allows developing new third-party window decorations in C++. | ||
| + | * [http://www.usermode.org/docs/kwintheme.html tutorial] ''(Based on KDE3.2 and as such slightly outdated, but still usable for newer versions. Note that new decorations should subclass <tt>KCommonDecoration</tt>, instead of using the <tt>KDecoration</tt> class directly like this tutorial does.)'' | ||
| + | * [http://api.kde.org/4.x-api/kde-workspace-apidocs/kwin/libkdecorations/html/group__kdecoration.html API documentation] | ||
| + | |||
| + | <br>A simpler (but less powerful) alternative is to create a theme for one of the existing themable decorations: | ||
| + | * [http://kde-look.org/content/show.php?content=107158 Aurorae] - themable with SVG images ([[User:Mgraesslin/Aurorae|how-to]]) | ||
| + | * [http://kde-look.org/content/show.php?content=87921 deKorator] - themable with pixmap images | ||
| + | * [http://kde-look.org/content/show.php?content=125162 Smaragd] - themable with Emerald theme files (from Compiz/Beryl) | ||
| + | |||
| + | ===Creating Desktop Effects=== | ||
| + | |||
| + | The <tt>libkwineffects</tt> library shipped with KWin allows developing new KWin compositing effects (known as "desktop effects" to users) in C++. | ||
| + | * [http://blog.martin-graesslin.com/blog/2009/07/how-to-write-a-kwin-effect/ tutorial] | ||
| + | * [http://api.kde.org/4.x-api/kde-workspace-apidocs/kwin/libkwineffects/html/group__kwineffects.html API documentation] | ||
| + | * [https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/master/show/kwin/effects source code of existing effects] | ||
| + | |||
| + | <br>There is also a limited API for developing effects in JavaScript... | ||
| + | * [http://blog.martin-graesslin.com/blog/2012/01/kwin-effects-written-in-javascript/ introductory blog post] | ||
| + | |||
| + | ===Creating Window Switcher Layouts=== | ||
| + | |||
| + | KWin's default <keycap>Alt + Tab</keycap> window switcher can be customized with new layouts written in QML. | ||
| + | |||
| + | * [[Development/Tutorials/KWin/WindowSwitcher|tutorial]] | ||
| + | |||
| + | ===Scripting=== | ||
| + | [[Image:Icon-kwin-scripting.png|right|128px]] | ||
| + | KWin's scripting system allows customizing/automating the properties and behavior of windows through JavaScript or declarative QML. | ||
| + | |||
| + | * [[Development/Tutorials/KWin/Scripting|tutorial]] | ||
| + | * [[Development/Tutorials/KWin/Scripting/API|API reference]] ''([[Projects/KWin/Scripting_Update_Notes|upgrade notes]] from earlier versions to 4.9]])'' | ||
| + | * [https://projects.kde.org/projects/kde/kdeexamples/repository/revisions/master/show/kwin/scripts examples] | ||
== Configuration == | == Configuration == | ||
* [https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/master/entry/kwin/CONFIGURING CONFIGURING ] - document on advanced KWin configuration (such as pre-configuring window-specific settings). | * [https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/master/entry/kwin/CONFIGURING CONFIGURING ] - document on advanced KWin configuration (such as pre-configuring window-specific settings). | ||
This is a starting page for all relevant KWin documentation, most of which is stored in SVN or on external WWW pages.
Contents |
Refer to the KWin section of the KDE Community Wiki.
The libkdecorations library shipped with KWin allows developing new third-party window decorations in C++.
A simpler (but less powerful) alternative is to create a theme for one of the existing themable decorations:
The libkwineffects library shipped with KWin allows developing new KWin compositing effects (known as "desktop effects" to users) in C++.
There is also a limited API for developing effects in JavaScript...
KWin's default Alt + Tab window switcher can be customized with new layouts written in QML.
KWin's scripting system allows customizing/automating the properties and behavior of windows through JavaScript or declarative QML.