My KWIN fork where I work on features like per-output virtual desktops
Find a file
Vlad Zahorodnii e5b2fca409 scenes/opengl: Use GL_CLAMP_TO_EDGE wrap mode with sw cursor
We use the GL_LINEAR magnification filter. This means that GL_REPEAT
wrap mode cannot be used for the software cursor because sampling texels
beyond the right texture edge is the same as sampling texels on the
left edge. This may produce undesired visual artifacts.
2020-10-28 19:20:46 +02:00
3rdparty 3rdparty: Synchronize xcursor.{c,h} 2020-10-01 13:54:45 +03:00
autotests If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
cmake/modules Switch to SPDX license markers 2020-08-07 19:57:56 +00:00
colorcorrection Prettify license headers 2020-08-07 19:57:56 +00:00
data Expose KWIN_XWL logging category to kdebugsettings 2020-09-24 14:56:35 +03:00
decorations If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
doc
effects If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
helpers Prettify license headers 2020-08-07 19:57:56 +00:00
kcmkwin kwinrules: Fix binding loop on coordinate editor 2020-10-27 21:50:00 +01:00
kconf_update
libinput Fix Build Warning 2020-08-26 19:24:02 +02:00
libkwineffects If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
LICENSES Switch to SPDX license markers 2020-08-07 19:57:56 +00:00
platformsupport If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
plugins scenes/opengl: Use GL_CLAMP_TO_EDGE wrap mode with sw cursor 2020-10-28 19:20:46 +02:00
qml Place internal osd windows according to placement policies 2020-09-29 14:06:41 +00:00
screencast screencast: Handle the case where pipewire is not installed 2020-10-26 11:42:38 +00:00
scripting If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
scripts SVN_SILENT made messages (.desktop file) - always resolve ours 2020-10-20 06:33:09 +02:00
tabbox If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
tests Prettify license headers 2020-08-07 19:57:56 +00:00
xwl If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
abstract_client.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
abstract_client.h Adapt to input region changes in kwayland-server 2020-10-17 16:11:13 +03:00
abstract_opengl_context_attribute_builder.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
abstract_opengl_context_attribute_builder.h Prettify license headers 2020-08-07 19:57:56 +00:00
abstract_output.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
abstract_output.h Move AbstractWaylandOutput::geometryChanged() to AbstractOutput 2020-09-03 18:11:44 +00:00
abstract_wayland_output.cpp wayland: Introduce logicalToNativeMatrix() helper 2020-10-16 17:03:39 +00:00
abstract_wayland_output.h wayland: Introduce logicalToNativeMatrix() helper 2020-10-16 17:03:39 +00:00
activation.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
activities.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
activities.h Prettify license headers 2020-08-07 19:57:56 +00:00
appmenu.cpp Use namespace kwin only in autotests 2020-08-21 22:06:36 +00:00
appmenu.h Prettify license headers 2020-08-07 19:57:56 +00:00
atoms.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
atoms.h Prettify license headers 2020-08-07 19:57:56 +00:00
client_machine.cpp Replace remaining usages of old connect syntax with new connect syntax 2020-09-24 09:33:45 +00:00
client_machine.h Prettify license headers 2020-08-07 19:57:56 +00:00
CMakeLists.txt screencast: Use fences to avoid stalling the graphics pipeline 2020-10-19 14:23:06 +00:00
composite.cpp Mark the cursor as rendered after performing compositing 2020-10-26 10:02:17 +02:00
composite.h Prettify license headers 2020-08-07 19:57:56 +00:00
config-kwin.h.cmake Only define PipeWire_FOUND if it's found 2020-07-24 02:06:45 +02:00
cursor.cpp Provide cursor geometry in device-independent pixels 2020-10-27 06:04:17 +00:00
cursor.h platform/drm: Fix clipped HiDPI hardware cursors 2020-10-27 06:04:17 +00:00
dbusinterface.cpp Replace remaining usages of old connect syntax with new connect syntax 2020-09-24 09:33:45 +00:00
dbusinterface.h Prettify license headers 2020-08-07 19:57:56 +00:00
debug_console.cpp Port DebugConsole to Workspace::allClientList() 2020-10-01 16:26:52 +00:00
debug_console.h Prettify license headers 2020-08-07 19:57:56 +00:00
debug_console.ui
deleted.cpp Use universal helper for writing toplevels to QDebug streams 2020-08-21 11:42:53 +00:00
deleted.h Use universal helper for writing toplevels to QDebug streams 2020-08-21 11:42:53 +00:00
dmabuftexture.cpp Use namespace kwin only in autotests 2020-08-21 22:06:36 +00:00
dmabuftexture.h Prettify license headers 2020-08-07 19:57:56 +00:00
effectloader.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
effectloader.h Prettify license headers 2020-08-07 19:57:56 +00:00
effects.cpp Unify code that setups client connections in EffectsHandlerImpl 2020-10-01 16:26:52 +00:00
effects.h Have Toplevel::damage emit a QRegion 2020-09-22 14:45:08 +02:00
egl_context_attribute_builder.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
egl_context_attribute_builder.h Prettify license headers 2020-08-07 19:57:56 +00:00
events.cpp x11: Make removal of X11 event filters safe 2020-09-29 08:26:28 +00:00
fixqopengl.h Prettify license headers 2020-08-07 19:57:56 +00:00
focuschain.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
focuschain.h Prettify license headers 2020-08-07 19:57:56 +00:00
geometrytip.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
geometrytip.h Prettify license headers 2020-08-07 19:57:56 +00:00
gestures.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
gestures.h Prettify license headers 2020-08-07 19:57:56 +00:00
globalshortcuts.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
globalshortcuts.h Prettify license headers 2020-08-07 19:57:56 +00:00
group.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
group.h Prettify license headers 2020-08-07 19:57:56 +00:00
HACKING.md
idle_inhibition.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
idle_inhibition.h Prettify license headers 2020-08-07 19:57:56 +00:00
input.cpp input: reconfigure after setting up the libinput 2020-10-21 16:01:06 +05:30
input.h Avoid QPointer in return types of Input methods 2020-09-08 08:04:13 +00:00
input_event.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
input_event.h Prettify license headers 2020-08-07 19:57:56 +00:00
input_event_spy.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
input_event_spy.h Prettify license headers 2020-08-07 19:57:56 +00:00
inputmethod.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
inputmethod.h inputmethod: remove the workarounds 2020-10-08 17:56:44 +05:30
inputpanelv1client.cpp Adapt to input region changes in kwayland-server 2020-10-17 16:11:13 +03:00
inputpanelv1client.h Port InputPanelV1Client to WaylandClient's geometry helpers 2020-09-03 18:11:44 +00:00
inputpanelv1integration.cpp wayland: Refactor creation of input panel clients 2020-09-04 13:08:34 +00:00
inputpanelv1integration.h wayland: Refactor creation of input panel clients 2020-09-04 13:08:34 +00:00
internal_client.cpp Properly test internal window flags 2020-09-23 18:21:24 +03:00
internal_client.h Use better window placement heuristics for internal clients 2020-09-23 14:39:15 +00:00
keyboard_input.cpp fix: redundant keyboard layout OSD notification 2020-09-29 14:20:03 +00:00
keyboard_input.h Prettify license headers 2020-08-07 19:57:56 +00:00
keyboard_layout.cpp fix: no OSD indication when switching keyboard layout with Application Policy 2020-09-29 14:20:03 +00:00
keyboard_layout.h fix: no OSD indication when switching keyboard layout with Application Policy 2020-09-29 14:20:03 +00:00
keyboard_layout_switching.cpp fix: keyboard layout applet doesn't show actual layout 2020-08-20 16:09:43 +00:00
keyboard_layout_switching.h Prettify license headers 2020-08-07 19:57:56 +00:00
keyboard_repeat.cpp wayland: adapt to changes in the keyboard and seat interface 2020-10-20 14:48:29 +00:00
keyboard_repeat.h Prettify license headers 2020-08-07 19:57:56 +00:00
killwindow.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
killwindow.h Prettify license headers 2020-08-07 19:57:56 +00:00
kwin.kcfg xwayland: Restart the Xwayland server after it has crashed 2020-09-01 06:16:02 +00:00
kwin.notifyrc SVN_SILENT made messages (.desktop file) - always resolve ours 2020-10-11 06:01:48 +02:00
kwinbindings.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
KWinDBusInterfaceConfig.cmake.in
layers.cpp Rename the variable where override-redirect windows are stored 2020-10-09 18:49:32 +03:00
layershellv1client.cpp Enable shadow protocol support for all Wayland clients 2020-09-25 10:10:10 +03:00
layershellv1client.h Implement the layer-shell v1 protocol 2020-09-03 18:11:44 +00:00
layershellv1integration.cpp Slightly improve code readability 2020-09-09 17:05:34 +03:00
layershellv1integration.h Implement the layer-shell v1 protocol 2020-09-03 18:11:44 +00:00
linux_dmabuf.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
linux_dmabuf.h Prettify license headers 2020-08-07 19:57:56 +00:00
logind.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
logind.h Prettify license headers 2020-08-07 19:57:56 +00:00
logo.png
main.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
main.h xwayland: Avoid creating a tree query on crash 2020-10-14 16:17:42 +00:00
main_wayland.cpp virtualkeyboard: rename class to InputMethod 2020-09-29 20:55:24 +05:30
main_wayland.h Prettify license headers 2020-08-07 19:57:56 +00:00
main_x11.cpp Replace remaining usages of old connect syntax with new connect syntax 2020-09-24 09:33:45 +00:00
main_x11.h Prettify license headers 2020-08-07 19:57:56 +00:00
Mainpage.dox
Messages.sh
modifier_only_shortcuts.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
modifier_only_shortcuts.h Prettify license headers 2020-08-07 19:57:56 +00:00
moving_client_x11_filter.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
moving_client_x11_filter.h Prettify license headers 2020-08-07 19:57:56 +00:00
netinfo.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
netinfo.h Prettify license headers 2020-08-07 19:57:56 +00:00
onscreennotification.cpp Use namespace kwin only in autotests 2020-08-21 22:06:36 +00:00
onscreennotification.h Prettify license headers 2020-08-07 19:57:56 +00:00
options.cpp xwayland: Restart the Xwayland server after it has crashed 2020-09-01 06:16:02 +00:00
options.h xwayland: Restart the Xwayland server after it has crashed 2020-09-01 06:16:02 +00:00
org.kde.kappmenu.xml
org.kde.kwin.ColorCorrect.xml
org.kde.kwin.Compositing.xml
org.kde.kwin.Effects.xml
org.kde.KWin.Session.xml
org.kde.KWin.VirtualDesktopManager.xml
org.kde.KWin.xml
osd.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
osd.h Prettify license headers 2020-08-07 19:57:56 +00:00
outline.cpp Replace remaining usages of old connect syntax with new connect syntax 2020-09-24 09:33:45 +00:00
outline.h Prettify license headers 2020-08-07 19:57:56 +00:00
outputscreens.cpp Introduce Platform::findOutput(int) overload 2020-09-03 18:11:44 +00:00
outputscreens.h Prettify license headers 2020-08-07 19:57:56 +00:00
overlaywindow.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
overlaywindow.h Prettify license headers 2020-08-07 19:57:56 +00:00
placement.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
placement.h Prettify license headers 2020-08-07 19:57:56 +00:00
plasma-kwin_wayland.service.in Update systemd units 2020-09-29 06:10:20 +00:00
plasma-kwin_x11.service.in Update systemd units 2020-09-29 06:10:20 +00:00
platform.cpp Clip software cursors 2020-10-26 13:45:55 +02:00
platform.h screencast: Use fences to avoid stalling the graphics pipeline 2020-10-19 14:23:06 +00:00
pointer_input.cpp wayland: Fix drag-and-drop cursors with hidpi 2020-10-25 08:57:13 +00:00
pointer_input.h Prettify license headers 2020-08-07 19:57:56 +00:00
popup_input_filter.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
popup_input_filter.h Prettify license headers 2020-08-07 19:57:56 +00:00
README.md
rootinfo_filter.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
rootinfo_filter.h Prettify license headers 2020-08-07 19:57:56 +00:00
rulebooksettings.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
rulebooksettings.h Prettify license headers 2020-08-07 19:57:56 +00:00
rulebooksettingsbase.kcfg
rulebooksettingsbase.kcfgc
rules.cpp Replace remaining usages of old connect syntax with new connect syntax 2020-09-24 09:33:45 +00:00
rules.h Prettify license headers 2020-08-07 19:57:56 +00:00
rulesettings.kcfg
rulesettings.kcfgc
scene.cpp screencast: Use fences to avoid stalling the graphics pipeline 2020-10-19 14:23:06 +00:00
scene.h Clip software cursors 2020-10-26 13:45:55 +02:00
screenedge.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
screenedge.h Prettify license headers 2020-08-07 19:57:56 +00:00
screenlockerwatcher.cpp Replace remaining usages of old connect syntax with new connect syntax 2020-09-24 09:33:45 +00:00
screenlockerwatcher.h Prettify license headers 2020-08-07 19:57:56 +00:00
screens.cpp Replace remaining usages of old connect syntax with new connect syntax 2020-09-24 09:33:45 +00:00
screens.h Prettify license headers 2020-08-07 19:57:56 +00:00
service_utils.cpp Fix email address 2020-09-09 18:33:22 +02:00
service_utils.h Screenshot effect: add a screenshotScreens(...) to screenshot specific screens 2020-09-30 07:44:30 +00:00
settings.kcfgc
shadow.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
shadow.h Prettify license headers 2020-08-07 19:57:56 +00:00
shortcutdialog.ui
sm.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
sm.h Prettify license headers 2020-08-07 19:57:56 +00:00
subsurfacemonitor.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
subsurfacemonitor.h Prettify license headers 2020-08-07 19:57:56 +00:00
syncalarmx11filter.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
syncalarmx11filter.h Prettify license headers 2020-08-07 19:57:56 +00:00
tablet_input.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
tablet_input.h Prettify license headers 2020-08-07 19:57:56 +00:00
tabletmodemanager.cpp Use namespace kwin only in autotests 2020-08-21 22:06:36 +00:00
tabletmodemanager.h Prettify license headers 2020-08-07 19:57:56 +00:00
TESTING.md
thumbnailitem.cpp Replace remaining usages of old connect syntax with new connect syntax 2020-09-24 09:33:45 +00:00
thumbnailitem.h Prettify license headers 2020-08-07 19:57:56 +00:00
toplevel.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
toplevel.h Adapt to input region changes in kwayland-server 2020-10-17 16:11:13 +03:00
touch_hide_cursor_spy.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
touch_hide_cursor_spy.h Prettify license headers 2020-08-07 19:57:56 +00:00
touch_input.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
touch_input.h Prettify license headers 2020-08-07 19:57:56 +00:00
udev.cpp Drop check for if parent subsystem is PCI 2020-10-13 11:42:17 +00:00
udev.h Multi-GPU output support on Wayland 2020-10-05 21:05:55 +00:00
unmanaged.cpp Schedule workspace repaint for destroyed clients 2020-09-29 13:53:30 +00:00
unmanaged.h Use universal helper for writing toplevels to QDebug streams 2020-08-21 11:42:53 +00:00
useractions.cpp If include is define in .h remove it if it's defined in .cpp too (scripted) 2020-10-23 21:37:16 +02:00
useractions.h Prettify license headers 2020-08-07 19:57:56 +00:00
utils.cpp Implement the layer-shell v1 protocol 2020-09-03 18:11:44 +00:00
utils.h Implement the layer-shell v1 protocol 2020-09-03 18:11:44 +00:00
virtual_terminal.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
virtual_terminal.h Prettify license headers 2020-08-07 19:57:56 +00:00
virtualdesktops.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
virtualdesktops.h Prettify license headers 2020-08-07 19:57:56 +00:00
virtualdesktopsdbustypes.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
virtualdesktopsdbustypes.h Prettify license headers 2020-08-07 19:57:56 +00:00
virtualkeyboard_dbus.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
virtualkeyboard_dbus.h Prettify license headers 2020-08-07 19:57:56 +00:00
was_user_interaction_x11_filter.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
was_user_interaction_x11_filter.h Prettify license headers 2020-08-07 19:57:56 +00:00
wayland_server.cpp Adapt to changes in wayland-server KeyStateInterface 2020-10-09 13:17:38 +00:00
wayland_server.h wayland: Refactor creation of input panel clients 2020-09-04 13:08:34 +00:00
waylandclient.cpp Enable shadow protocol support for all Wayland clients 2020-09-25 10:10:10 +03:00
waylandclient.h Remove WaylandClient::isInputMethod() 2020-09-04 06:47:38 +00:00
waylandshellintegration.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
waylandshellintegration.h Prettify license headers 2020-08-07 19:57:56 +00:00
window_property_notify_x11_filter.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
window_property_notify_x11_filter.h Prettify license headers 2020-08-07 19:57:56 +00:00
workspace.cpp xwayland: Avoid creating a tree query on crash 2020-10-14 16:17:42 +00:00
workspace.h Rename the variable where override-redirect windows are stored 2020-10-09 18:49:32 +03:00
x11client.cpp Port from deprecated QString::SkipEmptyParts 2020-10-28 06:30:35 +00:00
x11client.h Move struts logic to AbstractClient 2020-09-03 18:11:44 +00:00
x11eventfilter.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
x11eventfilter.h Prettify license headers 2020-08-07 19:57:56 +00:00
xcbutils.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
xcbutils.h Correct typos in xcbutils.h 2020-09-25 08:45:06 +00:00
xcursortheme.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
xcursortheme.h Prettify license headers 2020-08-07 19:57:56 +00:00
xdgshellclient.cpp wayland: Provide a way to force xdg surface configure events 2020-10-26 18:18:42 +02:00
xdgshellclient.h wayland: Provide a way to force xdg surface configure events 2020-10-26 18:18:42 +02:00
xdgshellintegration.cpp Use consistent naming pattern for wayland shell integrations 2020-09-04 16:51:25 +03:00
xdgshellintegration.h Use consistent naming pattern for wayland shell integrations 2020-09-04 16:51:25 +03:00
xkb.cpp wayland: adapt to changes in the keyboard and seat interface 2020-10-20 14:48:29 +00:00
xkb.h Prettify license headers 2020-08-07 19:57:56 +00:00
xkb_qt_mapping.h Prettify license headers 2020-08-07 19:57:56 +00:00
xwaylandclient.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
xwaylandclient.h Prettify license headers 2020-08-07 19:57:56 +00:00

