My KWIN fork where I work on features like per-output virtual desktops
Find a file
Ismael Asensio a6c51c5445 kcm/rules: Add a Duplicate action to rules list
Useful action, especially for heavy kwin rules users

As an example, this can help users to migrate their rules to Wayland
(where some matching properties such as window class may be different)
while keeping a version of the rule compatible with X11.

BUG: 429588
FIXED-IN: 5.21
2020-11-29 00:16:51 +01:00
3rdparty 3rdparty: Synchronize xcursor.{c,h} 2020-10-01 13:54:45 +03:00
autotests Trim trailing whitespace 2020-11-28 11:01:47 +00:00
cmake/modules Fix license info in Findlcms2.cmake 2020-11-25 13:30:24 +02:00
data Trim trailing whitespace 2020-11-28 11:01:47 +00:00
decorations Add a QRect to showWindowMenu 2020-11-22 21:47:31 +00:00
doc Change CommandAllKey to Meta 2020-05-22 22:39:08 -04:00
effects Trim trailing whitespace 2020-11-28 11:01:47 +00:00
helpers Prettify license headers 2020-08-07 19:57:56 +00:00
kcmkwin kcm/rules: Add a Duplicate action to rules list 2020-11-29 00:16:51 +01:00
kconf_update Make kwin-5.21-desktop-grid-click-behavior.py use Python 3 2020-11-07 12:00:45 +00:00
libinput Trim trailing whitespace 2020-11-28 11:01:47 +00:00
libkwineffects Trim trailing whitespace 2020-11-28 11:01:47 +00:00
LICENSES Switch to SPDX license markers 2020-08-07 19:57:56 +00:00
platformsupport Create egl backend for multiple backends and enable multi-gpu usage for the gbm backend 2020-11-28 17:53:41 +00:00
plugins Create egl backend for multiple backends and enable multi-gpu usage for the gbm backend 2020-11-28 17:53:41 +00:00
qml Fix Connections warnings 2020-11-11 19:22:40 +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 Fix Connections warnings 2020-11-11 19:22:40 +00:00
tabbox [kcmkwin/kwinscreenedges] Disable left touch edge by default 2020-11-20 14:25:15 +00:00
tests Fix Connections warnings 2020-11-11 19:22:40 +00:00
xwl xwl: No need to delete the source immediately 2020-10-29 15:56:13 +01:00
abstract_client.cpp Drop AbstractClient::isInitialPositionSet() 2020-11-27 10:41:13 +02:00
abstract_client.h Drop AbstractClient::isInitialPositionSet() 2020-11-27 10:41:13 +02: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 Add manufacturer, model, and serialNumber properties to AbstractOutput 2020-11-24 18:16:19 +00:00
abstract_output.h Add manufacturer, model, and serialNumber properties to AbstractOutput 2020-11-24 18:16:19 +00:00
abstract_wayland_output.cpp Add manufacturer, model, and serialNumber properties to AbstractOutput 2020-11-24 18:16:19 +00:00
abstract_wayland_output.h Add manufacturer, model, and serialNumber properties to AbstractOutput 2020-11-24 18:16:19 +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 Trim trailing whitespace 2020-11-28 11:01:47 +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 Convert Night Color into a plugin 2020-11-27 18:55:01 +00:00
composite.cpp Remove assert in Compositor::aboutToSwapBuffers() 2020-11-11 22:03:45 +02:00
composite.h Refactor how per screen rendering is handled 2020-11-11 22:03:45 +02:00
config-kwin.h.cmake Introduce colord integration 2020-11-24 17:51:32 +02:00
cursor.cpp Provide cursor geometry in device-independent pixels 2020-10-27 06:04:17 +00:00
cursor.h Trim trailing whitespace 2020-11-28 11:01:47 +00:00
dbusinterface.cpp Introduce infrastructure for compositor extensions 2020-11-24 15:50:33 +00:00
dbusinterface.h Introduce infrastructure for compositor extensions 2020-11-24 15:50:33 +00:00
debug_console.cpp wayland: Adapt to subsurface changes in kwayland-server 2020-11-02 08:47:18 +00:00
debug_console.h Prettify license headers 2020-08-07 19:57:56 +00:00
debug_console.ui fixuifiles 2018-09-18 07:52:44 +02:00
deleted.cpp Store repaint regions per individual screen 2020-10-30 07:24:01 +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 [libkwineffects] Add windowId to EffectWindow 2020-11-17 21:56:17 +00:00
effects.h [libkwineffects] Add windowId to EffectWindow 2020-11-17 21:56:17 +00: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 Trim trailing whitespace 2020-11-28 11:01:47 +00:00
fixqopengl.h Prettify license headers 2020-08-07 19:57:56 +00:00
focuschain.cpp [focuschain/task switcher] Add hidden option to govern repositioning minimized windows 2020-11-04 16:16:29 +00:00
focuschain.h Revert "[focuschain/task switcher] Remove special handling for minimized windows" 2020-11-04 16:16:29 +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 Introduce coding-conventions.md 2020-02-03 12:45:47 +02:00
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 adapt to changes in seat and keyboard interface 2020-11-19 06:05:45 +00:00
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 adapt to changes in seat and keyboard interface 2020-11-19 06:05:45 +00: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 Drop AbstractClient::isInitialPositionSet() 2020-11-27 10:41:13 +02: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 Drop Toplevel::windowId() 2020-11-10 09:58:07 +00:00
internal_client.h Drop Toplevel::windowId() 2020-11-10 09:58:07 +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 impr: Keyboard Layout DBus API: drop excessive method arguments 2020-11-27 19:04:18 +00:00
keyboard_layout.h impr: Keyboard Layout DBus API: drop excessive method arguments 2020-11-27 19:04:18 +00:00
keyboard_layout_switching.cpp fix: [1/2] Keyboard Layout applet doesn't follow actual layout switching 2020-10-30 14:54:14 +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 Change the defaults for active screen 2020-11-27 08:18:02 +00:00
kwin.notifyrc SVN_SILENT made messages (.desktop file) - always resolve ours 2020-11-16 06:14:08 +01:00
kwinbindings.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
KWinDBusInterfaceConfig.cmake.in Add path to kwin_wayland binary to KWin's installed CMakeConfig 2015-11-19 09:28:16 +01:00
layers.cpp Rename the variable where override-redirect windows are stored 2020-10-09 18:49:32 +03:00
layershellv1client.cpp Drop AbstractClient::isInitialPositionSet() 2020-11-27 10:41:13 +02:00
layershellv1client.h Drop AbstractClient::isInitialPositionSet() 2020-11-27 10:41:13 +02: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 Remove unnecessary comparisons 2020-11-07 02:56:09 +01:00
logind.h drm: Make sure the screens are turned on when we come from suspend 2020-11-03 17:59:02 +00:00
logo.png GIT_SILENT: add KWin icon as repository logo 2020-05-20 12:47:52 +00:00
main.cpp Explicitly destroy plugins 2020-11-26 20:51:14 +02:00
main.h Explicitly destroy plugins 2020-11-26 20:51:14 +02:00
main_wayland.cpp Explicitly destroy plugins 2020-11-26 20:51:14 +02:00
main_wayland.h Prettify license headers 2020-08-07 19:57:56 +00:00
main_x11.cpp Explicitly destroy plugins 2020-11-26 20:51:14 +02:00
main_x11.h Prettify license headers 2020-08-07 19:57:56 +00:00
Mainpage.dox
Messages.sh Convert Night Color into a plugin 2020-11-27 18:55:01 +00:00
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 [focuschain/task switcher] Add hidden option to govern repositioning minimized windows 2020-11-04 16:16:29 +00:00
options.h Prefer Q_ENUM to Q_ENUMS 2020-11-19 22:32:08 +01:00
org.kde.kappmenu.xml Restore global menu support 2017-01-11 10:21:03 +01:00
org.kde.kwin.Compositing.xml [kcmkwin/compositing] Hide config options which don't make sense if Compositing is required 2016-09-13 15:47:42 +02:00
org.kde.kwin.Effects.xml
org.kde.KWin.Plugins.xml Introduce infrastructure for compositor extensions 2020-11-24 15:50:33 +00:00
org.kde.KWin.Session.xml Add an explicit quit mechanism controlled by plasma 2020-11-22 22:04:59 +00:00
org.kde.KWin.VirtualDesktopManager.xml [wayland] Use the new plasma virtual desktop protocol 2018-11-01 16:35:29 +01:00
org.kde.KWin.xml Add a dbus method getWindowInfo returning same data as queryWindowInfo 2018-12-17 18:12:17 +01:00
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 placement: Remove unused function 2020-11-20 18:10:01 +01:00
placement.h placement: Make internal methods private 2020-11-20 18:18:52 +01: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 Convert Night Color into a plugin 2020-11-27 18:55:01 +00:00
platform.h Convert Night Color into a plugin 2020-11-27 18:55:01 +00:00
plugin.cpp Introduce infrastructure for compositor extensions 2020-11-24 15:50:33 +00:00
plugin.h Introduce infrastructure for compositor extensions 2020-11-24 15:50:33 +00:00
pluginmanager.cpp Introduce infrastructure for compositor extensions 2020-11-24 15:50:33 +00:00
pluginmanager.h Introduce infrastructure for compositor extensions 2020-11-24 15:50:33 +00:00
pointer_input.cpp Adjust kwin to pointer constraints changes in kws 2020-11-03 22:11:28 +02: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 Capstone commit to prevent force push reversed commits returning accidentally. 2020-06-03 09:54:00 +00:00
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 Port kwinrules kcm to kconfigxt 2020-03-16 13:21:43 +01:00
rulebooksettingsbase.kcfgc Port kwinrules kcm to kconfigxt 2020-03-16 13:21:43 +01:00
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 Fix minor typo: inital -> initial 2020-03-17 09:41:12 +02:00
rulesettings.kcfgc Port kwinrules kcm to kconfigxt 2020-03-16 13:21:43 +01:00
scene.cpp Make Scene::qpainterRenderBuffer() take a screen id 2020-11-11 07:22:10 +00:00
scene.h Refactor how per screen rendering is handled 2020-11-11 22:03:45 +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 Trim trailing whitespace 2020-11-28 11:01:47 +00:00
shortcutdialog.ui
sm.cpp Add an explicit quit mechanism controlled by plasma 2020-11-22 22:04:59 +00:00
sm.h Add an explicit quit mechanism controlled by plasma 2020-11-22 22:04:59 +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 Remove confusing debug message 2020-11-28 11:00:40 +00:00
tabletmodemanager.h Prettify license headers 2020-08-07 19:57:56 +00:00
TESTING.md [platform/virtual] Drop support for vgem and rendernode 2019-01-12 07:37:25 +01:00
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 Drop Toplevel::windowId() 2020-11-10 09:58:07 +00:00
toplevel.h Drop Toplevel::windowId() 2020-11-10 09:58:07 +00: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 Store repaint regions per individual screen 2020-10-30 07:24:01 +00:00
unmanaged.h Use universal helper for writing toplevels to QDebug streams 2020-08-21 11:42:53 +00:00
useractions.cpp Convert Night Color into a plugin 2020-11-27 18:55:01 +00: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 Trim trailing whitespace 2020-11-28 11:01:47 +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 Update to wayland-server changes for plasmashell 2020-11-16 10:10:08 +00:00
wayland_server.h Drop Toplevel::windowId() 2020-11-10 09:58:07 +00:00
waylandclient.cpp Drop Toplevel::windowId() 2020-11-10 09:58:07 +00:00
waylandclient.h Drop Toplevel::windowId() 2020-11-10 09:58:07 +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 Drop AbstractClient::isInitialPositionSet() 2020-11-27 10:41:13 +02:00
workspace.h Fix typos in comment 2020-11-17 21:55:42 +00:00
x11client.cpp Trim trailing whitespace 2020-11-28 11:01:47 +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 Trim trailing whitespace 2020-11-28 11:01:47 +00:00
xdgshellclient.h Drop AbstractClient::isInitialPositionSet() 2020-11-27 10:41:13 +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 feat: QML Keyboard Layout applet: allow Short Name override 2020-11-27 17:35:35 +00:00
xkb.h feat: expose keyboard layout Short Name via DBus 2020-11-24 16:34:57 +03: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.