My KWIN fork where I work on features like per-output virtual desktops
Find a file
Vlad Zahorodnii 68c675d00d Make source code more relocatable
Occasionally, I see complaints about the file organization of kwin,
which is fair enough.

This change makes the source code more relocatable by removing relative
paths from includes.

CMAKE_CURRENT_SOURCE_DIR was added to the interface include directories
of kwin library. This means that as long as you link against kwin target,
the real location of the source code of the library doesn't matter.

With autotests, things are not as convenient as with kwin target. Some
tests use cpp files from kwin core. If we move all source code in a src/
directory, they will need to be adjusted, but mostly only in build
scripts.
2021-02-10 15:31:42 +00:00
3rdparty Introduce ColorManager component 2020-12-13 23:53:33 +02:00
autotests Make source code more relocatable 2021-02-10 15:31:42 +00:00
cmake/modules cmake: Remove FindFontconfig.cmake 2021-01-06 11:21:03 +02:00
data GIT_SILENT: don't use deprecated cmake variable 2021-02-08 20:19:33 +01:00
decorations Lower default severity of logging categories 2021-01-25 14:03:14 +02:00
doc GIT_SILENT: dont use deprecated cmake variable 2021-01-29 11:34:52 +01:00
effects GIT_SILENT: don't use deprecated cmake variable 2021-02-08 20:19:33 +01:00
helpers GIT_SILENT: don't use deprecated cmake variable 2021-02-08 20:19:33 +01:00
kcmkwin [kcmkwin] Remove unused PlasmaCore import 2021-02-09 20:50:12 +00:00
kconf_update Fix a typo 2021-01-07 21:28:00 +02:00
libinput Make source code more relocatable 2021-02-10 15:31:42 +00:00
libkwineffects GIT_SILENT: don't use deprecated cmake variable 2021-02-08 20:19:33 +01:00
LICENSES Switch to SPDX license markers 2020-08-07 19:57:56 +00:00
platformsupport Make source code more relocatable 2021-02-10 15:31:42 +00:00
plugins Make source code more relocatable 2021-02-10 15:31:42 +00:00
qml GIT_SILENT: don't use deprecated cmake variable 2021-02-08 20:19:33 +01:00
scripting Make source code more relocatable 2021-02-10 15:31:42 +00:00
scripts GIT_SILENT: don't use deprecated cmake variable 2021-02-08 20:19:33 +01:00
tabbox GIT_SILENT: don't use deprecated cmake variable 2021-02-08 20:19:33 +01:00
tests Make source code more relocatable 2021-02-10 15:31:42 +00:00
xwl [xwl] Cache KWaylandServer::DataSourceInterface as a QPointer 2021-02-09 10:11:15 +00:00
.gitignore Add .gitignore file to ignore generated .clang-format 2020-12-18 10:03:45 +00:00
abstract_client.cpp Also set geometry restore to the new screen if maximizing 2021-01-25 19:37:06 +00:00
abstract_client.h Move the geometry restore stuff for fullscreen into a new method 2021-01-25 19:37:06 +00: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 Implement direct scanout for the gbm backend 2021-02-02 13:26:43 +00:00
abstract_output.h Implement direct scanout for the gbm backend 2021-02-02 13:26:43 +00:00
abstract_wayland_output.cpp Implement direct scanout for the gbm backend 2021-02-02 13:26:43 +00:00
abstract_wayland_output.h Implement direct scanout for the gbm backend 2021-02-02 13:26:43 +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 Use imported target for Threads 2021-02-09 20:32:29 +01:00
colordevice.cpp ColorDevice: Always update on creation 2021-01-28 17:25:08 +00:00
colordevice.h Introduce ColorManager component 2020-12-13 23:53:33 +02:00
colormanager.cpp Fix minor coding style issues 2020-12-21 20:27:35 +02:00
colormanager.h Re-apply color transforms when session is re-activated 2020-12-21 20:25:32 +02:00
composite.cpp Fix recorded render time when glXSwapBuffers() blocks 2021-01-28 12:55:10 +00:00
composite.h Introduce RenderLoop 2021-01-06 16:59:29 +00:00
config-kwin.h.cmake Drop hwcomposer backend 2021-01-05 17:38:36 +00: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 Make it possible to restart kwin_wayland from a command line argument 2021-02-02 12:20:13 +00:00
dbusinterface.h Make it possible to restart kwin_wayland from a command line argument 2021-02-02 12:20:13 +00:00
debug_console.cpp tablet_v2: Use libinput device groups to deduce the device's tablet 2021-01-06 18:47:59 +01:00
debug_console.h tablet_v2: Use libinput device groups to deduce the device's tablet 2021-01-06 18:47:59 +01:00
debug_console.ui
deleted.cpp Refactor Toplevel::opacity 2021-02-06 11:13:36 +02:00
deleted.h Refactor Toplevel::opacity 2021-02-06 11:13:36 +02: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 Implement direct scanout for the gbm backend 2021-02-02 13:26:43 +00:00
effects.h Implement direct scanout for the gbm backend 2021-02-02 13:26:43 +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 Refactor Toplevel::opacity 2021-02-06 11:13:36 +02: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
ftrace.cpp Minor pedantic include fixes in FTraceLogger 2021-01-14 22:18:23 +02:00
ftrace.h Minor pedantic include fixes in FTraceLogger 2021-01-14 22:18:23 +02: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 wayland: Introduce internal popup event filter 2021-02-02 14:09:44 +00:00
input.h wayland: Introduce internal popup event filter 2021-02-02 14:09:44 +00:00
input_event.cpp tablet_v2: Support remaining controls 2021-01-06 18:47:59 +01:00
input_event.h tablet_v2: Use libinput device groups to deduce the device's tablet 2021-01-06 18:47:59 +01:00
input_event_spy.cpp tablet_v2: Use libinput device groups to deduce the device's tablet 2021-01-06 18:47:59 +01:00
input_event_spy.h tablet_v2: Use libinput device groups to deduce the device's tablet 2021-01-06 18:47:59 +01:00
inputmethod.cpp Port wayland code away from factory methods in KWaylandServer::Display 2020-12-14 13:05:47 +00:00
inputmethod.h inputmethod: remove the workarounds 2020-10-08 17:56:44 +05:30
inputpanelv1client.cpp Schedule a repaint when a window is damaged 2020-12-02 15:33:08 +00:00
inputpanelv1client.h Drop AbstractClient::isInitialPositionSet() 2020-11-27 10:41:13 +02:00
inputpanelv1integration.cpp Port wayland code away from factory methods in KWaylandServer::Display 2020-12-14 13:05:47 +00:00
inputpanelv1integration.h wayland: Refactor creation of input panel clients 2020-09-04 13:08:34 +00:00
internal_client.cpp Refactor Toplevel::opacity 2021-02-06 11:13:36 +02:00
internal_client.h Refactor Toplevel::opacity 2021-02-06 11:13:36 +02:00
keyboard_input.cpp fix: keyboard layout applet: no flag if Display Name is set 2021-01-20 16:39:31 +03:00
keyboard_input.h Prettify license headers 2020-08-07 19:57:56 +00:00
keyboard_layout.cpp Register unique service name when wayland keyboard interface is in use 2021-01-21 12:24:07 +00:00
keyboard_layout.h refactor: keyboard layout applet: return to Properties-based QML API 2021-01-20 16:39:32 +03:00
keyboard_layout_switching.cpp fix: Clazy detached QVector warning [clazy-range-loop] 2021-01-20 16:39:32 +03:00
keyboard_layout_switching.h refactor: pass layout in KeyboardLayout::layoutChanged() signal argument 2021-01-20 16:39:32 +03: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 Introduce a setting to specify an input method 2021-01-18 16:43:05 +00:00
kwin.notifyrc SVN_SILENT made messages (.desktop file) - always resolve ours 2021-01-14 07:04:00 +01:00
kwinbindings.cpp Add keyboard shortcuts for general navigation following the Meta-for-desktop xdg spec 2020-12-07 15:09:08 +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 wayland: Close layer-shell clients when associated output is disabled 2021-01-22 10:17:45 +00:00
layershellv1client.h wayland: Close layer-shell clients when associated output is disabled 2021-01-22 10:17:45 +00:00
layershellv1integration.cpp wayland: Arrange layer shell surfaces only on enabled outputs 2021-01-22 10:17:45 +00: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 Introduce RenderLoop 2021-01-06 16:59:29 +00:00
main.h Re-apply color transforms when session is re-activated 2020-12-21 20:25:32 +02:00
main_wayland.cpp xwayland: Generate Xauthority file 2021-02-09 00:14:31 +02:00
main_wayland.h Restart the input method if it crashes 2021-01-18 16:43:05 +00:00
main_x11.cpp Lower default severity of logging categories 2021-01-25 14:03:14 +02:00
main_x11.h Drop Platform::createScreens() 2020-12-21 09:20:16 +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 platforms/x11: Always set swap interval to 1 2021-01-07 13:10:59 +00:00
options.h platforms/x11: Always set swap interval to 1 2021-01-07 13:10:59 +00:00
org.kde.kappmenu.xml
org.kde.kwin.Compositing.xml
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
org.kde.KWin.xml Make it possible to restart kwin_wayland from a command line argument 2021-02-02 12:20:13 +00: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
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 Add test for TouchInputRedirection::m_touches 2021-01-18 17:00:47 +00:00
platform.h Add test for TouchInputRedirection::m_touches 2021-01-18 17:00:47 +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 Remove QPointer from function prototypes in some input code 2021-01-28 16:49:29 +02:00
pointer_input.h Prettify license headers 2020-08-07 19:57:56 +00:00
popup_input_filter.cpp wayland: Introduce internal popup event filter 2021-02-02 14:09:44 +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
renderjournal.cpp Introduce RenderJournal 2021-01-06 16:59:29 +00:00
renderjournal.h Introduce RenderJournal 2021-01-06 16:59:29 +00:00
renderloop.cpp Properly schedule repaints with premature presentation timestamps 2021-01-14 20:45:20 +02:00
renderloop.h Introduce RenderLoop 2021-01-06 16:59:29 +00:00
renderloop_p.h platforms/drm: Make frame scheduling robust 2021-01-06 16:59:30 +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 kwinrules: Allow multiple activities in rule settings 2021-01-03 23:03:45 +01:00
rules.h kwinrules: Allow multiple activities in rule settings 2021-01-03 23:03:45 +01:00
rulesettings.kcfg kwinrules: Allow multiple activities in rule settings 2021-01-03 23:03:45 +01:00
rulesettings.kcfgc Port kwinrules kcm to kconfigxt 2020-03-16 13:21:43 +01:00
scene.cpp wayland: Schedule repaints even on empty commits 2021-02-03 06:50:06 +00:00
scene.h wayland: Schedule repaints even on empty commits 2021-02-03 06:50:06 +00: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 Prevent unused variable warnings when building for tests 2021-01-15 13:48:23 +01:00
screens.h Drop Platform::createScreens() 2020-12-21 09:20:16 +00:00
service_utils.cpp Fix email address 2020-09-09 18:33:22 +02:00
service_utils.h Disable debug log messages for KWIN_UTILS by default 2021-01-26 10:50:57 +02: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 Fix fullscreen moveresize and set geometry restore to the screen a fullscreen client gets moved to 2021-01-20 19:36:07 +00:00
sm.h Initialise SessionState 2021-01-27 14:48:38 +00:00
subsurfacemonitor.cpp wayland: Schedule repaints even on empty commits 2021-02-03 06:50:06 +00:00
subsurfacemonitor.h wayland: Schedule repaints even on empty commits 2021-02-03 06:50:06 +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 tablet_v2: Use libinput device groups to deduce the device's tablet 2021-01-06 18:47:59 +01:00
tablet_input.h tablet_v2: Use libinput device groups to deduce the device's tablet 2021-01-06 18:47:59 +01: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
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 Refactor Toplevel::opacity 2021-02-06 11:13:36 +02:00
toplevel.h Refactor Toplevel::opacity 2021-02-06 11:13:36 +02: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 Fix logical error 2021-01-28 17:18:43 +00:00
touch_input.h Add test for TouchInputRedirection::m_touches 2021-01-18 17:00:47 +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 a repaint when a window is damaged 2020-12-02 15:33:08 +00:00
unmanaged.h Schedule a repaint when a window is damaged 2020-12-02 15:33:08 +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 Lower default severity of logging categories 2021-01-25 14:03:14 +02: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 Introduce helper to restart kwin on crash exit 2020-12-15 15:43:48 +00:00
wayland_server.h Introduce helper to restart kwin on crash exit 2020-12-15 15:43:48 +00:00
waylandclient.cpp Refactor Toplevel::opacity 2021-02-06 11:13:36 +02:00
waylandclient.h Refactor Toplevel::opacity 2021-02-06 11:13:36 +02: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 wayland: Fix (mouse precedence) focus policies on desktop switch 2021-01-27 13:56:46 +00:00
workspace.h Fix typos in comment 2020-11-17 21:55:42 +00:00
x11client.cpp Refactor Toplevel::opacity 2021-02-06 11:13:36 +02:00
x11client.h Fix fullscreen moveresize and set geometry restore to the screen a fullscreen client gets moved to 2021-01-20 19:36:07 +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 autotests: Fix TestXdgShellClient 2021-02-01 09:59:02 +02:00
xdgshellclient.h autotests: Fix TestXdgShellClient 2021-02-01 09:59:02 +02:00
xdgshellintegration.cpp Port wayland code away from factory methods in KWaylandServer::Display 2020-12-14 13:05:47 +00:00
xdgshellintegration.h Use consistent naming pattern for wayland shell integrations 2020-09-04 16:51:25 +03:00
xkb.cpp Lower default severity of logging categories 2021-01-25 14:03:14 +02:00
xkb.h fix: KeyboardLayoutTest fails on updated DBus API 2021-01-20 16:39:32 +03:00
xkb_qt_mapping.h add audio pause mapping in xkb_qt_mapping. 2020-12-02 17:50:55 +08: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.