KWin

KWin is an easy to use, but flexible, composited Window Manager for Xorg windowing systems (Wayland, X11) on Linux. Its primary usage is in conjunction with a Desktop Shell (e.g. KDE Plasma Desktop). KWin is designed to go out of the way; users should not notice that they use a window manager at all. Nevertheless KWin provides a steep learning curve for advanced features, which are available, if they do not conflict with the primary mission. KWin does not have a dedicated targeted user group, but follows the targeted user group of the Desktop Shell using KWin as it's window manager.

KWin is not...

  • a standalone window manager (c.f. openbox, i3) and does not provide any functionality belonging to a Desktop Shell.
  • a replacement for window managers designed for use with a specific Desktop Shell (e.g. GNOME Shell)
  • a minimalistic window manager
  • designed for use without compositing or for X11 network transparency, though both are possible.

Contacting KWin development team

Support

Application Developer

If you are an application developer having questions regarding windowing systems (either X11 or Wayland) please do not hesitate to contact us. Preferable through our mailing list. Ideally subscribe to the mailing list, so that your mail doesn't get stuck in the moderation queue.

End user

Please contact the support channels of your Linux distribution for user support. The KWin development team does not provide end user support.

Reporting bugs

Please use KDE's bugtracker and report for product KWin.

Developing on KWin

Please refer to hacking documentation for how to build and start KWin. Further information about KWin's test suite can be found in TESTING.md.

Guidelines for new features

A new Feature can only be added to KWin if:

  • it does not violate the primary missions as stated at the start of this document
  • it does not introduce instabilities
  • it is maintained, that is bugs are fixed in a timely manner (second next minor release) if it is not a corner case.
  • it works together with all existing features
  • it supports both single and multi screen (xrandr)
  • it adds a significant advantage
  • it is feature complete, that is supports at least all useful features from competitive implementations
  • it is not a special case for a small user group
  • it does not increase code complexity significantly
  • it does not affect KWin's license (GPLv2+)

All new added features are under probation, that is if any of the non-functional requirements as listed above do not hold true in the next two feature releases, the added feature will be removed again.

The same non functional requirements hold true for any kind of plugins (effects, scripts, etc.). It is suggested to use scripted plugins and distribute them separately.