Projects/KWin: Difference between revisions

From KDE TechBase
No edit summary
(Update IRC channel info)
 
(3 intermediate revisions by 2 users not shown)
Line 2: Line 2:




'''This is a starting page for all relevant KWin documentation, most of which is stored in SVN or on external WWW pages.'''
'''This is a starting page for all relevant KWin documentation, most of which is stored in git or on external WWW pages.'''


== General information ==
== General information ==


* [https://mail.kde.org/mailman/listinfo/kwin KWin mailing list]
* [https://mail.kde.org/mailman/listinfo/kwin KWin mailing list]
* IRC channel #kwin on freenode
* IRC: #kde-kwin on irc.libera.chat
* [https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/master/entry/kwin/COMPLIANCE COMPLIANCE] - a document on KWin's compliance to the window manager specifications [http://tronche.com/gui/x/icccm/ ICCCM] and [http://www.freedesktop.org/wiki/Specifications/wm-spec EWMH] (also known as NETWM).
* [https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/master/entry/kwin/COMPLIANCE COMPLIANCE] - a document on KWin's compliance to the window manager specifications [http://tronche.com/gui/x/icccm/ ICCCM] and [http://www.freedesktop.org/wiki/Specifications/wm-spec EWMH] (also known as NETWM).
* [[/4.0-release-notes|KDE4.0 release notes]] - information about changes and new features in KWin in KDE4.0
* [[/4.0-release-notes|KDE4.0 release notes]] - information about changes and new features in KWin in KDE4.0
Line 14: Line 14:
== Developer information ==
== Developer information ==


===Hacking on KWin itself===
* For Developer Information see the [http://community.kde.org/KWin/ KWin Section] in the KDE Community Wiki
 
* http://api.kde.org/4.x-api/kde-workspace-apidocs/kwin/libkdecorations/html/index.html libkdecoration API documentation] - API documentation for the library used for developing KWin decorations (the link points to documentation for the current development version).
Refer to the [http://community.kde.org/KWin/ KWin section] of the KDE Community Wiki.
* [http://www.usermode.org/docs/kwintheme.html KWin decorations HOWTO] - tutorial on writing KWin decorations. Based on KDE3.2 and as such slightly outdated, but it is still usable for newer versions. Note that current decorations should use KCommonDecoration class instead of KDecoration directly like this tutorial does.
 
* [http://api.kde.org/4.x-api/kde-workspace-apidocs/kwin/libkwineffects/html/index.html libkwineffects API documentation ] - Documentation on API for compositing effects - currently needs to be done, developers interested in developing compositing effects for KWin are currently suggested to use source of already [https://projects.kde.org/projects/kde/kdebase/kde-workspace/repository/revisions/master/show/kwin/effects existing effects shipped with KWin] and/or ask on the KWin mailing list if necessary. NOTE: This API is currently considered unstable and subject to change.
===Creating Window Decorations===
* [[Development/Tutorials/KWin/Scripting/API|Scripting API]] and [[Development/Tutorials/KWin/Scripting|KWin Scripting Tutorial]]
 
* [[Projects/KWin/Scripting_Update_Notes|Scripting Update Notes for version 4.9]]
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).

Latest revision as of 09:38, 18 February 2022


This is a starting page for all relevant KWin documentation, most of which is stored in git or on external WWW pages.

General information

Developer information

Configuration

  • CONFIGURING - document on advanced KWin configuration (such as pre-configuring window-specific settings).