├── examples ├── plugin │ ├── .gitignore │ ├── metadata.json.license │ ├── metadata.json │ └── eventlistener.h ├── quick-effect │ ├── .gitignore │ ├── package │ │ ├── metadata.json.license │ │ ├── contents │ │ │ ├── config │ │ │ │ ├── main.xml.license │ │ │ │ └── main.xml │ │ │ └── ui │ │ │ │ └── config.ui.license │ │ └── metadata.json │ └── CMakeLists.txt └── quick-script │ ├── .gitignore │ ├── package │ ├── metadata.json.license │ └── metadata.json │ └── CMakeLists.txt ├── src ├── helpers │ └── CMakeLists.txt ├── platformsupport │ ├── CMakeLists.txt │ └── scenes │ │ ├── CMakeLists.txt │ │ ├── qpainter │ │ ├── CMakeLists.txt │ │ └── qpaintersurfacetexture_wayland.h │ │ └── opengl │ │ ├── CMakeLists.txt │ │ ├── openglsurfacetexture_wayland.cpp │ │ ├── openglsurfacetexture_x11.cpp │ │ ├── openglsurfacetexture_x11.h │ │ └── openglsurfacetexture_wayland.h ├── plugins │ ├── fade │ │ ├── CMakeLists.txt │ │ └── package │ │ │ └── contents │ │ │ └── config │ │ │ └── main.xml │ ├── login │ │ ├── CMakeLists.txt │ │ └── package │ │ │ └── contents │ │ │ └── config │ │ │ └── main.xml │ ├── logout │ │ └── CMakeLists.txt │ ├── scale │ │ └── CMakeLists.txt │ ├── squash │ │ └── CMakeLists.txt │ ├── videowall │ │ └── CMakeLists.txt │ ├── maximize │ │ └── CMakeLists.txt │ ├── minimizeall │ │ └── CMakeLists.txt │ ├── dimscreen │ │ └── CMakeLists.txt │ ├── eyeonscreen │ │ └── CMakeLists.txt │ ├── fadedesktop │ │ └── CMakeLists.txt │ ├── frozenapp │ │ └── CMakeLists.txt │ ├── fullscreen │ │ └── CMakeLists.txt │ ├── qpa │ │ ├── kwin.json │ │ ├── platformcursor.h │ │ └── eglhelpers.h │ ├── sessionquit │ │ └── CMakeLists.txt │ ├── desktopchangeosd │ │ ├── CMakeLists.txt │ │ └── package │ │ │ └── contents │ │ │ └── ui │ │ │ └── main.qml │ ├── dialogparent │ │ └── CMakeLists.txt │ ├── fadingpopups │ │ └── CMakeLists.txt │ ├── idletime │ │ ├── kwin.json │ │ └── CMakeLists.txt │ ├── translucency │ │ └── CMakeLists.txt │ ├── kpackage │ │ ├── aurorae │ │ │ └── aurorae.json │ │ ├── effect │ │ │ └── effect.json │ │ ├── scripts │ │ │ └── scripts.json │ │ ├── decoration │ │ │ └── decoration.json │ │ ├── windowswitcher │ │ │ └── windowswitcher.json │ │ └── CMakeLists.txt │ ├── windowaperture │ │ └── CMakeLists.txt │ ├── synchronizeskipswitcher │ │ ├── CMakeLists.txt │ │ └── package │ │ │ └── contents │ │ │ └── code │ │ │ └── main.js │ ├── windowsystem │ │ ├── kwindowsystem.json │ │ ├── CMakeLists.txt │ │ └── windowshadow.h │ ├── nightlight │ │ ├── metadata.json │ │ ├── nightlightsettings.kcfgc │ │ └── constants.h │ ├── krunner-integration │ │ ├── metadata.json │ │ └── CMakeLists.txt │ ├── blur │ │ ├── blurconfig.kcfgc │ │ ├── shaders │ │ │ ├── vertex.vert │ │ │ ├── vertex_core.vert │ │ │ ├── noise.frag │ │ │ ├── contrast_rounded.vert │ │ │ ├── contrast_rounded_core.vert │ │ │ ├── noise_core.frag │ │ │ ├── downsample.frag │ │ │ └── downsample_core.frag │ │ ├── main.cpp │ │ ├── blur_config.h │ │ └── blur.kcfg │ ├── colorblindnesscorrection │ │ ├── metadata.json.license │ │ ├── colorblindnesscorrection.qrc │ │ ├── colorblindnesscorrectionconfig.kcfgc │ │ ├── main.cpp │ │ ├── shaders │ │ │ └── README │ │ └── CMakeLists.txt │ ├── zoom │ │ ├── zoomconfig.kcfgc │ │ ├── zoom.qrc │ │ ├── main.cpp │ │ └── CMakeLists.txt │ ├── glide │ │ ├── glideconfig.kcfgc │ │ ├── main.cpp │ │ └── glide_config.h │ ├── sheet │ │ ├── sheetconfig.kcfgc │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ └── sheet.kcfg │ ├── slide │ │ ├── slideconfig.kcfgc │ │ └── main.cpp │ ├── trackmouse │ │ ├── data │ │ │ ├── tm_inner.png │ │ │ └── tm_outer.png │ │ ├── trackmouseconfig.kcfgc │ │ └── main.cpp │ ├── kscreen │ │ ├── kscreenconfig.kcfgc │ │ ├── main.cpp │ │ ├── CMakeLists.txt │ │ └── kscreen.kcfg │ ├── systembell │ │ ├── shaders │ │ │ ├── color.frag │ │ │ └── color_core.frag │ │ ├── systembell.qrc │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── fallapart │ │ ├── fallapartconfig.kcfgc │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ └── fallapart.kcfg │ ├── magiclamp │ │ ├── magiclampconfig.kcfgc │ │ ├── main.cpp │ │ ├── magiclamp.kcfg │ │ └── magiclamp_config.h │ ├── magnifier │ │ ├── magnifierconfig.kcfgc │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── mousemark │ │ ├── mousemarkconfig.kcfgc │ │ └── main.cpp │ ├── mouseclick │ │ ├── mouseclickconfig.kcfgc │ │ └── main.cpp │ ├── diminactive │ │ ├── diminactiveconfig.kcfgc │ │ └── main.cpp │ ├── slidingpopups │ │ ├── slidingpopupsconfig.kcfgc │ │ ├── CMakeLists.txt │ │ ├── main.cpp │ │ └── slidingpopups.kcfg │ ├── thumbnailaside │ │ ├── thumbnailasideconfig.kcfgc │ │ └── main.cpp │ ├── wobblywindows │ │ ├── wobblywindowsconfig.kcfgc │ │ └── main.cpp │ ├── invert │ │ ├── invert.qrc │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── startupfeedback │ │ ├── startupfeedback.qrc │ │ ├── shaders │ │ │ ├── blinking-startup.frag │ │ │ └── blinking-startup_core.frag │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── showpaint │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── slideback │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── overview │ │ ├── overviewconfig.kcfgc │ │ ├── main.cpp │ │ └── kcm │ │ │ ├── CMakeLists.txt │ │ │ └── overvieweffectkcm.h │ ├── backgroundcontrast │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── windowview │ │ ├── windowviewconfig.kcfgc │ │ ├── main.cpp │ │ └── kcm │ │ │ ├── CMakeLists.txt │ │ │ └── windowvieweffectkcm.h │ ├── blendchanges │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── colorpicker │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── highlightwindow │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── screenedge │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── outputlocator │ │ ├── main.cpp │ │ └── CMakeLists.txt │ ├── private │ │ ├── plugin.h │ │ ├── plugin.cpp │ │ └── CMakeLists.txt │ ├── showfps │ │ ├── main.cpp │ │ └── CMakeLists.txt │ ├── tileseditor │ │ ├── main.cpp │ │ ├── kcm │ │ │ ├── CMakeLists.txt │ │ │ └── tileseditoreffectkcm.h │ │ └── CMakeLists.txt │ └── screenshot │ │ └── main.cpp ├── backends │ ├── CMakeLists.txt │ ├── x11 │ │ ├── CMakeLists.txt │ │ └── standalone │ │ │ ├── x11_common_logging.cpp │ │ │ ├── x11_standalone_logging.cpp │ │ │ ├── x11_standalone_logging.h │ │ │ ├── x11_common_logging_p.h │ │ │ ├── x11_standalone_glxconvenience.h │ │ │ ├── x11_standalone_screenedges_filter.h │ │ │ ├── x11_standalone_glx_context_attribute_builder.h │ │ │ ├── x11_standalone_xfixes_cursor_event_filter.h │ │ │ └── x11_standalone_placeholderoutput.h │ └── virtual │ │ ├── CMakeLists.txt │ │ ├── virtual_logging.h │ │ └── virtual_logging.cpp ├── wayland │ ├── tools │ │ ├── .clang-format │ │ └── README.md │ ├── protocols │ │ └── README.md │ ├── textinput.cpp │ ├── abstract_drop_handler.cpp │ └── abstract_drop_handler.h ├── kcms │ ├── common │ │ ├── Messages.sh │ │ └── genericscriptedconfig.json │ ├── tabbox │ │ ├── thumbnails │ │ │ ├── falkon.png │ │ │ ├── kmail.png │ │ │ ├── desktop.png │ │ │ ├── dolphin.png │ │ │ └── systemsettings.png │ │ ├── Messages.sh │ │ ├── kwinswitcheffectsettings.kcfgc │ │ ├── kwintabboxsettings.kcfgc │ │ └── kwinswitcheffectsettings.kcfg │ ├── animations │ │ ├── Messages.sh │ │ ├── animationskdeglobalssettings.kcfgc │ │ ├── animationskdeglobalssettings.kcfg │ │ └── CMakeLists.txt │ ├── effects │ │ ├── Messages.sh │ │ └── desktopeffectsdata.h │ ├── decoration │ │ ├── Messages.sh │ │ ├── kwindecorationsettings.kcfgc │ │ └── declarative-plugin │ │ │ └── types.h │ ├── desktop │ │ ├── Messages.sh │ │ └── virtualdesktopssettings.kcfgc │ ├── rules │ │ └── Messages.sh │ ├── options │ │ ├── Messages.sh │ │ ├── kwinoptions_settings.kcfgc │ │ ├── kwinoptions_kdeglobals_settings.kcfgc │ │ ├── AUTHORS │ │ └── kwinoptions_kdeglobals_settings.kcfg │ ├── compositing │ │ ├── Messages.sh │ │ ├── kwincompositing_setting.kcfgc │ │ └── kwincompositingdata.h │ ├── screenedges │ │ ├── Messages.sh │ │ ├── kwinscreenedgesettings.kcfgc │ │ ├── kwintouchscreensettings.kcfgc │ │ ├── kwinscreenedgeeffectsettings.kcfgc │ │ ├── kwinscreenedgescriptsettings.kcfgc │ │ ├── kwintouchscreenscriptsettings.kcfgc │ │ ├── kwintouchscreenedgeeffectsettings.kcfgc │ │ ├── kwinscreenedgeeffectsettings.kcfg │ │ ├── kwinscreenedgescriptsettings.kcfg │ │ ├── kwintouchscreenscriptsettings.kcfg │ │ └── kwintouchscreenedgeeffectsettings.kcfg │ ├── scripts │ │ ├── Messages.sh │ │ ├── CMakeLists.txt │ │ └── kwinscriptsdata.h │ └── CMakeLists.txt ├── rulebooksettingsbase.kcfgc ├── settings.kcfgc ├── rulesettings.kcfgc ├── Messages.sh ├── qml │ ├── onscreennotification │ │ └── plasma │ │ │ └── dummydata │ │ │ └── osd.qml │ └── CMakeLists.txt ├── tabbox │ ├── switchers │ │ └── CMakeLists.txt │ ├── tabbox_logging.cpp │ └── tabbox_logging.h ├── input_event.cpp ├── effect │ ├── logging.cpp │ └── logging_p.h ├── scene │ ├── rootitem.cpp │ ├── rootitem.h │ ├── itemrenderer.cpp │ └── cursordelegate_qpainter.h ├── utils │ ├── executable_path.h │ ├── vsyncmonitor.cpp │ ├── realtime.h │ ├── executable_path_proc.cpp │ ├── xcursorreader.h │ ├── svgcursorreader.h │ ├── c_ptr.h │ ├── kernel.h │ ├── realtime.cpp │ ├── resource.h │ └── executable_path_sysctl.cpp ├── scripting │ ├── org.kde.kwin.Script.xml │ ├── scripting_logging.cpp │ ├── scripting_logging.h │ └── scriptingutils.h ├── decorations │ ├── decorations_logging.cpp │ └── decorations_logging.h ├── plugin.cpp ├── xwayland │ ├── lib │ │ ├── xauthority.h │ │ └── CMakeLists.txt │ └── CMakeLists.txt ├── opengl │ ├── saturation.glsl │ └── sdf.glsl ├── mousebuttons.h ├── core │ ├── graphicsbufferallocator.cpp │ ├── overlaywindow.cpp │ ├── shmgraphicsbufferallocator.h │ ├── inputbackend.cpp │ ├── brightnessdevice.cpp │ ├── gbmgraphicsbufferallocator.h │ ├── colorpipelinestage.h │ ├── graphicsbufferview.h │ └── outputconfiguration.cpp ├── waylandshellintegration.cpp ├── resources.qrc ├── waylandshellintegration.h ├── moving_client_x11_filter.h ├── syncalarmx11filter.h ├── was_user_interaction_x11_filter.h ├── KWinX11Config.cmake.in ├── killwindow.h ├── placeholderoutput.h ├── inputpanelv1integration.h ├── window_property_notify_x11_filter.h ├── kscreenintegration.h ├── osd.h ├── rulebooksettingsbase.kcfg └── rootinfo_filter.h ├── logo.png ├── autotests ├── integration │ ├── fakes │ │ ├── CMakeLists.txt │ │ └── org.kde.kdecoration3 │ │ │ ├── fakedecoration_with_shadows.json │ │ │ └── CMakeLists.txt │ ├── data │ │ ├── example.desktop │ │ ├── same serial number │ │ │ ├── edid.bin │ │ │ └── edid2.bin │ │ ├── rules │ │ │ ├── maximize-vert-apply-initial │ │ │ └── force-maximize │ │ └── anim-data-delete-effect │ │ │ └── effect.js │ ├── scripting │ │ ├── CMakeLists.txt │ │ └── scripts │ │ │ ├── screenedge.js │ │ │ ├── touchScreenedge.js │ │ │ ├── screenedgetouch.qml │ │ │ └── screenedgeunregister.js │ ├── effects │ │ └── scripts │ │ │ ├── screenEdgeTest.js │ │ │ ├── screenEdgeTouchTest.js │ │ │ ├── shortcutsTest.js │ │ │ ├── grabTest.js │ │ │ ├── effectContext.js │ │ │ ├── grabAlreadyGrabbedWindowTest_grabber.js │ │ │ ├── grabAlreadyGrabbedWindowTest_owner.js │ │ │ ├── grabAlreadyGrabbedWindowForcedTest_owner.js │ │ │ ├── grabAlreadyGrabbedWindowForcedTest_thief.js │ │ │ ├── keepAliveTestDontKeep.js │ │ │ ├── keepAliveTest.js │ │ │ ├── fullScreenEffectTest.js │ │ │ ├── animationTest.js │ │ │ ├── ungrabTest.js │ │ │ ├── completeTest.js │ │ │ ├── redirectAnimateDontTerminateTest.js │ │ │ ├── redirectAnimateTerminateTest.js │ │ │ ├── redirectSetDontTerminateTest.js │ │ │ └── redirectSetTerminateTest.js │ ├── helper │ │ └── CMakeLists.txt │ ├── scene_opengl_test.cpp │ └── scene_opengl_es_test.cpp ├── data │ ├── Framework 13.icc │ └── Samsung CRG49 Shaper Matrix.icc ├── effect │ └── data │ │ └── glplatform │ │ ├── V3D-V3D_4_2-desktop-2.1 │ │ ├── VC4-V3D_2_1-desktop-2.1 │ │ ├── lima-mali400-desktop-3.0 │ │ ├── qualcomm-adreno-330-libhybris-gles-3.0 │ │ ├── panfrost-malit860-desktop-3.0 │ │ ├── nvidia-geforce-gtx-950-4.5 │ │ ├── nvidia-geforce-gtx-560-4.5 │ │ ├── nvidia-geforce-gtx-660-3.1 │ │ ├── nvidia-geforce-gtx-970-3.1 │ │ ├── nvidia-geforce-gtx-980-3.1 │ │ ├── intel-kabylake-gt2-4.6 │ │ ├── nvidia-geforce-gtx-970M-3.1 │ │ ├── virgl-3.1 │ │ ├── intel-skylake-gt2-3.0 │ │ ├── intel-haswell-mobile-3.3 │ │ ├── intel-ivybridge-desktop-3.3 │ │ ├── intel-ivybridge-mobile-3.3 │ │ ├── intel-sandybridge-mobile-3.3 │ │ ├── amd-catalyst-radeonhd-7700M-3.1.13399 │ │ ├── amd-gallium-hawaii-3.0 │ │ ├── intel-ivybridge-desktop-3.0 │ │ ├── llvmpipe-10.0 │ │ ├── llvmpipe-5.0 │ │ ├── amd-gallium-bonaire-3.0 │ │ ├── intel-broadwell-gt2-3.3 │ │ ├── amd-gallium-navi-4.5 │ │ ├── amd-gallium-redwood-3.0 │ │ ├── llvmpipe-3.0 │ │ ├── amd-gallium-radeon-r9-290-4.5 │ │ ├── amd-gallium-tonga-4.1 │ │ ├── amd-gallium-radeon-rx-550-series-3.1 │ │ ├── amd-gallium-cayman-gles-3.0 │ │ ├── amd-gallium-radeon-rx-vega-56-4.5 │ │ ├── amd-gallium-radeon-rx-vega-64-4.5 │ │ ├── amd-gallium-radeon-rx-5700-xt-4.6 │ │ ├── amd-gallium-radeon-rx-580-series-4.5 │ │ └── amd-gallium-radeon-rx-480-series-4.5 └── onscreennotificationtest.h ├── doc ├── kwineffects-x11 │ ├── video.png │ ├── configure-effects.png │ ├── dialog-information.png │ └── CMakeLists.txt ├── kwindecoration-x11 │ ├── main.png │ ├── button.png │ ├── configure.png │ ├── decoration.png │ └── CMakeLists.txt ├── kwintabbox-x11 │ ├── taskswitcher.png │ └── CMakeLists.txt ├── windowspecific-x11 │ ├── Face-smile.png │ ├── emacs-info.png │ ├── knotes-info.png │ ├── kopete-info.png │ ├── akgregator-info.png │ ├── akregator-fav.png │ ├── emacs-attribute.png │ ├── kwin-rules-main.png │ ├── tbird-main-info.png │ ├── knotes-attribute.png │ ├── kopete-chat-info.png │ ├── kwin-kopete-rules.png │ ├── kwin-rule-editor.png │ ├── pager-4-desktops.png │ ├── akregator-attributes.png │ ├── config-win-behavior.png │ ├── kopete-attribute-2.png │ ├── kwin-detect-window.png │ ├── kwin-rules-ordering.png │ ├── kwin-window-matching.png │ ├── tbird-compose-info.png │ ├── tbird-main-attribute.png │ ├── tbird-reminder-info.png │ ├── window-matching-init.png │ ├── kopete-chat-attribute.png │ ├── kwin-window-attributes.png │ ├── window-matching-emacs.png │ ├── window-matching-knotes.png │ ├── window-matching-kopete.png │ ├── tbird-compose-attribute.png │ ├── kwin-rules-main-n-akregator.png │ ├── tbird-reminder-attribute-2.png │ ├── window-matching-kopete-chat.png │ ├── window-matching-tbird-main.png │ ├── window-matching-tbird-compose.png │ ├── window-matching-tbird-reminder.png │ ├── focus-stealing-pop2top-attribute.png │ ├── window-matching-ready-akregator.png │ └── CMakeLists.txt ├── moveresizerestriction │ └── moveresizerestriction.pdf ├── desktop-x11 │ └── CMakeLists.txt ├── kwinscreenedges-x11 │ └── CMakeLists.txt ├── kwintouchscreen-x11 │ └── CMakeLists.txt ├── windowbehaviour-x11 │ └── CMakeLists.txt ├── kwinvirtualkeyboard-x11 │ └── CMakeLists.txt └── CMakeLists.txt ├── data ├── icons │ ├── 16-apps-kwin-x11.png │ ├── 32-apps-kwin-x11.png │ ├── 48-apps-kwin-x11.png │ ├── sc-apps-kwin-x11.svgz │ └── CMakeLists.txt └── CMakeLists.txt ├── plasma-kwin_x11.service.in ├── Mainpage.dox ├── tests ├── lockscreenoverlaytest.desktop └── pointergesturestest.qml ├── .gitlab-ci.yml ├── .gitignore └── LICENSES └── LicenseRef-KDE-Accepted-GPL.txt /examples/plugin/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /examples/quick-effect/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /examples/quick-script/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /src/helpers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(killer) 2 | -------------------------------------------------------------------------------- /src/platformsupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(scenes) 2 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/logo.png -------------------------------------------------------------------------------- /src/plugins/fade/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(fade package) 2 | -------------------------------------------------------------------------------- /src/plugins/login/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(login package) 2 | -------------------------------------------------------------------------------- /src/plugins/logout/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(logout package) 2 | -------------------------------------------------------------------------------- /src/plugins/scale/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(scale package) 2 | -------------------------------------------------------------------------------- /src/plugins/squash/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(squash package) 2 | -------------------------------------------------------------------------------- /src/plugins/videowall/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_script(videowall package) 2 | -------------------------------------------------------------------------------- /src/backends/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(virtual) 2 | add_subdirectory(x11) 3 | -------------------------------------------------------------------------------- /src/plugins/maximize/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(maximize package) 2 | -------------------------------------------------------------------------------- /src/plugins/minimizeall/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_script(minimizeall package) 2 | -------------------------------------------------------------------------------- /src/wayland/tools/.clang-format: -------------------------------------------------------------------------------- 1 | DisableFormat: true 2 | SortIncludes: false 3 | -------------------------------------------------------------------------------- /autotests/integration/fakes/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(org.kde.kdecoration3) 2 | -------------------------------------------------------------------------------- /src/plugins/dimscreen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(dimscreen package) 2 | -------------------------------------------------------------------------------- /src/plugins/eyeonscreen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(eyeonscreen package) 2 | -------------------------------------------------------------------------------- /src/plugins/fadedesktop/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(fadedesktop package) 2 | -------------------------------------------------------------------------------- /src/plugins/frozenapp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(frozenapp package) 2 | -------------------------------------------------------------------------------- /src/plugins/fullscreen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(fullscreen package) 2 | -------------------------------------------------------------------------------- /src/plugins/qpa/kwin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "wayland-org.kde.kwin.qpa" ] 3 | } 4 | -------------------------------------------------------------------------------- /src/plugins/sessionquit/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(sessionquit package) 2 | -------------------------------------------------------------------------------- /src/plugins/desktopchangeosd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_script(desktopchangeosd package) 2 | -------------------------------------------------------------------------------- /src/plugins/dialogparent/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(dialogparent package) 2 | -------------------------------------------------------------------------------- /src/plugins/fadingpopups/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(fadingpopups package) 2 | -------------------------------------------------------------------------------- /src/plugins/idletime/kwin.json: -------------------------------------------------------------------------------- 1 | { 2 | "platforms": ["wayland-org.kde.kwin.qpa"] 3 | } 4 | -------------------------------------------------------------------------------- /src/plugins/translucency/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(translucency package) 2 | -------------------------------------------------------------------------------- /src/plugins/kpackage/aurorae/aurorae.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPackageStructure": "KWin/Aurorae" 3 | } 4 | -------------------------------------------------------------------------------- /src/plugins/kpackage/effect/effect.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPackageStructure": "KWin/Effect" 3 | } 4 | -------------------------------------------------------------------------------- /src/plugins/kpackage/scripts/scripts.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPackageStructure": "KWin/Script" 3 | } 4 | -------------------------------------------------------------------------------- /src/plugins/windowaperture/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_scripted_effect(windowaperture package) 2 | -------------------------------------------------------------------------------- /src/platformsupport/scenes/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(qpainter) 2 | add_subdirectory(opengl) 3 | -------------------------------------------------------------------------------- /src/plugins/synchronizeskipswitcher/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | kwin_add_script(synchronizeskipswitcher package) 2 | -------------------------------------------------------------------------------- /examples/plugin/metadata.json.license: -------------------------------------------------------------------------------- 1 | SPDX-FileCopyrightText: None 2 | SPDX-License-Identifier: CC0-1.0 3 | -------------------------------------------------------------------------------- /src/plugins/kpackage/decoration/decoration.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPackageStructure": "KWin/Decoration" 3 | } 4 | -------------------------------------------------------------------------------- /src/plugins/windowsystem/kwindowsystem.json: -------------------------------------------------------------------------------- 1 | { 2 | "platforms": ["wayland-org.kde.kwin.qpa"] 3 | } 4 | -------------------------------------------------------------------------------- /autotests/integration/data/example.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=An example application 3 | Icon=kwin-x11 4 | -------------------------------------------------------------------------------- /doc/kwineffects-x11/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/kwineffects-x11/video.png -------------------------------------------------------------------------------- /examples/plugin/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPlugin": { 3 | "EnabledByDefault": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/backends/x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if (KWIN_BUILD_X11_BACKEND) 2 | add_subdirectory(standalone) 3 | endif() 4 | -------------------------------------------------------------------------------- /autotests/data/Framework 13.icc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/autotests/data/Framework 13.icc -------------------------------------------------------------------------------- /data/icons/16-apps-kwin-x11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/data/icons/16-apps-kwin-x11.png -------------------------------------------------------------------------------- /data/icons/32-apps-kwin-x11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/data/icons/32-apps-kwin-x11.png -------------------------------------------------------------------------------- /data/icons/48-apps-kwin-x11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/data/icons/48-apps-kwin-x11.png -------------------------------------------------------------------------------- /data/icons/sc-apps-kwin-x11.svgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/data/icons/sc-apps-kwin-x11.svgz -------------------------------------------------------------------------------- /doc/kwindecoration-x11/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/kwindecoration-x11/main.png -------------------------------------------------------------------------------- /src/plugins/kpackage/windowswitcher/windowswitcher.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPackageStructure": "KWin/WindowSwitcher" 3 | } 4 | -------------------------------------------------------------------------------- /src/plugins/nightlight/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPlugin": { 3 | "EnabledByDefault": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /autotests/integration/scripting/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | integrationTest(NAME testScriptingScreenEdge SRCS screenedge_test.cpp) 2 | -------------------------------------------------------------------------------- /doc/kwindecoration-x11/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/kwindecoration-x11/button.png -------------------------------------------------------------------------------- /examples/quick-effect/package/metadata.json.license: -------------------------------------------------------------------------------- 1 | SPDX-FileCopyrightText: None 2 | SPDX-License-Identifier: CC0-1.0 3 | -------------------------------------------------------------------------------- /examples/quick-script/package/metadata.json.license: -------------------------------------------------------------------------------- 1 | SPDX-FileCopyrightText: None 2 | SPDX-License-Identifier: CC0-1.0 3 | -------------------------------------------------------------------------------- /src/kcms/common/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $XGETTEXT `find . -name \*.cpp` -o $podir/kcmkwincommon_x11.pot 3 | -------------------------------------------------------------------------------- /doc/kwindecoration-x11/configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/kwindecoration-x11/configure.png -------------------------------------------------------------------------------- /doc/kwindecoration-x11/decoration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/kwindecoration-x11/decoration.png -------------------------------------------------------------------------------- /doc/kwintabbox-x11/taskswitcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/kwintabbox-x11/taskswitcher.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/Face-smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/Face-smile.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/emacs-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/emacs-info.png -------------------------------------------------------------------------------- /src/kcms/tabbox/thumbnails/falkon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/src/kcms/tabbox/thumbnails/falkon.png -------------------------------------------------------------------------------- /src/kcms/tabbox/thumbnails/kmail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/src/kcms/tabbox/thumbnails/kmail.png -------------------------------------------------------------------------------- /src/plugins/krunner-integration/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPlugin": { 3 | "EnabledByDefault": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /autotests/integration/scripting/scripts/screenedge.js: -------------------------------------------------------------------------------- 1 | registerScreenEdge(readConfig("Edge", 1), workspace.slotToggleShowDesktop); 2 | -------------------------------------------------------------------------------- /doc/windowspecific-x11/knotes-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/knotes-info.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kopete-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kopete-info.png -------------------------------------------------------------------------------- /examples/quick-effect/package/contents/config/main.xml.license: -------------------------------------------------------------------------------- 1 | SPDX-FileCopyrightText: None 2 | SPDX-License-Identifier: CC0-1.0 3 | -------------------------------------------------------------------------------- /examples/quick-effect/package/contents/ui/config.ui.license: -------------------------------------------------------------------------------- 1 | SPDX-FileCopyrightText: None 2 | SPDX-License-Identifier: CC0-1.0 3 | -------------------------------------------------------------------------------- /src/kcms/tabbox/thumbnails/desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/src/kcms/tabbox/thumbnails/desktop.png -------------------------------------------------------------------------------- /src/kcms/tabbox/thumbnails/dolphin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/src/kcms/tabbox/thumbnails/dolphin.png -------------------------------------------------------------------------------- /src/plugins/blur/blurconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=blur.kcfg 2 | ClassName=BlurConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/colorblindnesscorrection/metadata.json.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | -------------------------------------------------------------------------------- /src/plugins/zoom/zoomconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=zoom.kcfg 2 | ClassName=ZoomConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /doc/kwineffects-x11/configure-effects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/kwineffects-x11/configure-effects.png -------------------------------------------------------------------------------- /doc/kwineffects-x11/dialog-information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/kwineffects-x11/dialog-information.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/akgregator-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/akgregator-info.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/akregator-fav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/akregator-fav.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/emacs-attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/emacs-attribute.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kwin-rules-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kwin-rules-main.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/tbird-main-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/tbird-main-info.png -------------------------------------------------------------------------------- /src/kcms/common/genericscriptedconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "Type": "Service", 3 | "X-KDE-Library": "kcm_kwin4_genericscripted" 4 | } 5 | -------------------------------------------------------------------------------- /src/plugins/glide/glideconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=glide.kcfg 2 | ClassName=GlideConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/sheet/sheetconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=sheet.kcfg 2 | ClassName=SheetConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/slide/slideconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=slide.kcfg 2 | ClassName=SlideConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/trackmouse/data/tm_inner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/src/plugins/trackmouse/data/tm_inner.png -------------------------------------------------------------------------------- /src/plugins/trackmouse/data/tm_outer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/src/plugins/trackmouse/data/tm_outer.png -------------------------------------------------------------------------------- /src/wayland/protocols/README.md: -------------------------------------------------------------------------------- 1 | Folder for storing external protocols that aren't in released wayland-protocols or Plasma specific. 2 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/screenEdgeTest.js: -------------------------------------------------------------------------------- 1 | registerScreenEdge(1, function() { 2 | sendTestResponse("triggered"); 3 | }); 4 | -------------------------------------------------------------------------------- /autotests/integration/scripting/scripts/touchScreenedge.js: -------------------------------------------------------------------------------- 1 | registerTouchScreenEdge(readConfig("Edge", 1), workspace.slotToggleShowDesktop); 2 | -------------------------------------------------------------------------------- /doc/windowspecific-x11/knotes-attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/knotes-attribute.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kopete-chat-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kopete-chat-info.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kwin-kopete-rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kwin-kopete-rules.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kwin-rule-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kwin-rule-editor.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/pager-4-desktops.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/pager-4-desktops.png -------------------------------------------------------------------------------- /src/kcms/animations/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $XGETTEXT `find . -name \*.cpp -o -name \*.qml` -o $podir/kcm_animations_x11.pot 3 | -------------------------------------------------------------------------------- /src/kcms/effects/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $XGETTEXT `find . -name \*.cpp -o -name \*.qml` -o $podir/kcm_kwin_effects_x11.pot 3 | -------------------------------------------------------------------------------- /autotests/data/Samsung CRG49 Shaper Matrix.icc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/autotests/data/Samsung CRG49 Shaper Matrix.icc -------------------------------------------------------------------------------- /doc/windowspecific-x11/akregator-attributes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/akregator-attributes.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/config-win-behavior.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/config-win-behavior.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kopete-attribute-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kopete-attribute-2.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kwin-detect-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kwin-detect-window.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kwin-rules-ordering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kwin-rules-ordering.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kwin-window-matching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kwin-window-matching.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/tbird-compose-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/tbird-compose-info.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/tbird-main-attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/tbird-main-attribute.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/tbird-reminder-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/tbird-reminder-info.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-init.png -------------------------------------------------------------------------------- /src/kcms/decoration/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $XGETTEXT `find . -name "*.cpp" -o -name "*.qml"` -o $podir/kcm_kwindecoration_x11.pot 3 | -------------------------------------------------------------------------------- /src/kcms/desktop/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $XGETTEXT `find . -name \*.cpp -o -name \*.qml` -o $podir/kcm_kwin_virtualdesktops_x11.pot 3 | -------------------------------------------------------------------------------- /src/kcms/tabbox/thumbnails/systemsettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/src/kcms/tabbox/thumbnails/systemsettings.png -------------------------------------------------------------------------------- /src/plugins/kscreen/kscreenconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=kscreen.kcfg 2 | ClassName=KscreenConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/systembell/shaders/color.frag: -------------------------------------------------------------------------------- 1 | uniform vec4 geometryColor; 2 | 3 | void main() 4 | { 5 | gl_FragColor = geometryColor; 6 | } 7 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/screenEdgeTouchTest.js: -------------------------------------------------------------------------------- 1 | registerTouchScreenEdge(1, function() { 2 | sendTestResponse("triggered"); 3 | }); 4 | -------------------------------------------------------------------------------- /doc/windowspecific-x11/kopete-chat-attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kopete-chat-attribute.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/kwin-window-attributes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kwin-window-attributes.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-emacs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-emacs.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-knotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-knotes.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-kopete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-kopete.png -------------------------------------------------------------------------------- /src/kcms/rules/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $XGETTEXT `find . -name \*.cpp -o -name \*.h -o -name \*.qml` -o $podir/kcm_kwinrules_x11.pot 3 | -------------------------------------------------------------------------------- /src/plugins/fallapart/fallapartconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=fallapart.kcfg 2 | ClassName=FallApartConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/magiclamp/magiclampconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=magiclamp.kcfg 2 | ClassName=MagicLampConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/magnifier/magnifierconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=magnifier.kcfg 2 | ClassName=MagnifierConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/mousemark/mousemarkconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=mousemark.kcfg 2 | ClassName=MouseMarkConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/systembell/shaders/color_core.frag: -------------------------------------------------------------------------------- 1 | uniform vec4 geometryColor; 2 | 3 | void main() 4 | { 5 | gl_FragColor = geometryColor; 6 | } 7 | -------------------------------------------------------------------------------- /doc/moveresizerestriction/moveresizerestriction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/moveresizerestriction/moveresizerestriction.pdf -------------------------------------------------------------------------------- /doc/windowspecific-x11/tbird-compose-attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/tbird-compose-attribute.png -------------------------------------------------------------------------------- /src/kcms/options/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $EXTRACTRC `find . -name \*.ui` >> rc.cpp || exit 11 3 | $XGETTEXT *.cpp -o $podir/kcmkwm_x11.pot 4 | -------------------------------------------------------------------------------- /src/plugins/mouseclick/mouseclickconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=mouseclick.kcfg 2 | ClassName=MouseClickConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/trackmouse/trackmouseconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=trackmouse.kcfg 2 | ClassName=TrackMouseConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /autotests/integration/data/same serial number/edid.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/autotests/integration/data/same serial number/edid.bin -------------------------------------------------------------------------------- /doc/windowspecific-x11/kwin-rules-main-n-akregator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/kwin-rules-main-n-akregator.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/tbird-reminder-attribute-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/tbird-reminder-attribute-2.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-kopete-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-kopete-chat.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-tbird-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-tbird-main.png -------------------------------------------------------------------------------- /src/kcms/tabbox/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $EXTRACTRC *.ui >> rc.cpp || exit 11 3 | $XGETTEXT *.cpp -o $podir/kcm_kwintabbox_x11.pot 4 | rm -f rc.cpp 5 | -------------------------------------------------------------------------------- /src/plugins/diminactive/diminactiveconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=diminactive.kcfg 2 | ClassName=DimInactiveConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /autotests/integration/data/same serial number/edid2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/autotests/integration/data/same serial number/edid2.bin -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-tbird-compose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-tbird-compose.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-tbird-reminder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-tbird-reminder.png -------------------------------------------------------------------------------- /src/rulebooksettingsbase.kcfgc: -------------------------------------------------------------------------------- 1 | File=rulebooksettingsbase.kcfg 2 | NameSpace=KWin 3 | ClassName=RuleBookSettingsBase 4 | Mutators=true 5 | ParentInConstructor=true 6 | -------------------------------------------------------------------------------- /doc/windowspecific-x11/focus-stealing-pop2top-attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/focus-stealing-pop2top-attribute.png -------------------------------------------------------------------------------- /doc/windowspecific-x11/window-matching-ready-akregator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sonic-DE/sonic-win/HEAD/doc/windowspecific-x11/window-matching-ready-akregator.png -------------------------------------------------------------------------------- /src/kcms/compositing/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $EXTRACTRC `find . -name \*.ui` >> rc.cpp || exit 11 3 | $XGETTEXT *.cpp -o $podir/kcmkwincompositing_x11.pot 4 | -------------------------------------------------------------------------------- /src/kcms/screenedges/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $EXTRACTRC *.ui >> rc.cpp || exit 11 3 | $XGETTEXT *.cpp -o $podir/kcmkwinscreenedges_x11.pot 4 | rm -f rc.cpp 5 | -------------------------------------------------------------------------------- /src/plugins/slidingpopups/slidingpopupsconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=slidingpopups.kcfg 2 | ClassName=SlidingPopupsConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/thumbnailaside/thumbnailasideconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=thumbnailaside.kcfg 2 | ClassName=ThumbnailAsideConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /src/plugins/wobblywindows/wobblywindowsconfig.kcfgc: -------------------------------------------------------------------------------- 1 | File=wobblywindows.kcfg 2 | ClassName=WobblyWindowsConfig 3 | NameSpace=KWin 4 | Singleton=true 5 | Mutators=true 6 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/shortcutsTest.js: -------------------------------------------------------------------------------- 1 | registerShortcut("testShortcut", "Test Shortcut", "Meta+Shift+Y", function() { 2 | sendTestResponse("shortcutTriggered"); 3 | }); 4 | -------------------------------------------------------------------------------- /src/settings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwin.kcfg 2 | NameSpace=KWin 3 | ClassName=Settings 4 | # options.h is needed for FocusPolicy and PlacementPolicy 5 | IncludeFiles=\"options.h\" 6 | UseEnumTypes=true 7 | -------------------------------------------------------------------------------- /doc/desktop-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/desktop-x11) 3 | -------------------------------------------------------------------------------- /src/kcms/compositing/kwincompositing_setting.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwincompositing_setting.kcfg 2 | ClassName=KWinCompositingSetting 3 | Mutators=true 4 | DefaultValueGetters=true 5 | ParentInConstructor=true 6 | -------------------------------------------------------------------------------- /doc/kwineffects-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwineffects-x11) 3 | -------------------------------------------------------------------------------- /doc/kwintabbox-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwintabbox-x11) 3 | -------------------------------------------------------------------------------- /src/rulesettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=rulesettings.kcfg 2 | IncludeFiles=\"rules.h\",netwm_def.h 3 | NameSpace=KWin 4 | ClassName=RuleSettings 5 | UseEnumTypes=true 6 | Mutators=true 7 | ParentInConstructor=true 8 | -------------------------------------------------------------------------------- /doc/kwindecoration-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwindecoration-x11) 3 | -------------------------------------------------------------------------------- /doc/kwinscreenedges-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwinscreenedges-x11) 3 | -------------------------------------------------------------------------------- /doc/kwintouchscreen-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwintouchscreen-x11) 3 | -------------------------------------------------------------------------------- /doc/windowbehaviour-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/windowbehaviour-x11) 3 | -------------------------------------------------------------------------------- /doc/windowspecific-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/windowspecific-x11) 3 | -------------------------------------------------------------------------------- /src/kcms/options/kwinoptions_settings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwinoptions_settings.kcfg 2 | ClassName=KWinOptionsSettings 3 | IncludeFiles=options.h 4 | Mutators=true 5 | DefaultValueGetters=true 6 | ParentInConstructor=true 7 | -------------------------------------------------------------------------------- /src/kcms/tabbox/kwinswitcheffectsettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwinswitcheffectsettings.kcfg 2 | NameSpace=KWin::TabBox 3 | ClassName=SwitchEffectSettings 4 | Mutators=true 5 | DefaultValueGetters=true 6 | ParentInConstructor=true 7 | -------------------------------------------------------------------------------- /src/plugins/invert/invert.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | shaders/invert.frag 4 | shaders/invert_core.frag 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/plugins/zoom/zoom.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | shaders/pixelgrid.frag 4 | shaders/pixelgrid_core.frag 5 | 6 | 7 | -------------------------------------------------------------------------------- /doc/kwinvirtualkeyboard-x11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ########### install files ############### 2 | kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kcontrol/kwinvirtualkeyboard-x11) 3 | -------------------------------------------------------------------------------- /src/backends/virtual/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(kwin PRIVATE 2 | virtual_backend.cpp 3 | virtual_egl_backend.cpp 4 | virtual_logging.cpp 5 | virtual_output.cpp 6 | virtual_qpainter_backend.cpp 7 | ) 8 | -------------------------------------------------------------------------------- /src/kcms/desktop/virtualdesktopssettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=virtualdesktopssettings.kcfg 2 | ClassName=VirtualDesktopsSettings 3 | Mutators=true 4 | DefaultValueGetters=true 5 | GenerateProperties=true 6 | ParentInConstructor=true 7 | -------------------------------------------------------------------------------- /src/platformsupport/scenes/qpainter/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(kwin PRIVATE 2 | qpaintersurfacetexture.cpp 3 | qpaintersurfacetexture_wayland.cpp 4 | qpainterbackend.cpp 5 | qpainterswapchain.cpp 6 | ) 7 | -------------------------------------------------------------------------------- /src/kcms/options/kwinoptions_kdeglobals_settings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwinoptions_kdeglobals_settings.kcfg 2 | ClassName=KWinOptionsKDEGlobalsSettings 3 | IncludeFiles=options.h 4 | Mutators=true 5 | DefaultValueGetters=true 6 | ParentInConstructor=true 7 | -------------------------------------------------------------------------------- /src/kcms/tabbox/kwintabboxsettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwintabboxsettings.kcfg 2 | NameSpace=KWin::TabBox 3 | ClassName=TabBoxSettings 4 | IncludeFiles=\"tabbox/tabboxconfig.h\" 5 | Mutators=true 6 | DefaultValueGetters=true 7 | ParentInConstructor=true 8 | -------------------------------------------------------------------------------- /src/kcms/scripts/Messages.sh: -------------------------------------------------------------------------------- 1 | #!bin/sh 2 | $EXTRACTRC `find . -name \*.rc -o -name \*.ui -o -name \*.kcfg` >> rc.cpp 3 | $XGETTEXT `find . -name \*.cc -o -name \*.cpp -o -name \*.h -o -name \*.qml` -o $podir/kcm_kwin_scripts_x11.pot 4 | rm -f rc.cpp 5 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwinscreenedgesettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwinscreenedgesettings.kcfg 2 | NameSpace=KWin 3 | ClassName=KWinScreenEdgeSettings 4 | IncludeFiles=\"effect/globals.h\" 5 | Mutators=true 6 | DefaultValueGetters=true 7 | ParentInConstructor=true 8 | -------------------------------------------------------------------------------- /src/Messages.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | $EXTRACTRC `find . -not -path "./kcms/*" \( -name \*.kcfg -o -name \*.ui \)` >> rc.cpp || exit 11 3 | $XGETTEXT `find . -not -path "./kcms/*" \( -name \*.cpp -o -name \*.qml \)` -o $podir/kwin_x11.pot 4 | rm -f rc.cpp 5 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwintouchscreensettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwintouchscreensettings.kcfg 2 | NameSpace=KWin 3 | ClassName=KWinTouchScreenSettings 4 | IncludeFiles=\"effect/globals.h\" 5 | Mutators=true 6 | DefaultValueGetters=true 7 | ParentInConstructor=true 8 | -------------------------------------------------------------------------------- /src/qml/onscreennotification/plasma/dummydata/osd.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2 | 3 | QtObject { 4 | property bool visible: true 5 | property string message: "This is an example message.\nUsing multiple lines" 6 | property string iconName: "kwin-x11" 7 | } 8 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/grabTest.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | if (effect.grab(window, Effect.WindowAddedGrabRole)) { 3 | sendTestResponse('ok'); 4 | } else { 5 | sendTestResponse('fail'); 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /src/plugins/startupfeedback/startupfeedback.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | shaders/blinking-startup.frag 4 | shaders/blinking-startup_core.frag 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/kcms/decoration/kwindecorationsettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwindecorationsettings.kcfg 2 | ClassName=KWinDecorationSettings 3 | Mutators=true 4 | DefaultValueGetters=true 5 | GenerateProperties=true 6 | ParentInConstructor=true 7 | Notifiers=buttonsOnLeft,buttonsOnRight,theme 8 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwinscreenedgeeffectsettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwinscreenedgeeffectsettings.kcfg 2 | NameSpace=KWin 3 | ClassName=KWinScreenEdgeEffectSettings 4 | IncludeFiles=\"effect/globals.h\" 5 | Mutators=true 6 | DefaultValueGetters=true 7 | ParentInConstructor=true 8 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwinscreenedgescriptsettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwinscreenedgescriptsettings.kcfg 2 | NameSpace=KWin 3 | ClassName=KWinScreenEdgeScriptSettings 4 | IncludeFiles=\"effect/globals.h\" 5 | Mutators=true 6 | DefaultValueGetters=true 7 | ParentInConstructor=true 8 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwintouchscreenscriptsettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwintouchscreenscriptsettings.kcfg 2 | NameSpace=KWin 3 | ClassName=KWinTouchScreenScriptSettings 4 | IncludeFiles=\"effect/globals.h\" 5 | Mutators=true 6 | DefaultValueGetters=true 7 | ParentInConstructor=true 8 | -------------------------------------------------------------------------------- /src/plugins/nightlight/nightlightsettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=nightlightsettings.kcfg 2 | NameSpace=KWin 3 | ClassName=NightLightSettings 4 | Singleton=true 5 | Mutators=true 6 | # nightlightmanager.h is needed for NightLightMode 7 | IncludeFiles=nightlightmanager.h 8 | UseEnumTypes=true 9 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/effectContext.js: -------------------------------------------------------------------------------- 1 | sendTestResponse(displayWidth() + "x" + displayHeight()); 2 | sendTestResponse(animationTime(100)); 3 | 4 | //test enums for Effect / QEasingCurve 5 | sendTestResponse(Effect.Saturation) 6 | sendTestResponse(QEasingCurve.Linear) 7 | -------------------------------------------------------------------------------- /src/tabbox/switchers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2023 Nate Graham 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | set(TABBOX_DIR ${KDE_INSTALL_DATADIR}/${KWIN_DATADIR}/tabbox) 6 | install(DIRECTORY thumbnail_grid DESTINATION ${TABBOX_DIR}) 7 | -------------------------------------------------------------------------------- /src/wayland/textinput.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Bhushan Shah 3 | 4 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 | */ 6 | 7 | #include "textinput.h" 8 | 9 | #include "moc_textinput.cpp" 10 | -------------------------------------------------------------------------------- /src/input_event.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2016 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "input_event.h" 10 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwintouchscreenedgeeffectsettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=kwintouchscreenedgeeffectsettings.kcfg 2 | NameSpace=KWin 3 | ClassName=KWinTouchScreenEdgeEffectSettings 4 | IncludeFiles=\"effect/globals.h\" 5 | Mutators=true 6 | DefaultValueGetters=true 7 | ParentInConstructor=true 8 | -------------------------------------------------------------------------------- /src/kcms/animations/animationskdeglobalssettings.kcfgc: -------------------------------------------------------------------------------- 1 | File=animationskdeglobalssettings.kcfg 2 | ClassName=AnimationsGlobalsSettings 3 | Mutators=true 4 | DefaultValueGetters=true 5 | GenerateProperties=true 6 | ParentInConstructor=true 7 | Notifiers=animationDurationFactor 8 | NameSpace=KWin 9 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/grabAlreadyGrabbedWindowTest_grabber.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | if (effect.grab(window, Effect.WindowAddedGrabRole)) { 3 | sendTestResponse('ok'); 4 | } else { 5 | sendTestResponse('fail'); 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/grabAlreadyGrabbedWindowTest_owner.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | if (effect.grab(window, Effect.WindowAddedGrabRole)) { 3 | sendTestResponse('ok'); 4 | } else { 5 | sendTestResponse('fail'); 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /data/icons/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ecm_install_icons( 2 | ICONS 3 | 16-apps-kwin-x11.png 4 | 32-apps-kwin-x11.png 5 | 48-apps-kwin-x11.png 6 | sc-apps-kwin-x11.svgz 7 | DESTINATION 8 | ${KDE_INSTALL_ICONDIR} 9 | THEME 10 | hicolor 11 | ) 12 | -------------------------------------------------------------------------------- /src/platformsupport/scenes/opengl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(kwin PRIVATE 2 | abstract_egl_backend.cpp 3 | basiceglsurfacetexture_wayland.cpp 4 | openglbackend.cpp 5 | openglsurfacetexture.cpp 6 | openglsurfacetexture_wayland.cpp 7 | openglsurfacetexture_x11.cpp 8 | ) 9 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/grabAlreadyGrabbedWindowForcedTest_owner.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | if (effect.grab(window, Effect.WindowAddedGrabRole)) { 3 | sendTestResponse('ok'); 4 | } else { 5 | sendTestResponse('fail'); 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /autotests/integration/scripting/scripts/screenedgetouch.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2 | import org.kde.kwin 3 | 4 | ScreenEdgeHandler { 5 | edge: ScreenEdgeHandler.LeftEdge 6 | mode: ScreenEdgeHandler.Touch 7 | onActivated: { 8 | Workspace.slotToggleShowDesktop(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /plasma-kwin_x11.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=KDE Window Manager 3 | After=plasma-kcminit.service 4 | PartOf=graphical-session.target 5 | 6 | [Service] 7 | ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/kwin_x11 --replace 8 | BusName=org.kde.KWin 9 | Slice=session.slice 10 | Restart=on-failure 11 | -------------------------------------------------------------------------------- /src/backends/virtual/virtual_logging.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | Q_DECLARE_LOGGING_CATEGORY(KWIN_VIRTUAL) 12 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/grabAlreadyGrabbedWindowForcedTest_thief.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | if (effect.grab(window, Effect.WindowAddedGrabRole, true)) { 3 | sendTestResponse('ok'); 4 | } else { 5 | sendTestResponse('fail'); 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /src/plugins/colorblindnesscorrection/colorblindnesscorrection.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | shaders/colorblindnesscorrection.frag 4 | shaders/colorblindnesscorrection_core.frag 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/plugins/showpaint/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | set(showpaint_SOURCES 5 | main.cpp 6 | showpaint.cpp 7 | ) 8 | 9 | kwin_add_builtin_effect(showpaint ${showpaint_SOURCES}) 10 | target_link_libraries(showpaint PRIVATE 11 | kwin 12 | ) 13 | -------------------------------------------------------------------------------- /src/plugins/systembell/systembell.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | shaders/color.frag 4 | shaders/color_core.frag 5 | shaders/invert.frag 6 | shaders/invert_core.frag 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/backends/virtual/virtual_logging.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "virtual_logging.h" 8 | 9 | Q_LOGGING_CATEGORY(KWIN_VIRTUAL, "kwin_platform_virtual", QtWarningMsg) 10 | -------------------------------------------------------------------------------- /src/plugins/blur/shaders/vertex.vert: -------------------------------------------------------------------------------- 1 | uniform mat4 modelViewProjectionMatrix; 2 | 3 | attribute vec2 position; 4 | attribute vec2 texcoord; 5 | 6 | varying vec2 uv; 7 | 8 | void main(void) 9 | { 10 | gl_Position = modelViewProjectionMatrix * vec4(position, 0.0, 1.0); 11 | uv = texcoord; 12 | } 13 | -------------------------------------------------------------------------------- /src/plugins/colorblindnesscorrection/colorblindnesscorrectionconfig.kcfgc: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2023 Fushan Wen 2 | # SPDX-License-Identifier: GPL-2.0-or-later 3 | 4 | File=colorblindnesscorrectionconfig.kcfg 5 | ClassName=ColorBlindnessCorrectionSettings 6 | NameSpace=KWin 7 | Singleton=true -------------------------------------------------------------------------------- /src/plugins/slideback/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | kwin_add_builtin_effect(slideback) 5 | target_sources(slideback PRIVATE 6 | main.cpp 7 | motionmanager.cpp 8 | slideback.cpp 9 | ) 10 | target_link_libraries(slideback PRIVATE 11 | kwin 12 | ) 13 | -------------------------------------------------------------------------------- /src/plugins/blur/shaders/vertex_core.vert: -------------------------------------------------------------------------------- 1 | #version 140 2 | 3 | uniform mat4 modelViewProjectionMatrix; 4 | 5 | in vec2 position; 6 | in vec2 texcoord; 7 | 8 | out vec2 uv; 9 | 10 | void main(void) 11 | { 12 | gl_Position = modelViewProjectionMatrix * vec4(position, 0.0, 1.0); 13 | uv = texcoord; 14 | } 15 | -------------------------------------------------------------------------------- /src/plugins/overview/overviewconfig.kcfgc: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 2 | # 3 | # SPDX-License-Identifier: CC0-1.0 4 | 5 | File=overviewconfig.kcfg 6 | ClassName=OverviewConfig 7 | NameSpace=KWin 8 | Singleton=true 9 | Mutators=true 10 | IncludeFiles=\"effect/globals.h\" 11 | -------------------------------------------------------------------------------- /src/qml/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | install(DIRECTORY outline/plasma DESTINATION ${KDE_INSTALL_DATADIR}/${KWIN_DATADIR}/outline) 2 | install(DIRECTORY onscreennotification/plasma DESTINATION ${KDE_INSTALL_DATADIR}/${KWIN_DATADIR}/onscreennotification) 3 | install(DIRECTORY frames/plasma DESTINATION ${KDE_INSTALL_DATADIR}/${KWIN_DATADIR}/frames) 4 | -------------------------------------------------------------------------------- /src/plugins/backgroundcontrast/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | # Source files 5 | set(contrast_SOURCES 6 | contrast.cpp 7 | contrastshader.cpp 8 | main.cpp 9 | ) 10 | kwin_add_builtin_effect(contrast ${contrast_SOURCES}) 11 | target_link_libraries(contrast PRIVATE kwin) 12 | -------------------------------------------------------------------------------- /src/plugins/idletime/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(idletime_plugin_SRCS 2 | poller.cpp 3 | ) 4 | 5 | add_library(KF6IdleTimeKWinPlugin OBJECT ${idletime_plugin_SRCS}) 6 | target_compile_definitions(KF6IdleTimeKWinPlugin PRIVATE QT_STATICPLUGIN) 7 | target_link_libraries(KF6IdleTimeKWinPlugin 8 | KF6::IdleTime 9 | kwin 10 | ) 11 | -------------------------------------------------------------------------------- /src/plugins/windowview/windowviewconfig.kcfgc: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 2 | # 3 | # SPDX-License-Identifier: CC0-1.0 4 | 5 | File=windowviewconfig.kcfg 6 | ClassName=WindowViewConfig 7 | NameSpace=KWin 8 | Singleton=true 9 | Mutators=true 10 | IncludeFiles=\"effect/globals.h\" 11 | -------------------------------------------------------------------------------- /src/plugins/blendchanges/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | set(blendchanges_SOURCES 5 | main.cpp 6 | blendchanges.cpp 7 | ) 8 | 9 | kwin_add_builtin_effect(blendchanges ${blendchanges_SOURCES}) 10 | target_link_libraries(blendchanges PRIVATE 11 | kwin 12 | Qt::DBus 13 | ) 14 | -------------------------------------------------------------------------------- /src/plugins/startupfeedback/shaders/blinking-startup.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D sampler; 2 | uniform vec4 geometryColor; 3 | 4 | varying vec2 texcoord0; 5 | 6 | void main() 7 | { 8 | vec4 tex = texture2D(sampler, texcoord0); 9 | if (tex.a != 1.0) { 10 | tex = geometryColor; 11 | } 12 | gl_FragColor = tex; 13 | } 14 | -------------------------------------------------------------------------------- /src/effect/logging.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "logging_p.h" 10 | Q_LOGGING_CATEGORY(LIBKWINEFFECTS, "effect", QtWarningMsg) 11 | -------------------------------------------------------------------------------- /src/plugins/systembell/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(systembell_SOURCES 2 | systembell.cpp 3 | systembell.qrc 4 | main.cpp 5 | ) 6 | 7 | kwin_add_builtin_effect(systembell ${systembell_SOURCES}) 8 | target_link_libraries(systembell PRIVATE 9 | kwin 10 | 11 | KF6::GlobalAccel 12 | KF6::I18n 13 | Canberra::Canberra 14 | ) 15 | -------------------------------------------------------------------------------- /src/plugins/blur/shaders/noise.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texUnit; 2 | uniform vec2 noiseTextureSize; 3 | uniform vec2 texStartPos; 4 | 5 | varying vec2 uv; 6 | 7 | void main(void) 8 | { 9 | vec2 uvNoise = vec2((texStartPos.xy + gl_FragCoord.xy) / noiseTextureSize); 10 | 11 | gl_FragColor = vec4(texture2D(texUnit, uvNoise).rrr, 0); 12 | } 13 | -------------------------------------------------------------------------------- /src/plugins/invert/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | set(invert_SOURCES 5 | invert.cpp 6 | invert.qrc 7 | main.cpp 8 | ) 9 | 10 | kwin_add_builtin_effect(invert ${invert_SOURCES}) 11 | target_link_libraries(invert PRIVATE 12 | kwin 13 | 14 | KF6::GlobalAccel 15 | KF6::I18n 16 | ) 17 | -------------------------------------------------------------------------------- /src/scene/rootitem.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2024 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "scene/rootitem.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | RootItem::RootItem(Scene *scene) 13 | { 14 | setScene(scene); 15 | } 16 | 17 | } // namespace KWin 18 | -------------------------------------------------------------------------------- /src/tabbox/tabbox_logging.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "tabbox_logging.h" 10 | Q_LOGGING_CATEGORY(KWIN_TABBOX, "kwin_tabbox", QtWarningMsg) 11 | -------------------------------------------------------------------------------- /src/plugins/colorpicker/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | set(colorpicker_SOURCES 5 | colorpicker.cpp 6 | main.cpp 7 | ) 8 | 9 | kwin_add_builtin_effect(colorpicker ${colorpicker_SOURCES}) 10 | target_link_libraries(colorpicker PRIVATE 11 | kwin 12 | 13 | KF6::I18n 14 | 15 | Qt::DBus 16 | ) 17 | -------------------------------------------------------------------------------- /src/utils/executable_path.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Tobias C. Berner 3 | 4 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "kwin_export.h" 10 | 11 | #include 12 | 13 | KWIN_EXPORT QString executablePathFromPid(pid_t); 14 | -------------------------------------------------------------------------------- /src/plugins/blur/shaders/contrast_rounded.vert: -------------------------------------------------------------------------------- 1 | uniform mat4 modelViewProjectionMatrix; 2 | 3 | attribute vec2 position; 4 | attribute vec2 texcoord; 5 | 6 | varying vec2 uv; 7 | varying vec2 vertex; 8 | 9 | void main(void) 10 | { 11 | gl_Position = modelViewProjectionMatrix * vec4(position, 0.0, 1.0); 12 | uv = texcoord; 13 | vertex = position; 14 | } 15 | -------------------------------------------------------------------------------- /src/scripting/org.kde.kwin.Script.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/scripting/scripting_logging.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "scripting_logging.h" 10 | Q_LOGGING_CATEGORY(KWIN_SCRIPTING, "kwin_scripting", QtWarningMsg) 11 | -------------------------------------------------------------------------------- /src/utils/vsyncmonitor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "utils/vsyncmonitor.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | VsyncMonitor::VsyncMonitor() = default; 13 | 14 | } // namespace KWin 15 | 16 | #include "moc_vsyncmonitor.cpp" 17 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/V3D-V3D_4_2-desktop-2.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Broadcom VideoCore 3D 3 | Renderer=V3D 4.2 4 | Version=2.1 Mesa 19.1 5 | 6 | [Settings] 7 | LooseBinding=true 8 | GLSL=false 9 | TextureNPOT=false 10 | Mesa=true 11 | V3D=true 12 | GLVersion=2,1 13 | MesaVersion=19,1 14 | DriverVersion=19,1 15 | Driver=21 16 | ChipClass=7000 17 | Compositor=4 18 | -------------------------------------------------------------------------------- /src/tabbox/tabbox_logging.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include 11 | #include 12 | Q_DECLARE_LOGGING_CATEGORY(KWIN_TABBOX) 13 | -------------------------------------------------------------------------------- /Mainpage.dox: -------------------------------------------------------------------------------- 1 | /** @mainpage KWin 2 | 3 | KWin is the KDE window manager. 4 | 5 | @authors 6 | Matthias Ettrich \
7 | Lubos Lunak \ 8 | 9 | @maintainers 10 | Lubos Lunak \ 11 | 12 | @licenses 13 | @gpl 14 | 15 | 16 | */ 17 | 18 | // DOXYGEN_SET_PROJECT_NAME = KWin 19 | // vim:ts=4:sw=4:expandtab:filetype=doxygen 20 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/VC4-V3D_2_1-desktop-2.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Broadcom VideoCore IV 3 | Renderer=VC4 V3D 2.1 4 | Version=2.1 Mesa 19.1 5 | 6 | [Settings] 7 | LooseBinding=true 8 | GLSL=false 9 | TextureNPOT=false 10 | Mesa=true 11 | VC4=true 12 | GLVersion=2,1 13 | MesaVersion=19,1 14 | DriverVersion=19,1 15 | Driver=20 16 | ChipClass=6000 17 | Compositor=4 18 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/keepAliveTestDontKeep.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | effects.windowClosed.connect(function (window) { 4 | animate({ 5 | window: window, 6 | type: Effect.Scale, 7 | duration: 1000, 8 | from: 1.0, 9 | to: 0.0, 10 | keepAlive: false 11 | }); 12 | sendTestResponse("triggered"); 13 | }); 14 | -------------------------------------------------------------------------------- /src/decorations/decorations_logging.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "decorations_logging.h" 10 | Q_LOGGING_CATEGORY(KWIN_DECORATIONS, "kwin_decorations", QtWarningMsg) 11 | -------------------------------------------------------------------------------- /src/plugin.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "plugin.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | Plugin::Plugin() = default; 13 | 14 | PluginFactory::PluginFactory() = default; 15 | 16 | } // namespace KWin 17 | 18 | #include "moc_plugin.cpp" 19 | -------------------------------------------------------------------------------- /src/plugins/blur/shaders/contrast_rounded_core.vert: -------------------------------------------------------------------------------- 1 | #version 140 2 | 3 | uniform mat4 modelViewProjectionMatrix; 4 | 5 | in vec2 position; 6 | in vec2 texcoord; 7 | 8 | out vec2 uv; 9 | out vec2 vertex; 10 | 11 | void main(void) 12 | { 13 | gl_Position = modelViewProjectionMatrix * vec4(position, 0.0, 1.0); 14 | uv = texcoord; 15 | vertex = position; 16 | } 17 | -------------------------------------------------------------------------------- /src/plugins/highlightwindow/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | # Source files 5 | set(highlightwindow_SOURCES 6 | highlightwindow.cpp 7 | main.cpp 8 | ) 9 | 10 | kwin_add_builtin_effect(highlightwindow ${highlightwindow_SOURCES}) 11 | target_link_libraries(highlightwindow PRIVATE 12 | kwin 13 | 14 | Qt::DBus 15 | ) 16 | -------------------------------------------------------------------------------- /src/plugins/screenedge/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | # Source files 5 | set(screenedge_SOURCES 6 | main.cpp 7 | screenedgeeffect.cpp 8 | ) 9 | 10 | kwin_add_builtin_effect(screenedge ${screenedge_SOURCES}) 11 | target_link_libraries(screenedge PRIVATE 12 | kwin 13 | 14 | KF6::Svg 15 | KF6::ConfigCore 16 | ) 17 | -------------------------------------------------------------------------------- /src/plugins/startupfeedback/shaders/blinking-startup_core.frag: -------------------------------------------------------------------------------- 1 | #version 140 2 | uniform sampler2D sampler; 3 | uniform vec4 geometryColor; 4 | 5 | in vec2 texcoord0; 6 | 7 | out vec4 fragColor; 8 | 9 | void main() 10 | { 11 | vec4 tex = texture(sampler, texcoord0); 12 | if (tex.a != 1.0) { 13 | tex = geometryColor; 14 | } 15 | fragColor = tex; 16 | } 17 | -------------------------------------------------------------------------------- /tests/lockscreenoverlaytest.desktop: -------------------------------------------------------------------------------- 1 | # copy to $(qtpaths --install-prefix)/share/applications/ 2 | # remember to change the Exec line to your builddir path 3 | 4 | [Desktop Entry] 5 | Exec=absolute/path/to/the/executable/bin/lockscreenoverlaytest 6 | Type=Application 7 | X-KDE-Wayland-Interfaces=kde_lockscreen_overlay_v1 8 | NoDisplay=true 9 | Name=KWin LockScreen Overay Test 10 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | include: 5 | - project: sysadmin/ci-utilities 6 | file: 7 | - /gitlab-templates/linux-qt6.yml 8 | - /gitlab-templates/linux-qt6-next.yml 9 | - /gitlab-templates/freebsd-qt6.yml 10 | - /gitlab-templates/xml-lint.yml 11 | - /gitlab-templates/yaml-lint.yml 12 | -------------------------------------------------------------------------------- /src/effect/logging_p.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | 11 | #include 12 | #include 13 | 14 | Q_DECLARE_LOGGING_CATEGORY(LIBKWINEFFECTS) 15 | -------------------------------------------------------------------------------- /src/kcms/options/AUTHORS: -------------------------------------------------------------------------------- 1 | Please use https://bugs.kde.org to report bugs. 2 | The following authors may have retired by the time you read this :-) 3 | 4 | KWM Configuration Module: 5 | 6 | Pat Dowler (dowler@pt1B1106.FSH.UVic.CA) 7 | 8 | Bernd Wuebben 9 | 10 | Conversion to kcontrol applet: 11 | 12 | Matthias Hoelzer (hoelzer@physik.uni-wuerzburg.de) 13 | -------------------------------------------------------------------------------- /src/plugins/sheet/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | # Source files 5 | set(sheet_SOURCES 6 | main.cpp 7 | sheet.cpp 8 | ) 9 | kconfig_add_kcfg_files(sheet_SOURCES sheetconfig.kcfgc) 10 | 11 | kwin_add_builtin_effect(sheet ${sheet_SOURCES}) 12 | target_link_libraries(sheet PRIVATE 13 | kwin 14 | 15 | KF6::ConfigGui 16 | ) 17 | -------------------------------------------------------------------------------- /src/plugins/zoom/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "zoom.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(ZoomEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/scripting/scripting_logging.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include 11 | #include 12 | Q_DECLARE_LOGGING_CATEGORY(KWIN_SCRIPTING) 13 | -------------------------------------------------------------------------------- /autotests/integration/scripting/scripts/screenedgeunregister.js: -------------------------------------------------------------------------------- 1 | function init() { 2 | const edge = readConfig("Edge", 1); 3 | if (readConfig("mode", "") == "unregister") { 4 | unregisterScreenEdge(edge); 5 | } else { 6 | registerScreenEdge(edge, workspace.slotToggleShowDesktop); 7 | } 8 | } 9 | options.configChanged.connect(init); 10 | 11 | init(); 12 | 13 | -------------------------------------------------------------------------------- /src/decorations/decorations_logging.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include 11 | #include 12 | Q_DECLARE_LOGGING_CATEGORY(KWIN_DECORATIONS) 13 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/keepAliveTest.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | effects.windowClosed.connect(function (window) { 4 | animate({ 5 | window: window, 6 | type: Effect.Scale, 7 | duration: 1000, 8 | from: 1.0, 9 | to: 0.0 10 | // by default, keepAlive is set to true 11 | }); 12 | sendTestResponse("triggered"); 13 | }); 14 | -------------------------------------------------------------------------------- /src/plugins/kscreen/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "kscreen.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(KscreenEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/plugins/outputlocator/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 David Redondo 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #include "outputlocator.h" 8 | 9 | namespace KWin 10 | { 11 | KWIN_EFFECT_FACTORY(OutputLocatorEffect, "metadata.json.stripped"); 12 | } 13 | 14 | #include "main.moc" 15 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_common_logging.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "x11_common_logging_p.h" 10 | Q_LOGGING_CATEGORY(LIBKWINXRENDERUTILS, "libkwinxrenderutils", QtWarningMsg) 11 | -------------------------------------------------------------------------------- /src/plugins/blur/shaders/noise_core.frag: -------------------------------------------------------------------------------- 1 | #version 140 2 | 3 | uniform sampler2D texUnit; 4 | uniform vec2 noiseTextureSize; 5 | uniform vec2 texStartPos; 6 | 7 | in vec2 uv; 8 | 9 | out vec4 fragColor; 10 | 11 | void main(void) 12 | { 13 | vec2 uvNoise = vec2((texStartPos.xy + gl_FragCoord.xy) / noiseTextureSize); 14 | 15 | fragColor = vec4(texture(texUnit, uvNoise).rrr, 0); 16 | } 17 | -------------------------------------------------------------------------------- /src/plugins/kscreen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | # Source files 5 | set(kscreen_SOURCES 6 | kscreen.cpp 7 | main.cpp 8 | ) 9 | 10 | kconfig_add_kcfg_files(kscreen_SOURCES kscreenconfig.kcfgc) 11 | kwin_add_builtin_effect(kscreen ${kscreen_SOURCES}) 12 | target_link_libraries(kscreen PRIVATE 13 | kwin 14 | 15 | KF6::ConfigGui 16 | ) 17 | -------------------------------------------------------------------------------- /src/plugins/showpaint/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "showpaint.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(ShowPaintEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/plugins/slideback/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "slideback.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(SlideBackEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/plugins/windowsystem/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(kwindowsystem_plugin_SRCS 2 | plugin.cpp 3 | windoweffects.cpp 4 | windowshadow.cpp 5 | windowsystem.cpp 6 | ) 7 | 8 | add_library(KF6WindowSystemKWinPlugin OBJECT ${kwindowsystem_plugin_SRCS}) 9 | target_compile_definitions(KF6WindowSystemKWinPlugin PRIVATE QT_STATICPLUGIN) 10 | target_link_libraries(KF6WindowSystemKWinPlugin kwin) 11 | -------------------------------------------------------------------------------- /autotests/integration/data/rules/maximize-vert-apply-initial: -------------------------------------------------------------------------------- 1 | [1] 2 | Description=Window settings for kpat 3 | clientmachine=localhost 4 | clientmachinematch=0 5 | maximizevert=true 6 | maximizevertrule=3 7 | title=KPatience 8 | titlematch=0 9 | types=1 10 | windowrole=mainwindow 11 | windowrolematch=1 12 | wmclass=kpat 13 | wmclasscomplete=false 14 | wmclassmatch=1 15 | 16 | [General] 17 | count=1 18 | -------------------------------------------------------------------------------- /src/plugins/diminactive/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "diminactive.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(DimInactiveEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/plugins/mouseclick/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "mouseclick.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(MouseClickEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/plugins/trackmouse/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "trackmouse.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(TrackMouseEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/xwayland/lib/xauthority.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2021 David Edmundson 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | 10 | #pragma once 11 | 12 | class QTemporaryFile; 13 | 14 | bool generateXauthorityFile(int display, QTemporaryFile *authorityFile); 15 | -------------------------------------------------------------------------------- /autotests/integration/helper/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(copy copy.cpp) 2 | target_link_libraries(copy Qt::Gui) 3 | ecm_mark_as_test(copy) 4 | ###################### 5 | add_executable(paste paste.cpp) 6 | target_link_libraries(paste Qt::Gui) 7 | ecm_mark_as_test(paste) 8 | ###################### 9 | add_executable(kill kill.cpp) 10 | target_link_libraries(kill Qt::Widgets) 11 | ecm_mark_as_test(kill) 12 | -------------------------------------------------------------------------------- /src/plugins/screenedge/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "screenedgeeffect.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(ScreenEdgeEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/utils/realtime.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "kwin_export.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | /** 15 | * Makes the calling thread to use realtime scheduling. 16 | */ 17 | KWIN_EXPORT void gainRealTime(); 18 | 19 | } // namespace KWin 20 | -------------------------------------------------------------------------------- /autotests/integration/fakes/org.kde.kdecoration3/fakedecoration_with_shadows.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPlugin": { 3 | "Description": "Window decoration to test shadow tile overlaps", 4 | "EnabledByDefault": false, 5 | "Id": "org.kde.test.fakedecowithshadows", 6 | "Name": "Fake Decoration With Shadows" 7 | }, 8 | "org.kde.kdecoration2": { 9 | "blur": false 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_standalone_logging.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2016 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "x11_standalone_logging.h" 10 | Q_LOGGING_CATEGORY(KWIN_X11STANDALONE, "kwin_platform_x11_standalone", QtWarningMsg) 11 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_standalone_logging.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2016 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include 11 | #include 12 | 13 | Q_DECLARE_LOGGING_CATEGORY(KWIN_X11STANDALONE) 14 | -------------------------------------------------------------------------------- /src/plugins/thumbnailaside/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "thumbnailaside.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(ThumbnailAsideEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_common_logging_p.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2015 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | 11 | #include 12 | #include 13 | 14 | Q_DECLARE_LOGGING_CATEGORY(LIBKWINXRENDERUTILS) 15 | -------------------------------------------------------------------------------- /src/plugins/highlightwindow/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "highlightwindow.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY(HighlightWindowEffect, 13 | "metadata.json.stripped") 14 | 15 | } // namespace KWin 16 | 17 | #include "main.moc" 18 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/lima-mali400-desktop-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Mali (Lima) 3 | Renderer=Mali 400 (Lima) 4 | Version=3.0 Mesa 19.1 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Lima=true 13 | GLVersion=3,0 14 | GLSLVersion=1,30 15 | MesaVersion=19,1 16 | DriverVersion=19,1 17 | Driver=19 18 | ChipClass=5000 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /src/opengl/saturation.glsl: -------------------------------------------------------------------------------- 1 | uniform float saturation; 2 | uniform vec3 primaryBrightness; 3 | 4 | vec4 adjustSaturation(vec4 color) { 5 | // this calculates the Y component of the XYZ color representation for the color, 6 | // which roughly corresponds to the brightness of the RGB tuple 7 | float Y = dot(color.rgb, primaryBrightness); 8 | return vec4(mix(vec3(Y), color.rgb, saturation), color.a); 9 | } 10 | -------------------------------------------------------------------------------- /src/mousebuttons.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 David Redondo 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | namespace KWin 12 | { 13 | 14 | uint32_t qtMouseButtonToButton(Qt::MouseButton button); 15 | Qt::MouseButton buttonToQtMouseButton(uint32_t button); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/plugins/startupfeedback/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | # Source files 5 | set(startupfeedback_SOURCES 6 | main.cpp 7 | startupfeedback.cpp 8 | startupfeedback.qrc 9 | ) 10 | 11 | kwin_add_builtin_effect(startupfeedback ${startupfeedback_SOURCES}) 12 | target_link_libraries(startupfeedback PRIVATE 13 | kwin 14 | 15 | Qt::DBus 16 | Qt::Widgets 17 | ) 18 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/qualcomm-adreno-330-libhybris-gles-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Qualcomm 3 | Renderer=Adreno (TM) 330 4 | Version=OpenGL ES 2.0 (OpenGL ES 3.0 V@104.0 AU@ (GIT@Id3510ff6dc)) 5 | ShadingLanguageVersion=OpenGL ES GLSL ES 3.00 6 | 7 | [Settings] 8 | GLSL=true 9 | TextureNPOT=true 10 | GLVersion=2,0 11 | GLSLVersion=3,0 12 | GLES=true 13 | Adreno=true 14 | Driver=15 15 | ChipClass=3002 16 | Compositor=1 17 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_standalone_glxconvenience.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | namespace KWin 13 | { 14 | 15 | GLXFBConfig chooseGlxFbConfig(::Display *display, const int attributes[]); 16 | 17 | } // namespace KWin 18 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/panfrost-malit860-desktop-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Panfrost 3 | Renderer=Mali T860 (Panfrost) 4 | Version=3.0 Mesa 19.1 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Panfrost=true 13 | GLVersion=3,0 14 | GLSLVersion=1,30 15 | MesaVersion=19,1 16 | DriverVersion=19,1 17 | Driver=18 18 | ChipClass=4001 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /autotests/integration/data/rules/force-maximize: -------------------------------------------------------------------------------- 1 | [$Version] 2 | update_info=kwinrules.upd:replace-placement-string-to-enum,kwinrules.upd:use-virtual-desktop-ids 3 | 4 | [General] 5 | count=1 6 | rules=ad6fd81c-6dea-46e6-a652-dbffe0aeb7d7 7 | 8 | [ad6fd81c-6dea-46e6-a652-dbffe0aeb7d7] 9 | Description=force maximize everything 10 | maximizehoriz=true 11 | maximizehorizrule=2 12 | maximizevert=true 13 | maximizevertrule=2 14 | types=1 15 | -------------------------------------------------------------------------------- /src/plugins/fallapart/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | # Source files 5 | set(fallapart_SOURCES 6 | fallapart.cpp 7 | main.cpp 8 | ) 9 | 10 | kconfig_add_kcfg_files(fallapart_SOURCES 11 | fallapartconfig.kcfgc 12 | ) 13 | 14 | kwin_add_builtin_effect(fallapart ${fallapart_SOURCES}) 15 | target_link_libraries(fallapart PRIVATE 16 | kwin 17 | 18 | KF6::ConfigGui 19 | ) 20 | -------------------------------------------------------------------------------- /src/scripting/scriptingutils.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2012 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | 10 | #pragma once 11 | 12 | #include 13 | 14 | namespace KWin 15 | { 16 | 17 | QVariant dbusToVariant(const QVariant &variant); 18 | 19 | } // namespace KWin 20 | -------------------------------------------------------------------------------- /src/utils/executable_path_proc.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Tobias C. Berner 3 | 4 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 | */ 6 | 7 | #include "executable_path.h" 8 | 9 | #include 10 | 11 | QString executablePathFromPid(pid_t pid) 12 | { 13 | return QFileInfo(QStringLiteral("/proc/%1/exe").arg(pid)).symLinkTarget(); 14 | } 15 | -------------------------------------------------------------------------------- /tests/pointergesturestest.qml: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2016 Martin Gräßlin 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | import QtQuick 7 | import org.kde.kwin.tests 8 | 9 | Image { 10 | source: "../48-apps-kwin.png" 11 | scale: gesture.scale * gesture.progressScale 12 | 13 | PinchGesture { 14 | id: gesture 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/core/graphicsbufferallocator.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2023 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "core/graphicsbufferallocator.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | GraphicsBufferAllocator::GraphicsBufferAllocator() 13 | { 14 | } 15 | 16 | GraphicsBufferAllocator::~GraphicsBufferAllocator() 17 | { 18 | } 19 | 20 | } // namespace KWin 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore the following files 2 | .vscode 3 | *~ 4 | *.[oa] 5 | *.diff 6 | *.kate-swp 7 | *.kdev4 8 | .kdev_include_paths 9 | *.kdevelop.pcs 10 | *.moc 11 | *.moc.cpp 12 | *.orig 13 | *.user 14 | .*.swp 15 | .swp.* 16 | Doxyfile 17 | Makefile 18 | avail 19 | random_seed 20 | /build*/ 21 | /_build*/ 22 | CMakeLists.txt.user* 23 | *.unc-backup* 24 | /compile_commands.json 25 | .clangd 26 | .idea 27 | /cmake-build* 28 | .cache 29 | .directory 30 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/nvidia-geforce-gtx-950-4.5: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=NVIDIA Corporation 3 | Renderer=GeForce GTX 950/PCIe/SSE2 4 | Version=4.5.0 NVIDIA 364.19 5 | ShadingLanguageVersion=4.50 NVIDIA 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Nvidia=true 12 | PreferBufferSubData=true 13 | GLVersion=4,5 14 | GLSLVersion=4,50 15 | DriverVersion=364,19 16 | Driver=8 17 | ChipClass=1999 18 | Compositor=1 19 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/fullScreenEffectTest.js: -------------------------------------------------------------------------------- 1 | effects.desktopChanged.connect(function(old, current) { 2 | var stackingOrder = effects.stackingOrder; 3 | for (var i=0; i { 6 | if (w.minimized) { 7 | retarget(w.anim1, 1.5, 200); 8 | } else { 9 | cancel(w.anim1); 10 | } 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /src/wayland/tools/README.md: -------------------------------------------------------------------------------- 1 | QtWayland scanner;s home is inside QtWayland in Qt (https://code.qt.io/cgit/qt/qtwayland.git/tree/src/qtwaylandscanner) 2 | 3 | We have a temporary fork to deliver some crucial fixes that are affecting our code that is not released in Qt5.15, including an API change which can't be relied upon via patching. 4 | 5 | Patches should still go via upstream to Qt and be "cherry-picked" here. 6 | 7 | This folder should be dropped in Plasma 6 8 | -------------------------------------------------------------------------------- /src/waylandshellintegration.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "waylandshellintegration.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | WaylandShellIntegration::WaylandShellIntegration(QObject *parent) 13 | : QObject(parent) 14 | { 15 | } 16 | 17 | } // namespace KWin 18 | 19 | #include "moc_waylandshellintegration.cpp" 20 | -------------------------------------------------------------------------------- /src/opengl/sdf.glsl: -------------------------------------------------------------------------------- 1 | float sdfRoundedBox(vec2 position, vec2 center, vec2 extents, vec4 radius) { 2 | vec2 p = position - center; 3 | float r = p.x > 0.0 4 | ? (p.y < 0.0 ? radius.y : radius.w) 5 | : (p.y < 0.0 ? radius.x : radius.z); 6 | vec2 q = abs(p) - extents + vec2(r); 7 | return min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r; 8 | } 9 | 10 | float sdfSubtract(float f1, float f2) { 11 | return max(f1, -f2); 12 | } 13 | -------------------------------------------------------------------------------- /src/plugins/magnifier/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | set(magnifier_SOURCES 5 | magnifier.cpp 6 | main.cpp 7 | ) 8 | 9 | kconfig_add_kcfg_files(magnifier_SOURCES 10 | magnifierconfig.kcfgc 11 | ) 12 | 13 | kwin_add_builtin_effect(magnifier ${magnifier_SOURCES}) 14 | target_link_libraries(magnifier PRIVATE 15 | kwin 16 | 17 | KF6::ConfigGui 18 | KF6::GlobalAccel 19 | KF6::I18n 20 | ) 21 | -------------------------------------------------------------------------------- /src/utils/xcursorreader.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2024 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "utils/cursortheme.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class XCursorReader 15 | { 16 | public: 17 | static QList load(const QString &filePath, int desiredSize, qreal devicePixelRatio); 18 | }; 19 | 20 | } // namespace KWin 21 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/nvidia-geforce-gtx-660-3.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=NVIDIA Corporation 3 | Renderer=GeForce GTX 660/PCIe/SSE2 4 | Version=3.1.0 NVIDIA 367.27 5 | ShadingLanguageVersion=1.40 NVIDIA via Cg compiler 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Nvidia=true 12 | PreferBufferSubData=true 13 | GLVersion=3,1 14 | GLSLVersion=1,40 15 | DriverVersion=367,27 16 | Driver=8 17 | ChipClass=1999 18 | Compositor=1 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/nvidia-geforce-gtx-970-3.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=NVIDIA Corporation 3 | Renderer=GeForce GTX 970/PCIe/SSE2 4 | Version=3.1.0 NVIDIA 367.35 5 | ShadingLanguageVersion=1.40 NVIDIA via Cg compiler 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Nvidia=true 12 | PreferBufferSubData=true 13 | GLVersion=3,1 14 | GLSLVersion=1,40 15 | DriverVersion=367,35 16 | Driver=8 17 | ChipClass=1999 18 | Compositor=1 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/nvidia-geforce-gtx-980-3.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=NVIDIA Corporation 3 | Renderer=GeForce GTX 980/PCIe/SSE2 4 | Version=3.1.0 NVIDIA 364.19 5 | ShadingLanguageVersion=1.40 NVIDIA via Cg compiler 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Nvidia=true 12 | PreferBufferSubData=true 13 | GLVersion=3,1 14 | GLSLVersion=1,40 15 | DriverVersion=364,19 16 | Driver=8 17 | ChipClass=1999 18 | Compositor=1 19 | -------------------------------------------------------------------------------- /src/core/overlaywindow.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2011 Arthur Arlt 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | 10 | #include "overlaywindow.h" 11 | 12 | namespace KWin 13 | { 14 | OverlayWindow::OverlayWindow() 15 | { 16 | } 17 | 18 | OverlayWindow::~OverlayWindow() 19 | { 20 | } 21 | 22 | } // namespace KWin 23 | -------------------------------------------------------------------------------- /src/plugins/outputlocator/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 David Redondo 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | kwin_add_builtin_effect(outputlocator main.cpp outputlocator.cpp) 7 | target_link_libraries(outputlocator PRIVATE 8 | kwin 9 | Qt::DBus 10 | Qt::Quick 11 | KF6::I18n 12 | ) 13 | 14 | install(DIRECTORY qml DESTINATION ${KDE_INSTALL_DATADIR}/${KWIN_DATADIR}/effects/outputlocator) 15 | -------------------------------------------------------------------------------- /src/plugins/slidingpopups/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | # Source files 5 | set(slidingpopups_SOURCES 6 | main.cpp 7 | slidingpopups.cpp 8 | ) 9 | 10 | kconfig_add_kcfg_files(slidingpopups_SOURCES 11 | slidingpopupsconfig.kcfgc 12 | ) 13 | 14 | kwin_add_builtin_effect(slidingpopups ${slidingpopups_SOURCES}) 15 | target_link_libraries(slidingpopups PRIVATE 16 | kwin 17 | 18 | KF6::ConfigGui 19 | ) 20 | -------------------------------------------------------------------------------- /src/utils/svgcursorreader.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2024 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "utils/cursortheme.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class SvgCursorReader 15 | { 16 | public: 17 | static QList load(const QString &filePath, int desiredSize, qreal devicePixelRatio); 18 | }; 19 | 20 | } // namespace KWin 21 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/intel-kabylake-gt2-4.6: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Intel 3 | Renderer=Mesa Intel(R) UHD Graphics 620 (KBL GT2) 4 | Version=4.6 (Compatibility Profile) Mesa 20.3.2 5 | ShadingLanguageVersion=4.60 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Intel=true 13 | GLVersion=4,6 14 | GLSLVersion=4,60 15 | MesaVersion=20,3,2 16 | DriverVersion=20,3,2 17 | Driver=7 18 | ChipClass=2012 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/nvidia-geforce-gtx-970M-3.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=NVIDIA Corporation 3 | Renderer=GeForce GTX 970M/PCIe/SSE2 4 | Version=3.1.0 NVIDIA 364.12 5 | ShadingLanguageVersion=1.40 NVIDIA via Cg compiler 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Nvidia=true 12 | PreferBufferSubData=true 13 | GLVersion=3,1 14 | GLSLVersion=1,40 15 | DriverVersion=364,12 16 | Driver=8 17 | ChipClass=1999 18 | Compositor=1 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/virgl-3.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Red Hat 3 | Renderer=virgl 4 | Version=3.1 Mesa 19.0.8 5 | ShadingLanguageVersion=1.40 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Virgl=true 14 | VirtualMachine=true 15 | GLVersion=3,1 16 | GLSLVersion=1,40 17 | MesaVersion=19,0,8 18 | GalliumVersion=0,4 19 | DriverVersion=19,0,8 20 | Driver=17 21 | ChipClass=99999 22 | Compositor=1 23 | -------------------------------------------------------------------------------- /src/plugins/colorblindnesscorrection/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2023 Fushan Wen 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "colorblindnesscorrection.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(ColorBlindnessCorrectionEffect, "metadata.json.stripped", return ColorBlindnessCorrectionEffect::supported();) 13 | 14 | } // namespace KWin 15 | 16 | #include "main.moc" 17 | -------------------------------------------------------------------------------- /src/plugins/mousemark/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | SPDX-FileCopyrightText: 2023 Andrew Shark 4 | 5 | SPDX-License-Identifier: GPL-2.0-or-later 6 | */ 7 | 8 | #include "mousemark.h" 9 | 10 | namespace KWin 11 | { 12 | 13 | KWIN_EFFECT_FACTORY(MouseMarkEffect, 14 | "metadata.json.stripped") 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/glide/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "glide.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(GlideEffect, 13 | "metadata.json.stripped", 14 | return GlideEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/invert/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "invert.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(InvertEffect, 13 | "metadata.json.stripped", 14 | return InvertEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/sheet/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "sheet.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(SheetEffect, 13 | "metadata.json.stripped", 14 | return SheetEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/slide/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "slide.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(SlideEffect, 13 | "metadata.json.stripped", 14 | return SlideEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/intel-skylake-gt2-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Intel Open Source Technology Center 3 | Renderer=Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2) 4 | Version=3.0 Mesa 11.2.0 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Intel=true 13 | GLVersion=3,0 14 | GLSLVersion=1,30 15 | MesaVersion=11,2,0 16 | DriverVersion=11,2,0 17 | Driver=7 18 | ChipClass=2999 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/intel-haswell-mobile-3.3: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Intel Open Source Technology Center 3 | Renderer=Mesa DRI Intel(R) Haswell Mobile 4 | Version=3.3 (Core Profile) Mesa 11.2.2 5 | ShadingLanguageVersion=3.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Intel=true 13 | GLVersion=3,3 14 | GLSLVersion=3,30 15 | MesaVersion=11,2,2 16 | DriverVersion=11,2,2 17 | Driver=7 18 | ChipClass=2005 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /src/plugins/colorblindnesscorrection/shaders/README: -------------------------------------------------------------------------------- 1 | ColorBlindness correction shader with adjustable intensity. Can correct for: 2 | * Protanopia (Greatly reduced reds) 3 | * Deuteranopia (Greatly reduced greens) 4 | * Tritanopia (Greatly reduced blues) 5 | 6 | The correction algorithm is taken from http://www.daltonize.org/search/label/Daltonize 7 | 8 | This shader is released under the CC0 license. Feel free to use, improve and change this shader and consider sharing the modified result. 9 | -------------------------------------------------------------------------------- /src/plugins/private/plugin.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | class EffectKitExtensionPlugin : public QQmlExtensionPlugin 12 | { 13 | Q_OBJECT 14 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") 15 | 16 | public: 17 | void registerTypes(const char *uri) override; 18 | }; 19 | -------------------------------------------------------------------------------- /src/plugins/showfps/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "showfpseffect.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(ShowFpsEffect, 13 | "metadata.json.stripped", 14 | return ShowFpsEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/intel-ivybridge-desktop-3.3: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Intel Open Source Technology Center 3 | Renderer=Mesa DRI Intel(R) Ivybridge Desktop 4 | Version=3.3 (Core Profile) Mesa 11.2.2 5 | ShadingLanguageVersion=3.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Intel=true 13 | GLVersion=3,3 14 | GLSLVersion=3,30 15 | MesaVersion=11,2,2 16 | DriverVersion=11,2,2 17 | Driver=7 18 | ChipClass=2004 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/intel-ivybridge-mobile-3.3: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Intel Open Source Technology Center 3 | Renderer=Mesa DRI Intel(R) Ivybridge Mobile 4 | Version=3.3 (Core Profile) Mesa 12.0.1 5 | ShadingLanguageVersion=3.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Intel=true 13 | GLVersion=3,3 14 | GLSLVersion=3,30 15 | MesaVersion=12,0,1 16 | DriverVersion=12,0,1 17 | Driver=7 18 | ChipClass=2004 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/intel-sandybridge-mobile-3.3: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Intel Open Source Technology Center 3 | Renderer=Mesa DRI Intel(R) Sandybridge Mobile 4 | Version=3.3 (Core Profile) Mesa 12.0.1 5 | ShadingLanguageVersion=3.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Intel=true 13 | GLVersion=3,3 14 | GLSLVersion=3,30 15 | MesaVersion=12,0,1 16 | DriverVersion=12,0,1 17 | Driver=7 18 | ChipClass=2003 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /doc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ecm_optional_add_subdirectory(desktop-x11) 2 | ecm_optional_add_subdirectory(kwindecoration-x11) 3 | ecm_optional_add_subdirectory(kwinscreenedges-x11) 4 | ecm_optional_add_subdirectory(kwintabbox-x11) 5 | ecm_optional_add_subdirectory(kwintouchscreen-x11) 6 | ecm_optional_add_subdirectory(kwinvirtualkeyboard-x11) 7 | ecm_optional_add_subdirectory(windowbehaviour-x11) 8 | ecm_optional_add_subdirectory(windowspecific-x11) 9 | ecm_optional_add_subdirectory(kwineffects-x11) 10 | -------------------------------------------------------------------------------- /examples/quick-effect/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | cmake_minimum_required(VERSION 3.20) 5 | project(quick-effect) 6 | 7 | set(KF6_MIN_VERSION "6.0.0") 8 | 9 | find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE) 10 | set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) 11 | 12 | find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS 13 | Package 14 | ) 15 | 16 | kpackage_install_package(package quick-effect effects kwin) 17 | -------------------------------------------------------------------------------- /examples/quick-script/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | cmake_minimum_required(VERSION 3.20) 5 | project(quick-script) 6 | 7 | set(KF6_MIN_VERSION "6.0.0") 8 | 9 | find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE) 10 | set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) 11 | 12 | find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS 13 | Package 14 | ) 15 | 16 | kpackage_install_package(package quick-script scripts kwin) 17 | -------------------------------------------------------------------------------- /src/plugins/blendchanges/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 David Edmundson 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "blendchanges.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(BlendChanges, 13 | "metadata.json.stripped", 14 | return BlendChanges::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/fallapart/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "fallapart.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(FallApartEffect, 13 | "metadata.json.stripped", 14 | return FallApartEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/magiclamp/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "magiclamp.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(MagicLampEffect, 13 | "metadata.json.stripped", 14 | return MagicLampEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/magnifier/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "magnifier.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(MagnifierEffect, 13 | "metadata.json.stripped", 14 | return MagnifierEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/overview/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "overvieweffect.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(OverviewEffect, 13 | "metadata.json.stripped", 14 | return OverviewEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/systembell/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2024 Nicolas Fella 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "systembell.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(SystemBellEffect, 13 | "metadata.json.stripped", 14 | return SystemBellEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/tileseditor/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Marco Martin 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "tileseditoreffect.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(TilesEditorEffect, 13 | "metadata.json.stripped", 14 | return TilesEditorEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-catalyst-radeonhd-7700M-3.1.13399: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=ATI Technologies Inc. 3 | Renderer=AMD Radeon HD 7700M Series 4 | Version=3.1.13399 Compatibility Profile Context FireGL 15.201.1151 5 | ShadingLanguageVersion=4.40 6 | 7 | [Settings] 8 | LooseBinding=false 9 | GLSL=true 10 | TextureNPOT=true 11 | Catalyst=true 12 | Radeon=true 13 | GLVersion=3,1,13399 14 | GLSLVersion=4,40 15 | DriverVersion=15,201,1151 16 | Driver=9 17 | ChipClass=999 18 | Compositor=1 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-hawaii-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Gallium 0.4 on AMD HAWAII (DRM 2.43.0, LLVM 3.7.1) 4 | Version=3.0 Mesa 11.1.2 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=3,0 15 | GLSLVersion=1,30 16 | MesaVersion=11,1,2 17 | GalliumVersion=0,4 18 | DriverVersion=11,1,2 19 | Driver=16 20 | ChipClass=10 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/intel-ivybridge-desktop-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Intel Open Source Technology Center 3 | Renderer=Mesa DRI Intel(R) Ivybridge Desktop 4 | Version=3.0 Mesa 11.1.0 (git-525f3c2) 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Intel=true 13 | GLVersion=3,0 14 | GLSLVersion=1,30 15 | MesaVersion=11,1,0 16 | DriverVersion=11,1,0 17 | Driver=7 18 | ChipClass=2004 19 | Compositor=1 20 | 21 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/llvmpipe-10.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Mesa/X.org 3 | Renderer=llvmpipe (LLVM 10.0.1, 256 bits) 4 | Version=3.1 Mesa 20.2.1 5 | ShadingLanguageVersion=1.40 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | SoftwareEmulation=true 14 | GLVersion=3,1 15 | GLSLVersion=1,40 16 | MesaVersion=20,2,1 17 | GalliumVersion=0,4 18 | DriverVersion=20,2,1 19 | Driver=12 20 | ChipClass=99999 21 | Compositor=1 22 | 23 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/llvmpipe-5.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=VMware, Inc. 3 | Renderer=llvmpipe (LLVM 5.0, 256 bits) 4 | Version=3.0 Mesa 17.2.6 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | SoftwareEmulation=true 14 | GLVersion=3,0 15 | GLSLVersion=1,30 16 | MesaVersion=17,2,6 17 | GalliumVersion=0,4 18 | DriverVersion=17,2,6 19 | Driver=12 20 | ChipClass=99999 21 | Compositor=1 22 | 23 | -------------------------------------------------------------------------------- /src/plugins/colorpicker/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "colorpicker.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(ColorPickerEffect, 13 | "metadata.json.stripped", 14 | return ColorPickerEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/screenshot/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "screenshot.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(ScreenShotEffect, 13 | "metadata.json.stripped", 14 | return ScreenShotEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-bonaire-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Gallium 0.4 on AMD BONAIRE (DRM 2.43.0, LLVM 3.8.0) 4 | Version=3.0 Mesa 11.2.2 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=3,0 15 | GLSLVersion=1,30 16 | MesaVersion=11,2,2 17 | GalliumVersion=0,4 18 | DriverVersion=11,2,2 19 | Driver=16 20 | ChipClass=10 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/intel-broadwell-gt2-3.3: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=Intel Open Source Technology Center 3 | Renderer=Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2) 4 | Version=3.3 (Core Profile) Mesa 11.2.2 5 | ShadingLanguageVersion=3.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Intel=true 13 | GLVersion=3,3 14 | GLSLVersion=3,30 15 | MesaVersion=11,2,2 16 | DriverVersion=11,2,2 17 | Driver=7 18 | ChipClass=2999 19 | Compositor=1 20 | -------------------------------------------------------------------------------- /src/plugins/windowview/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "windowvieweffect.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(WindowViewEffect, 13 | "metadata.json.stripped", 14 | return WindowViewEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/slidingpopups/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "slidingpopups.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(SlidingPopupsEffect, 13 | "metadata.json.stripped", 14 | return SlidingPopupsEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/plugins/wobblywindows/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "wobblywindows.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(WobblyWindowsEffect, 13 | "metadata.json.stripped", 14 | return WobblyWindowsEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-navi-4.5: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=AMD NAVI10 (DRM 3.36.0, 5.5.1-arch1-1, LLVM 9.0.1) 4 | Version=4.5 (Core Profile) Mesa 19.3.3 5 | ShadingLanguageVersion=4.50 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=4,5 15 | GLSLVersion=4,50 16 | MesaVersion=19,3,3 17 | GalliumVersion=0,4 18 | DriverVersion=19,3,3 19 | Driver=16 20 | ChipClass=14 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-redwood-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Gallium 0.4 on AMD REDWOOD (DRM 2.43.0 / 4.6.4-1-ARCH, LLVM 3.8.0) 4 | Version=3.0 Mesa 12.0.1 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=3,0 15 | GLSLVersion=1,30 16 | MesaVersion=12,0,1 17 | GalliumVersion=0,4 18 | DriverVersion=12,0,1 19 | Driver=5 20 | ChipClass=7 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/llvmpipe-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=VMware, Inc. 3 | Renderer=Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits) 4 | Version=3.0 Mesa 11.2.0 5 | ShadingLanguageVersion=1.30 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | SoftwareEmulation=true 14 | GLVersion=3,0 15 | GLSLVersion=1,30 16 | MesaVersion=11,2,0 17 | GalliumVersion=0,4 18 | DriverVersion=11,2,0 19 | Driver=12 20 | ChipClass=99999 21 | Compositor=1 22 | 23 | -------------------------------------------------------------------------------- /autotests/integration/data/anim-data-delete-effect/effect.js: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2016 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | effects.windowAdded.connect(function(w) { 10 | w.fadeAnimation = effect.animate(w, Effect.Opacity, 100, 1.0, 0.0); 11 | }); 12 | effect.animationEnded.connect(function(w) { 13 | cancel(w.fadeAnimation); 14 | }); 15 | -------------------------------------------------------------------------------- /src/scene/rootitem.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2024 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "scene/item.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | /** 15 | * The RootItem type represents the root item in the scene. 16 | */ 17 | class KWIN_EXPORT RootItem : public Item 18 | { 19 | Q_OBJECT 20 | 21 | public: 22 | explicit RootItem(Scene *scene); 23 | }; 24 | 25 | } // namespace KWin 26 | -------------------------------------------------------------------------------- /src/core/shmgraphicsbufferallocator.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2023 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "core/graphicsbufferallocator.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class KWIN_EXPORT ShmGraphicsBufferAllocator : public GraphicsBufferAllocator 15 | { 16 | public: 17 | GraphicsBuffer *allocate(const GraphicsBufferOptions &options) override; 18 | }; 19 | 20 | } // namespace KWin 21 | -------------------------------------------------------------------------------- /src/plugins/kscreen/kscreen.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 0 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/plugins/showfps/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 Arjen Hiemstra 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | set(showfps_SOURCES 6 | main.cpp 7 | showfpseffect.cpp 8 | ) 9 | 10 | kwin_add_builtin_effect(showfps ${showfps_SOURCES}) 11 | 12 | target_link_libraries(showfps PRIVATE 13 | kwin 14 | 15 | KF6::I18n 16 | 17 | Qt::Quick 18 | ) 19 | 20 | install(DIRECTORY qml DESTINATION ${KDE_INSTALL_DATADIR}/${KWIN_DATADIR}/effects/showfps) 21 | -------------------------------------------------------------------------------- /src/plugins/startupfeedback/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "startupfeedback.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED(StartupFeedbackEffect, 13 | "metadata.json.stripped", 14 | return StartupFeedbackEffect::supported();) 15 | 16 | } // namespace KWin 17 | 18 | #include "main.moc" 19 | -------------------------------------------------------------------------------- /src/platformsupport/scenes/opengl/openglsurfacetexture_wayland.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "openglsurfacetexture_wayland.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | OpenGLSurfaceTextureWayland::OpenGLSurfaceTextureWayland(OpenGLBackend *backend, SurfacePixmap *pixmap) 13 | : OpenGLSurfaceTexture(backend) 14 | , m_pixmap(pixmap) 15 | { 16 | } 17 | 18 | } // namespace KWin 19 | -------------------------------------------------------------------------------- /src/xwayland/lib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(KWinXwaylandCommon STATIC 2 | xwaylandsocket.cpp 3 | xauthority.cpp 4 | ) 5 | 6 | ecm_qt_declare_logging_category(KWinXwaylandCommon 7 | HEADER 8 | xwayland_logging.h 9 | IDENTIFIER 10 | KWIN_XWL 11 | CATEGORY_NAME 12 | kwin_xwl 13 | DEFAULT_SEVERITY 14 | Warning 15 | ) 16 | 17 | target_include_directories(KWinXwaylandCommon PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 18 | target_link_libraries(KWinXwaylandCommon Qt::Core) 19 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-radeon-r9-290-4.5: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=AMD Radeon R9 200 Series (HAWAII DRM 3.26.0 4.18.9-92.current LLVM 6.0.1) 4 | Version=4.5 Mesa 18.1.6 5 | ShadingLanguageVersion=4.50 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=4,5 15 | GLSLVersion=4,50 16 | MesaVersion=18,1,6 17 | GalliumVersion=0,4 18 | DriverVersion=18,1,6 19 | Driver=16 20 | ChipClass=10 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-tonga-4.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Gallium 0.4 on AMD TONGA (DRM 3.2.0 / 4.7.0-0-MANJARO, LLVM 3.8.0) 4 | Version=4.1 (Core Profile) Mesa 12.0.1 5 | ShadingLanguageVersion=4.10 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=4,1 15 | GLSLVersion=4,10 16 | MesaVersion=12,0,1 17 | GalliumVersion=0,4 18 | DriverVersion=12,0,1 19 | Driver=16 20 | ChipClass=11 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-radeon-rx-550-series-3.1: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Radeon RX 550 Series (POLARIS12, DRM 3.25.0, 4.17.0-rc6-GTW1+, LLVM 6.0.0) 4 | Version=3.1 Mesa 18.1.0 5 | ShadingLanguageVersion=1.40 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=3,1 15 | GLSLVersion=1,40 16 | MesaVersion=18,1,0 17 | GalliumVersion=0,4 18 | DriverVersion=18,1,0 19 | Driver=16 20 | ChipClass=12 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /src/platformsupport/scenes/opengl/openglsurfacetexture_x11.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "platformsupport/scenes/opengl/openglsurfacetexture_x11.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | OpenGLSurfaceTextureX11::OpenGLSurfaceTextureX11(OpenGLBackend *backend, SurfacePixmapX11 *pixmap) 13 | : OpenGLSurfaceTexture(backend) 14 | , m_pixmap(pixmap) 15 | { 16 | } 17 | 18 | } // namespace KWin 19 | -------------------------------------------------------------------------------- /src/resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | opengl/colormanagement.glsl 4 | opengl/icc.frag 5 | opengl/icc_core.frag 6 | opengl/saturation.glsl 7 | opengl/sdf.glsl 8 | scene/shaders/debug_fractional.frag 9 | scene/shaders/debug_fractional.vert 10 | scene/shaders/debug_fractional_core.frag 11 | scene/shaders/debug_fractional_core.vert 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/waylandshellintegration.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "window.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class WaylandShellIntegration : public QObject 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | explicit WaylandShellIntegration(QObject *parent = nullptr); 20 | 21 | Q_SIGNALS: 22 | void windowCreated(Window *window); 23 | }; 24 | 25 | } // namespace KWin 26 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-cayman-gles-3.0: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Gallium 0.4 on AMD CAYMAN (DRM 2.43.0, LLVM 3.8.0) 4 | Version=OpenGL ES 3.0 Mesa 11.2.2 5 | ShadingLanguageVersion=OpenGL ES GLSL ES 3.00 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=3,0 15 | GLSLVersion=3,0 16 | GLES=true 17 | MesaVersion=11,2,2 18 | GalliumVersion=0,4 19 | DriverVersion=11,2,2 20 | Driver=5 21 | ChipClass=8 22 | Compositor=1 23 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-radeon-rx-vega-56-4.5: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Radeon RX Vega (VEGA10, DRM 3.25.0, 4.17.0-trunk-amd64, LLVM 6.0.0) 4 | Version=4.5 (Core Profile) Mesa 18.1.2 5 | ShadingLanguageVersion=4.50 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=4,5 15 | GLSLVersion=4,50 16 | MesaVersion=18,1,2 17 | GalliumVersion=0,4 18 | DriverVersion=18,1,2 19 | Driver=16 20 | ChipClass=13 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /src/kcms/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_STRICT_ITERATORS -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS) 2 | 3 | add_subdirectory(common) 4 | 5 | add_subdirectory(animations) 6 | add_subdirectory(compositing) 7 | add_subdirectory(options) 8 | add_subdirectory(decoration) 9 | add_subdirectory(rules) 10 | add_subdirectory(screenedges) 11 | add_subdirectory(scripts) 12 | add_subdirectory(desktop) 13 | add_subdirectory(effects) 14 | 15 | if (KWIN_BUILD_TABBOX) 16 | add_subdirectory(tabbox) 17 | endif() 18 | -------------------------------------------------------------------------------- /src/plugins/sheet/sheet.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 0 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-radeon-rx-vega-64-4.5: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Radeon RX Vega (VEGA10 / DRM 3.23.0 / 4.16.16-300.fc28.x86_64, LLVM 6.0.0) 4 | Version=4.5 (Core Profile) Mesa 18.0.5 5 | ShadingLanguageVersion=4.50 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=4,5 15 | GLSLVersion=4,50 16 | MesaVersion=18,0,5 17 | GalliumVersion=0,4 18 | DriverVersion=18,0,5 19 | Driver=16 20 | ChipClass=13 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /src/wayland/abstract_drop_handler.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 David Edmundson 3 | SPDX-FileCopyrightText: 2021 David Redondo 4 | 5 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 6 | */ 7 | 8 | #include "abstract_drop_handler.h" 9 | 10 | namespace KWin 11 | { 12 | AbstractDropHandler::AbstractDropHandler(QObject *parent) 13 | : QObject(parent) 14 | { 15 | } 16 | 17 | } 18 | 19 | #include "moc_abstract_drop_handler.cpp" 20 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-radeon-rx-5700-xt-4.6: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=AMD 3 | Renderer=AMD Radeon RX 5700 XT (NAVI10, DRM 3.40.0, 5.10.9-arch1-1, LLVM 11.0.1) 4 | Version=4.6 (Compatibility Profile) Mesa 20.3.3 5 | ShadingLanguageVersion=4.60 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=4,6 15 | GLSLVersion=4,60 16 | MesaVersion=20,3,3 17 | GalliumVersion=0,4 18 | DriverVersion=20,3,3 19 | Driver=16 20 | ChipClass=14 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /src/moving_client_x11_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include "x11eventfilter.h" 11 | 12 | namespace KWin 13 | { 14 | 15 | class MovingClientX11Filter : public X11EventFilter 16 | { 17 | public: 18 | explicit MovingClientX11Filter(); 19 | 20 | bool event(xcb_generic_event_t *event) override; 21 | }; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/plugins/login/package/contents/config/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | false 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/syncalarmx11filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | 10 | #pragma once 11 | 12 | #include "x11eventfilter.h" 13 | 14 | namespace KWin 15 | { 16 | 17 | class SyncAlarmX11Filter : public X11EventFilter 18 | { 19 | public: 20 | SyncAlarmX11Filter(); 21 | 22 | bool event(xcb_generic_event_t *event) override; 23 | }; 24 | 25 | } // namespace KWin 26 | -------------------------------------------------------------------------------- /src/plugins/magiclamp/magiclamp.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 0 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-radeon-rx-580-series-4.5: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=Radeon RX 580 Series (POLARIS10, DRM 3.27.0, 4.19.10-arch1-1-ARCH, LLVM 7.0.0) 4 | Version=4.5 (Compatibility Profile) Mesa 18.3.1 5 | ShadingLanguageVersion=4.50 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=4,5 15 | GLSLVersion=4,50 16 | MesaVersion=18,3,1 17 | GalliumVersion=0,4 18 | DriverVersion=18,3,1 19 | Driver=16 20 | ChipClass=12 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /examples/quick-effect/package/contents/config/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | #ff00ff 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/plugins/blur/shaders/downsample.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D texUnit; 2 | uniform float offset; 3 | uniform vec2 halfpixel; 4 | 5 | varying vec2 uv; 6 | 7 | void main(void) 8 | { 9 | vec4 sum = texture2D(texUnit, uv) * 4.0; 10 | sum += texture2D(texUnit, uv - halfpixel.xy * offset); 11 | sum += texture2D(texUnit, uv + halfpixel.xy * offset); 12 | sum += texture2D(texUnit, uv + vec2(halfpixel.x, -halfpixel.y) * offset); 13 | sum += texture2D(texUnit, uv - vec2(halfpixel.x, -halfpixel.y) * offset); 14 | 15 | gl_FragColor = sum / 8.0; 16 | } 17 | -------------------------------------------------------------------------------- /src/plugins/private/plugin.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "plugin.h" 8 | #include "expoarea.h" 9 | #include "expolayout.h" 10 | 11 | void EffectKitExtensionPlugin::registerTypes(const char *uri) 12 | { 13 | qmlRegisterType(uri, 1, 0, "ExpoArea"); 14 | qmlRegisterType(uri, 1, 0, "ExpoLayout"); 15 | qmlRegisterType(uri, 1, 0, "ExpoCell"); 16 | } 17 | 18 | #include "moc_plugin.cpp" 19 | -------------------------------------------------------------------------------- /src/was_user_interaction_x11_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include "x11eventfilter.h" 11 | 12 | namespace KWin 13 | { 14 | 15 | class WasUserInteractionX11Filter : public X11EventFilter 16 | { 17 | public: 18 | explicit WasUserInteractionX11Filter(); 19 | 20 | bool event(xcb_generic_event_t *event) override; 21 | }; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/KWinX11Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include(CMakeFindDependencyMacro) 4 | find_dependency(Qt6Core "@QT_MIN_VERSION@") 5 | find_dependency(Qt6Gui "@QT_MIN_VERSION@") 6 | find_dependency(Qt6Quick "@QT_MIN_VERSION@") 7 | find_dependency(KF6Config "@KF6_MIN_VERSION@") 8 | find_dependency(KF6CoreAddons "@KF6_MIN_VERSION@") 9 | find_dependency(KF6WindowSystem "@KF6_MIN_VERSION@") 10 | find_dependency(Wayland REQUIRED Server) 11 | find_dependency(epoxy) 12 | 13 | @PACKAGE_SETUP_KWIN_AUTOMOC_VARIABLES@ 14 | include("${CMAKE_CURRENT_LIST_DIR}/KWinX11Targets.cmake") 15 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_standalone_screenedges_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include "x11eventfilter.h" 11 | 12 | namespace KWin 13 | { 14 | 15 | class ScreenEdgesFilter : public X11EventFilter 16 | { 17 | public: 18 | explicit ScreenEdgesFilter(); 19 | 20 | bool event(xcb_generic_event_t *event) override; 21 | }; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /data/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(icons) 2 | 3 | ########### next target ############### 4 | add_executable(kwin5_update_default_rules_x11 update_default_rules.cpp) 5 | target_link_libraries(kwin5_update_default_rules_x11 6 | KF6::ConfigCore 7 | Qt::Core 8 | Qt::DBus 9 | ) 10 | install(TARGETS kwin5_update_default_rules_x11 DESTINATION ${KDE_INSTALL_LIBDIR}/kconf_update_bin/) 11 | 12 | ########### install files ############### 13 | 14 | install(FILES org_kde_kwin.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} RENAME org_kde_kwin_x11.categories) 15 | -------------------------------------------------------------------------------- /src/kcms/options/kwinoptions_kdeglobals_settings.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | true 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/plugins/tileseditor/kcm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 Marco Martin 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | set(kwin_tileseditor_config_SOURCES tileseditoreffectkcm.cpp) 6 | ki18n_wrap_ui(kwin_tileseditor_config_SOURCES tileseditoreffectkcm.ui) 7 | 8 | kwin_add_effect_config(kwin_tileseditor_config ${kwin_tileseditor_config_SOURCES}) 9 | target_link_libraries(kwin_tileseditor_config 10 | KF6::KCMUtils 11 | KF6::CoreAddons 12 | KF6::GlobalAccel 13 | KF6::I18n 14 | KF6::XmlGui 15 | KWinEffectsInterface 16 | ) 17 | -------------------------------------------------------------------------------- /autotests/effect/data/glplatform/amd-gallium-radeon-rx-480-series-4.5: -------------------------------------------------------------------------------- 1 | [Driver] 2 | Vendor=X.Org 3 | Renderer=AMD Radeon (TM) RX 480 Graphics (POLARIS10 / DRM 3.23.0 / 4.15.0-rc1-g516fb7f2e73d, LLVM 6.0.0) 4 | Version=4.5 (Core Profile) Mesa 17.4.0-devel (git-b6b4b2c6d8) 5 | ShadingLanguageVersion=4.50 6 | 7 | [Settings] 8 | LooseBinding=true 9 | GLSL=true 10 | TextureNPOT=true 11 | Mesa=true 12 | Gallium=true 13 | Radeon=true 14 | GLVersion=4,5 15 | GLSLVersion=4,50 16 | MesaVersion=17,4,0 17 | GalliumVersion=0,4 18 | DriverVersion=17,4,0 19 | Driver=16 20 | ChipClass=12 21 | Compositor=1 22 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_standalone_glx_context_attribute_builder.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include "opengl/abstract_opengl_context_attribute_builder.h" 11 | 12 | namespace KWin 13 | { 14 | 15 | class GlxContextAttributeBuilder : public AbstractOpenGLContextAttributeBuilder 16 | { 17 | public: 18 | std::vector build() const override; 19 | }; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/plugins/colorblindnesscorrection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2023 Fushan Wen 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | 4 | kwin_add_builtin_effect(colorblindnesscorrection) 5 | 6 | target_sources(colorblindnesscorrection PRIVATE 7 | main.cpp 8 | colorblindnesscorrection.cpp 9 | colorblindnesscorrection.qrc 10 | ) 11 | 12 | kconfig_add_kcfg_files(colorblindnesscorrection 13 | colorblindnesscorrectionconfig.kcfgc 14 | ) 15 | 16 | target_link_libraries(colorblindnesscorrection PRIVATE 17 | kwin 18 | KF6::ConfigGui 19 | ) 20 | -------------------------------------------------------------------------------- /autotests/onscreennotificationtest.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2016 Martin Graesslin 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | 6 | */ 7 | 8 | #ifndef ONSCREENNOTIFICATIONTEST_H 9 | #define ONSCREENNOTIFICATIONTEST_H 10 | 11 | #include 12 | 13 | class OnScreenNotificationTest : public QObject 14 | { 15 | Q_OBJECT 16 | private Q_SLOTS: 17 | 18 | void show(); 19 | void timeout(); 20 | void iconName(); 21 | void message(); 22 | }; 23 | 24 | #endif // ONSCREENNOTIFICATIONTEST_H 25 | -------------------------------------------------------------------------------- /examples/quick-script/package/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPackageStructure": "KWin/Script", 3 | "KPlugin": { 4 | "Authors": [ 5 | { 6 | "Email": "user@example.com", 7 | "Name": "Your Name" 8 | } 9 | ], 10 | "Description": "An example QtQuick script", 11 | "EnabledByDefault": false, 12 | "Icon": "preferences-system-windows-script-test", 13 | "Id": "quick-script", 14 | "License": "MIT", 15 | "Name": "Quick Script" 16 | }, 17 | "X-Plasma-API": "declarativescript" 18 | } 19 | -------------------------------------------------------------------------------- /src/killwindow.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 1999, 2000 Matthias Ettrich 6 | SPDX-FileCopyrightText: 2003 Lubos Lunak 7 | SPDX-FileCopyrightText: 2012 Martin Gräßlin 8 | 9 | SPDX-License-Identifier: GPL-2.0-or-later 10 | */ 11 | 12 | #pragma once 13 | 14 | namespace KWin 15 | { 16 | 17 | class KillWindow 18 | { 19 | public: 20 | KillWindow(); 21 | ~KillWindow(); 22 | 23 | void start(); 24 | }; 25 | 26 | } // namespace 27 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/ungrabTest.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | if (effect.grab(window, Effect.WindowAddedGrabRole)) { 3 | sendTestResponse('ok'); 4 | } else { 5 | sendTestResponse('fail'); 6 | } 7 | 8 | window.minimizedChanged.connect(() => { 9 | if (!window.minimized) { 10 | return; 11 | } 12 | if (effect.ungrab(window, Effect.WindowAddedGrabRole)) { 13 | sendTestResponse('ok'); 14 | } else { 15 | sendTestResponse('fail'); 16 | } 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /src/core/inputbackend.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "inputbackend.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | InputBackend::InputBackend(QObject *parent) 13 | : QObject(parent) 14 | { 15 | } 16 | 17 | KSharedConfigPtr InputBackend::config() const 18 | { 19 | return m_config; 20 | } 21 | 22 | void InputBackend::setConfig(KSharedConfigPtr config) 23 | { 24 | m_config = config; 25 | } 26 | 27 | } // namespace KWin 28 | 29 | #include "moc_inputbackend.cpp" 30 | -------------------------------------------------------------------------------- /src/plugins/krunner-integration/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(krunnerintegration_SOURCES 2 | main.cpp 3 | windowsrunnerinterface.cpp 4 | ) 5 | 6 | qt_add_dbus_adaptor(krunnerintegration_SOURCES org.kde.krunner1.xml windowsrunnerinterface.h KWin::WindowsRunner) 7 | 8 | kcoreaddons_add_plugin(krunnerintegration SOURCES ${krunnerintegration_SOURCES} INSTALL_NAMESPACE "${KWIN_PLUGINDIR}/plugins") 9 | target_link_libraries(krunnerintegration kwin KF6::I18n) 10 | 11 | install(FILES kwin-runner-windows.desktop DESTINATION ${KDE_INSTALL_DATAROOTDIR}/krunner/dbusplugins RENAME kwin-runner-windows-x11.desktop) 12 | -------------------------------------------------------------------------------- /src/plugins/blur/shaders/downsample_core.frag: -------------------------------------------------------------------------------- 1 | #version 140 2 | 3 | uniform sampler2D texUnit; 4 | uniform float offset; 5 | uniform vec2 halfpixel; 6 | 7 | in vec2 uv; 8 | 9 | out vec4 fragColor; 10 | 11 | void main(void) 12 | { 13 | vec4 sum = texture(texUnit, uv) * 4.0; 14 | sum += texture(texUnit, uv - halfpixel.xy * offset); 15 | sum += texture(texUnit, uv + halfpixel.xy * offset); 16 | sum += texture(texUnit, uv + vec2(halfpixel.x, -halfpixel.y) * offset); 17 | sum += texture(texUnit, uv - vec2(halfpixel.x, -halfpixel.y) * offset); 18 | 19 | fragColor = sum / 8.0; 20 | } 21 | -------------------------------------------------------------------------------- /src/utils/c_ptr.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2022 Xaver Hugl 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | 11 | #include 12 | 13 | namespace KWin 14 | { 15 | 16 | struct CDeleter 17 | { 18 | template 19 | void operator()(T *ptr) 20 | { 21 | if (ptr) { 22 | free(ptr); 23 | } 24 | } 25 | }; 26 | 27 | template 28 | using UniqueCPtr = std::unique_ptr; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /autotests/integration/scene_opengl_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2016 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "generic_scene_opengl_test.h" 10 | 11 | class SceneOpenGLTest : public GenericSceneOpenGLTest 12 | { 13 | Q_OBJECT 14 | public: 15 | SceneOpenGLTest() 16 | : GenericSceneOpenGLTest(QByteArrayLiteral("O2")) 17 | { 18 | } 19 | }; 20 | 21 | WAYLANDTEST_MAIN(SceneOpenGLTest) 22 | #include "scene_opengl_test.moc" 23 | -------------------------------------------------------------------------------- /src/kcms/animations/animationskdeglobalssettings.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 1.0 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/plugins/fallapart/fallapart.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 40 10 | 1 11 | 100000 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/placeholderoutput.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "core/output.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class PlaceholderOutput : public Output 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | PlaceholderOutput(const QSize &size, qreal scale = 1); 20 | ~PlaceholderOutput() override; 21 | 22 | RenderLoop *renderLoop() const override; 23 | 24 | private: 25 | std::unique_ptr m_renderLoop; 26 | }; 27 | 28 | } // namespace KWin 29 | -------------------------------------------------------------------------------- /src/platformsupport/scenes/opengl/openglsurfacetexture_x11.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "openglsurfacetexture.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class SurfacePixmapX11; 15 | 16 | class KWIN_EXPORT OpenGLSurfaceTextureX11 : public OpenGLSurfaceTexture 17 | { 18 | public: 19 | OpenGLSurfaceTextureX11(OpenGLBackend *backend, SurfacePixmapX11 *pixmap); 20 | 21 | protected: 22 | SurfacePixmapX11 *m_pixmap; 23 | }; 24 | 25 | } // namespace KWin 26 | -------------------------------------------------------------------------------- /src/plugins/blur/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "blur.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED_ENABLED(BlurEffect, 13 | "metadata.json.stripped", 14 | return BlurEffect::supported(); 15 | , 16 | return BlurEffect::enabledByDefault();) 17 | 18 | } // namespace KWin 19 | 20 | #include "main.moc" 21 | -------------------------------------------------------------------------------- /autotests/integration/fakes/org.kde.kdecoration3/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ######################################################## 2 | # FakeDecoWithShadows 3 | ######################################################## 4 | add_library(fakedecoshadows MODULE fakedecoration_with_shadows.cpp) 5 | set_target_properties(fakedecoshadows PROPERTIES 6 | PREFIX "" 7 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/fakes/org.kde.kdecoration3") 8 | target_link_libraries(fakedecoshadows 9 | PUBLIC 10 | Qt::Core 11 | Qt::Gui 12 | PRIVATE 13 | KDecoration3::KDecoration 14 | KF6::CoreAddons) 15 | 16 | -------------------------------------------------------------------------------- /src/inputpanelv1integration.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "waylandshellintegration.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class InputPanelSurfaceV1Interface; 15 | 16 | class InputPanelV1Integration : public WaylandShellIntegration 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit InputPanelV1Integration(QObject *parent = nullptr); 22 | 23 | void createWindow(InputPanelSurfaceV1Interface *shellSurface); 24 | }; 25 | 26 | } // namespace KWin 27 | -------------------------------------------------------------------------------- /src/platformsupport/scenes/opengl/openglsurfacetexture_wayland.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "openglsurfacetexture.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class SurfacePixmap; 15 | 16 | class KWIN_EXPORT OpenGLSurfaceTextureWayland : public OpenGLSurfaceTexture 17 | { 18 | public: 19 | OpenGLSurfaceTextureWayland(OpenGLBackend *backend, SurfacePixmap *pixmap); 20 | 21 | protected: 22 | SurfacePixmap *m_pixmap; 23 | }; 24 | 25 | } // namespace KWin 26 | -------------------------------------------------------------------------------- /autotests/integration/scene_opengl_es_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "generic_scene_opengl_test.h" 10 | 11 | class SceneOpenGLESTest : public GenericSceneOpenGLTest 12 | { 13 | Q_OBJECT 14 | public: 15 | SceneOpenGLESTest() 16 | : GenericSceneOpenGLTest(QByteArrayLiteral("O2ES")) 17 | { 18 | } 19 | }; 20 | 21 | WAYLANDTEST_MAIN(SceneOpenGLESTest) 22 | #include "scene_opengl_es_test.moc" 23 | -------------------------------------------------------------------------------- /src/plugins/blur/blur_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2010 Fredrik Höglund 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "ui_blur_config.h" 10 | #include 11 | 12 | namespace KWin 13 | { 14 | 15 | class BlurEffectConfig : public KCModule 16 | { 17 | Q_OBJECT 18 | 19 | public: 20 | explicit BlurEffectConfig(QObject *parent, const KPluginMetaData &data); 21 | ~BlurEffectConfig() override; 22 | 23 | void save() override; 24 | 25 | private: 26 | ::Ui::BlurEffectConfig ui; 27 | }; 28 | 29 | } // namespace KWin 30 | -------------------------------------------------------------------------------- /examples/plugin/eventlistener.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2024 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "kwin/plugin.h" 10 | #include "kwin/input_event_spy.h" 11 | 12 | namespace KWin 13 | { 14 | 15 | class EventListener : public Plugin, public InputEventSpy 16 | { 17 | Q_OBJECT 18 | 19 | public: 20 | EventListener(); 21 | 22 | void keyEvent(KeyEvent *event) override; 23 | void pointerEvent(MouseEvent *event) override; 24 | }; 25 | 26 | } // namespace KWin 27 | -------------------------------------------------------------------------------- /src/kcms/effects/desktopeffectsdata.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Cyril Rossi 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | #include 12 | 13 | namespace KWin 14 | { 15 | class EffectsModel; 16 | 17 | class DesktopEffectsData : public KCModuleData 18 | { 19 | Q_OBJECT 20 | 21 | public: 22 | explicit DesktopEffectsData(QObject *parent); 23 | ~DesktopEffectsData() override; 24 | 25 | bool isDefaults() const override; 26 | 27 | private: 28 | EffectsModel *m_model; 29 | }; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwinscreenedgeeffectsettings.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | ElectricNone 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwinscreenedgescriptsettings.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | ElectricNone 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwintouchscreenscriptsettings.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | ElectricNone 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/quick-effect/package/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "KPackageStructure": "KWin/Effect", 3 | "KPlugin": { 4 | "Authors": [ 5 | { 6 | "Email": "user@example.com", 7 | "Name": "Real Name" 8 | } 9 | ], 10 | "Category": "Appearance", 11 | "Description": "Quick Effect", 12 | "EnabledByDefault": true, 13 | "Id": "quick-effect", 14 | "License": "MIT", 15 | "Name": "Quick Effect" 16 | }, 17 | "X-KDE-ConfigModule": "kcm_kwin4_genericscripted", 18 | "X-KDE-Ordering": 60, 19 | "X-Plasma-API": "declarativescript" 20 | } 21 | -------------------------------------------------------------------------------- /src/kcms/animations/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_definitions(-DTRANSLATION_DOMAIN=\"kcm_animations_x11\") 2 | 3 | set(kcm_animations_x11_PART_SRCS 4 | kcm.cpp 5 | animationsdata.cpp 6 | effectssubsetmodel.cpp 7 | ) 8 | 9 | kcmutils_add_qml_kcm(kcm_animations_x11 SOURCES ${kcm_animations_x11_PART_SRCS}) 10 | 11 | kconfig_add_kcfg_files(kcm_animations_x11 animationskdeglobalssettings.kcfgc GENERATE_MOC) 12 | 13 | target_link_libraries(kcm_animations_x11 PRIVATE 14 | Qt::DBus 15 | Qt::Quick 16 | KF6::ConfigGui 17 | KF6::KCMUtils 18 | KF6::I18n 19 | KF6::KCMUtilsQuick 20 | KF6::Service 21 | kcmkwincommon 22 | ) 23 | -------------------------------------------------------------------------------- /src/kcms/screenedges/kwintouchscreenedgeeffectsettings.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | ElectricNone 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/plugins/backgroundcontrast/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "contrast.h" 8 | 9 | namespace KWin 10 | { 11 | 12 | KWIN_EFFECT_FACTORY_SUPPORTED_ENABLED(ContrastEffect, 13 | "metadata.json.stripped", 14 | return ContrastEffect::supported(); 15 | , 16 | return ContrastEffect::enabledByDefault();) 17 | 18 | } // namespace KWin 19 | 20 | #include "main.moc" 21 | -------------------------------------------------------------------------------- /src/utils/kernel.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2023 Xaver Hugl 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include "utils/version.h" 11 | 12 | #include 13 | 14 | namespace KWin 15 | { 16 | 17 | inline static Version linuxKernelVersion() 18 | { 19 | struct utsname name; 20 | uname(&name); 21 | 22 | if (qstrcmp(name.sysname, "Linux") == 0) { 23 | return Version::parseString(name.release); 24 | } 25 | return Version(0, 0, 0); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/kcms/decoration/declarative-plugin/types.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2024 Nicolas Fella 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | #pragma once 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | struct DecorationForeign 14 | { 15 | Q_GADGET 16 | QML_ANONYMOUS 17 | QML_FOREIGN(KDecoration3::Decoration) 18 | }; 19 | 20 | struct DecorationShadowForeign 21 | { 22 | Q_GADGET 23 | QML_ANONYMOUS 24 | QML_FOREIGN(KDecoration3::DecorationShadow) 25 | }; 26 | -------------------------------------------------------------------------------- /src/plugins/overview/kcm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | set(kwin_overview_config_SOURCES overvieweffectkcm.cpp) 6 | ki18n_wrap_ui(kwin_overview_config_SOURCES overvieweffectkcm.ui) 7 | kconfig_add_kcfg_files(kwin_overview_config_SOURCES ../overviewconfig.kcfgc) 8 | 9 | kwin_add_effect_config(kwin_overview_config ${kwin_overview_config_SOURCES}) 10 | target_link_libraries(kwin_overview_config 11 | KF6::KCMUtils 12 | KF6::CoreAddons 13 | KF6::GlobalAccel 14 | KF6::I18n 15 | KF6::XmlGui 16 | KWinEffectsInterface 17 | ) 18 | -------------------------------------------------------------------------------- /src/plugins/tileseditor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 Marco Martin 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | if (KWIN_BUILD_KCMS) 6 | add_subdirectory(kcm) 7 | endif() 8 | 9 | set(tileseditor_SOURCES 10 | main.cpp 11 | tileseditoreffect.cpp 12 | ) 13 | 14 | kwin_add_builtin_effect(tileseditor ${tileseditor_SOURCES}) 15 | 16 | target_link_libraries(tileseditor PRIVATE 17 | kwin 18 | 19 | KF6::ConfigGui 20 | KF6::GlobalAccel 21 | KF6::I18n 22 | 23 | Qt::Quick 24 | ) 25 | 26 | install(DIRECTORY qml DESTINATION ${KDE_INSTALL_DATADIR}/${KWIN_DATADIR}/effects/tileseditor) 27 | -------------------------------------------------------------------------------- /src/utils/realtime.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "realtime.h" 8 | 9 | #include "config-kwin.h" 10 | 11 | #include 12 | #include 13 | 14 | namespace KWin 15 | { 16 | 17 | void gainRealTime() 18 | { 19 | #if HAVE_SCHED_RESET_ON_FORK 20 | const int minPriority = sched_get_priority_min(SCHED_RR); 21 | sched_param sp; 22 | sp.sched_priority = minPriority; 23 | pthread_setschedparam(pthread_self(), SCHED_RR | SCHED_RESET_ON_FORK, &sp); 24 | #endif 25 | } 26 | 27 | } // namespace KWin 28 | -------------------------------------------------------------------------------- /src/kcms/scripts/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # KI18N Translation Domain for this library 2 | add_definitions(-DTRANSLATION_DOMAIN=\"kcm_kwin_scripts_x11\") 3 | 4 | kcmutils_add_qml_kcm(kcm_kwin_scripts_x11 INSTALL_NAMESPACE plasma/kcms/systemsettings) 5 | 6 | target_sources(kcm_kwin_scripts_x11 PRIVATE 7 | module.cpp 8 | kwinscriptsdata.cpp 9 | ) 10 | 11 | target_link_libraries(kcm_kwin_scripts_x11 PRIVATE 12 | Qt::DBus 13 | 14 | KF6::I18n 15 | KF6::KCMUtilsCore 16 | KF6::KCMUtils 17 | KF6::Package 18 | KF6::KCMUtilsQuick 19 | ) 20 | 21 | install(FILES kwinscripts.knsrc DESTINATION ${KDE_INSTALL_KNSRCDIR} RENAME kwinscripts-x11.knsrc) 22 | -------------------------------------------------------------------------------- /src/kcms/scripts/kwinscriptsdata.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Cyril Rossi 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | class KWinScriptsData : public KCModuleData 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | KWinScriptsData(QObject *parent); 22 | 23 | bool isDefaults() const override; 24 | 25 | QList pluginMetaDataList() const; 26 | 27 | private: 28 | KSharedConfigPtr m_kwinConfig; 29 | }; 30 | -------------------------------------------------------------------------------- /src/core/brightnessdevice.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2024 Xaver Hugl 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "brightnessdevice.h" 10 | #include "output.h" 11 | 12 | namespace KWin 13 | { 14 | 15 | BrightnessDevice::BrightnessDevice() 16 | { 17 | } 18 | 19 | BrightnessDevice::~BrightnessDevice() 20 | { 21 | } 22 | 23 | void BrightnessDevice::setOutput(Output *output) 24 | { 25 | m_output = output; 26 | } 27 | 28 | Output *BrightnessDevice::output() const 29 | { 30 | return m_output; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/scene/itemrenderer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "scene/itemrenderer.h" 8 | 9 | #include 10 | 11 | namespace KWin 12 | { 13 | 14 | ItemRenderer::ItemRenderer() 15 | { 16 | } 17 | 18 | ItemRenderer::~ItemRenderer() 19 | { 20 | } 21 | 22 | QPainter *ItemRenderer::painter() const 23 | { 24 | return nullptr; 25 | } 26 | 27 | void ItemRenderer::beginFrame(const RenderTarget &renderTarget, const RenderViewport &viewport) 28 | { 29 | } 30 | 31 | void ItemRenderer::endFrame() 32 | { 33 | } 34 | 35 | } // namespace KWin 36 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/completeTest.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | window.animation = set({ 3 | window: window, 4 | curve: QEasingCurve.Linear, 5 | duration: animationTime(1000), 6 | type: Effect.Opacity, 7 | from: 0, 8 | to: 1, 9 | keepAlive: false 10 | }); 11 | 12 | window.minimizedChanged.connect(() => { 13 | if (!window.minimized) { 14 | return; 15 | } 16 | if (complete(window.animation)) { 17 | sendTestResponse('ok'); 18 | } else { 19 | sendTestResponse('fail'); 20 | } 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_standalone_xfixes_cursor_event_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include "x11eventfilter.h" 11 | 12 | namespace KWin 13 | { 14 | class X11Cursor; 15 | 16 | class XFixesCursorEventFilter : public X11EventFilter 17 | { 18 | public: 19 | explicit XFixesCursorEventFilter(X11Cursor *cursor); 20 | 21 | bool event(xcb_generic_event_t *event) override; 22 | 23 | private: 24 | X11Cursor *m_cursor; 25 | }; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/kcms/compositing/kwincompositingdata.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2020 Cyril Rossi 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | 10 | #pragma once 11 | 12 | #include 13 | 14 | #include 15 | 16 | class KWinCompositingSetting; 17 | 18 | class KWinCompositingData : public KCModuleData 19 | { 20 | Q_OBJECT 21 | 22 | public: 23 | explicit KWinCompositingData(QObject *parent); 24 | 25 | bool isDefaults() const override; 26 | 27 | private: 28 | KWinCompositingSetting *m_settings; 29 | }; 30 | -------------------------------------------------------------------------------- /src/plugins/windowview/kcm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | set(kwin_windowview_config_SOURCES windowvieweffectkcm.cpp) 6 | ki18n_wrap_ui(kwin_windowview_config_SOURCES windowvieweffectkcm.ui) 7 | kconfig_add_kcfg_files(kwin_windowview_config_SOURCES ../windowviewconfig.kcfgc) 8 | 9 | kwin_add_effect_config(kwin_windowview_config ${kwin_windowview_config_SOURCES}) 10 | target_link_libraries(kwin_windowview_config 11 | KF6::KCMUtils 12 | KF6::CoreAddons 13 | KF6::GlobalAccel 14 | KF6::I18n 15 | KF6::XmlGui 16 | KWinEffectsInterface 17 | ) 18 | -------------------------------------------------------------------------------- /src/plugins/windowsystem/windowshadow.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | namespace KWin 12 | { 13 | 14 | class WindowShadowTile final : public KWindowShadowTilePrivate 15 | { 16 | public: 17 | bool create() override; 18 | void destroy() override; 19 | }; 20 | 21 | class WindowShadow final : public KWindowShadowPrivate 22 | { 23 | public: 24 | bool create() override; 25 | void destroy() override; 26 | }; 27 | 28 | } // namespace KWin 29 | -------------------------------------------------------------------------------- /src/scene/cursordelegate_qpainter.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "scene/scene.h" 10 | 11 | #include 12 | 13 | namespace KWin 14 | { 15 | 16 | class Output; 17 | 18 | class CursorDelegateQPainter final : public SceneDelegate 19 | { 20 | public: 21 | CursorDelegateQPainter(Scene *scene, Output *output); 22 | 23 | void paint(const RenderTarget &renderTarget, const QRegion ®ion) override; 24 | 25 | private: 26 | Output *const m_output; 27 | QImage m_buffer; 28 | }; 29 | 30 | } // namespace KWin 31 | -------------------------------------------------------------------------------- /src/window_property_notify_x11_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | 11 | #include "x11eventfilter.h" 12 | 13 | namespace KWin 14 | { 15 | class EffectsHandler; 16 | 17 | class WindowPropertyNotifyX11Filter : public X11EventFilter 18 | { 19 | public: 20 | explicit WindowPropertyNotifyX11Filter(EffectsHandler *effects); 21 | 22 | bool event(xcb_generic_event_t *event) override; 23 | 24 | private: 25 | EffectsHandler *m_effects; 26 | }; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/plugins/slidingpopups/slidingpopups.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 0 11 | 12 | 13 | 0 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/platformsupport/scenes/qpainter/qpaintersurfacetexture_wayland.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "qpaintersurfacetexture.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class KWIN_EXPORT QPainterSurfaceTextureWayland : public QPainterSurfaceTexture 15 | { 16 | public: 17 | QPainterSurfaceTextureWayland(QPainterBackend *backend, SurfacePixmap *pixmap); 18 | 19 | bool create() override; 20 | void update(const QRegion ®ion) override; 21 | 22 | private: 23 | SurfacePixmap *m_pixmap; 24 | }; 25 | 26 | } // namespace KWin 27 | -------------------------------------------------------------------------------- /src/plugins/overview/kcm/overvieweffectkcm.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | #include "ui_overvieweffectkcm.h" 12 | 13 | namespace KWin 14 | { 15 | 16 | class OverviewEffectConfig : public KCModule 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit OverviewEffectConfig(QObject *parent, const KPluginMetaData &data); 22 | 23 | public Q_SLOTS: 24 | void save() override; 25 | void defaults() override; 26 | 27 | private: 28 | ::Ui::OverviewEffectConfig ui; 29 | }; 30 | 31 | } // namespace KWin 32 | -------------------------------------------------------------------------------- /src/plugins/tileseditor/kcm/tileseditoreffectkcm.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2022 Marco Martin 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | #include "ui_tileseditoreffectkcm.h" 12 | 13 | namespace KWin 14 | { 15 | 16 | class TilesEditorEffectConfig : public KCModule 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit TilesEditorEffectConfig(QObject *parent, const KPluginMetaData &data); 22 | 23 | public Q_SLOTS: 24 | void save() override; 25 | void defaults() override; 26 | 27 | private: 28 | ::Ui::TilesEditorEffectConfig ui; 29 | }; 30 | 31 | } // namespace KWin 32 | -------------------------------------------------------------------------------- /src/plugins/zoom/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Effect 3 | 4 | set(zoom_SOURCES 5 | main.cpp 6 | zoom.cpp 7 | zoom.qrc 8 | ) 9 | 10 | if (HAVE_ACCESSIBILITY) 11 | set(zoom_SOURCES ${zoom_SOURCES} 12 | accessibilityintegration.cpp 13 | ) 14 | endif() 15 | 16 | kconfig_add_kcfg_files(zoom_SOURCES 17 | zoomconfig.kcfgc 18 | ) 19 | 20 | kwin_add_builtin_effect(zoom ${zoom_SOURCES}) 21 | target_link_libraries(zoom PRIVATE 22 | kwin 23 | 24 | KF6::ConfigGui 25 | KF6::GlobalAccel 26 | KF6::I18n 27 | ) 28 | 29 | if (HAVE_ACCESSIBILITY) 30 | target_link_libraries(zoom PRIVATE QAccessibilityClient6) 31 | endif() 32 | -------------------------------------------------------------------------------- /src/plugins/desktopchangeosd/package/contents/ui/main.qml: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2012 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | import QtQuick 10 | import org.kde.kwin 11 | 12 | Loader { 13 | id: mainItemLoader 14 | 15 | Connections { 16 | target: Workspace 17 | function onCurrentDesktopChanged(previous) { 18 | if (!mainItemLoader.item) { 19 | mainItemLoader.source = "osd.qml"; 20 | } 21 | mainItemLoader.item.show(previous); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/plugins/windowview/kcm/windowvieweffectkcm.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | #include "ui_windowvieweffectkcm.h" 12 | 13 | namespace KWin 14 | { 15 | 16 | class WindowViewEffectConfig : public KCModule 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit WindowViewEffectConfig(QObject *parent, const KPluginMetaData &data); 22 | 23 | public Q_SLOTS: 24 | void save() override; 25 | void defaults() override; 26 | 27 | private: 28 | ::Ui::WindowViewEffectConfig ui; 29 | }; 30 | 31 | } // namespace KWin 32 | -------------------------------------------------------------------------------- /src/kscreenintegration.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2023 Xaver Hugl 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include "core/output.h" 11 | #include "core/outputconfiguration.h" 12 | 13 | #include 14 | #include 15 | 16 | namespace KWin 17 | { 18 | namespace KScreenIntegration 19 | { 20 | 21 | QString connectedOutputsHash(const QList &outputs, bool isLidClosed); 22 | std::optional>> readOutputConfig(const QList &outputs, const QString &hash); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/plugins/qpa/platformcursor.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2016 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | 11 | #include 12 | 13 | namespace KWin 14 | { 15 | namespace QPA 16 | { 17 | 18 | class PlatformCursor : public QPlatformCursor 19 | { 20 | public: 21 | PlatformCursor(); 22 | ~PlatformCursor() override; 23 | QPoint pos() const override; 24 | void setPos(const QPoint &pos) override; 25 | void changeCursor(QCursor *windowCursor, QWindow *window) override; 26 | }; 27 | 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/redirectAnimateDontTerminateTest.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | window.animation = animate({ 3 | window: window, 4 | curve: QEasingCurve.Linear, 5 | duration: animationTime(1000), 6 | type: Effect.Opacity, 7 | from: 0.0, 8 | to: 1.0 9 | }) 10 | 11 | window.minimizedChanged.connect(() => { 12 | if (!window.minimized) { 13 | return; 14 | } 15 | if (redirect(window.animation, Effect.Backward, Effect.DontTerminate)) { 16 | sendTestResponse('ok'); 17 | } else { 18 | sendTestResponse('fail'); 19 | } 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/redirectAnimateTerminateTest.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | window.animation = animate({ 3 | window: window, 4 | curve: QEasingCurve.Linear, 5 | duration: animationTime(1000), 6 | type: Effect.Opacity, 7 | from: 0.0, 8 | to: 1.0 9 | }); 10 | 11 | window.minimizedChanged.connect(() => { 12 | if (!window.minimized) { 13 | return; 14 | } 15 | if (redirect(window.animation, Effect.Backward, Effect.TerminateAtSource)) { 16 | sendTestResponse('ok'); 17 | } else { 18 | sendTestResponse('fail'); 19 | } 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /src/core/gbmgraphicsbufferallocator.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2023 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "core/graphicsbufferallocator.h" 10 | 11 | struct gbm_device; 12 | 13 | namespace KWin 14 | { 15 | 16 | class KWIN_EXPORT GbmGraphicsBufferAllocator : public GraphicsBufferAllocator 17 | { 18 | public: 19 | explicit GbmGraphicsBufferAllocator(gbm_device *device); 20 | ~GbmGraphicsBufferAllocator() override; 21 | 22 | GraphicsBuffer *allocate(const GraphicsBufferOptions &options) override; 23 | 24 | private: 25 | gbm_device *m_gbmDevice; 26 | }; 27 | 28 | } // namespace KWin 29 | -------------------------------------------------------------------------------- /src/osd.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2016 Martin Graesslin 3 | 4 | SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | 6 | */ 7 | 8 | #pragma once 9 | 10 | #include 11 | #include 12 | 13 | namespace KWin 14 | { 15 | namespace OSD 16 | { 17 | 18 | void show(const QString &message, const QString &iconName = QString()); 19 | void show(const QString &message, int timeout); 20 | void show(const QString &message, const QString &iconName, int timeout); 21 | enum class HideFlag { 22 | SkipCloseAnimation = 1, 23 | }; 24 | Q_DECLARE_FLAGS(HideFlags, HideFlag) 25 | void hide(HideFlags flags = HideFlags()); 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/plugins/fade/package/contents/config/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | true 11 | 12 | 13 | 150 14 | 15 | 16 | 150 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/plugins/glide/glide_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2010 Fredrik Höglund 3 | SPDX-FileCopyrightText: 2010 Alexandre Pereira 4 | 5 | SPDX-License-Identifier: GPL-2.0-or-later 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "ui_glide_config.h" 11 | #include 12 | 13 | namespace KWin 14 | { 15 | 16 | class GlideEffectConfig : public KCModule 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit GlideEffectConfig(QObject *parent, const KPluginMetaData &data); 22 | ~GlideEffectConfig() override; 23 | 24 | void save() override; 25 | 26 | private: 27 | ::Ui::GlideEffectConfig ui; 28 | }; 29 | 30 | } // namespace KWin 31 | -------------------------------------------------------------------------------- /src/plugins/private/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021 Vlad Zahorodnii 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | ecm_add_qml_module(effectsplugin URI "org.kde.kwin_x11.private.effects") 6 | 7 | ecm_target_qml_sources(effectsplugin 8 | SOURCES 9 | qml/WindowHeap.qml 10 | qml/WindowHeapDelegate.qml 11 | ) 12 | 13 | target_sources(effectsplugin PRIVATE 14 | expoarea.cpp 15 | expolayout.cpp 16 | plugin.cpp 17 | ) 18 | 19 | target_link_libraries(effectsplugin PRIVATE 20 | kwin 21 | Qt6::Quick 22 | Qt6::Qml 23 | KF6::I18n 24 | ) 25 | 26 | ecm_finalize_qml_module(effectsplugin DESTINATION ${KDE_INSTALL_QMLDIR}) 27 | 28 | -------------------------------------------------------------------------------- /src/xwayland/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(lib) 2 | 3 | add_library(KWinXwaylandServerModule OBJECT 4 | clipboard.cpp 5 | databridge.cpp 6 | datasource.cpp 7 | dnd.cpp 8 | drag.cpp 9 | drag_wl.cpp 10 | drag_x.cpp 11 | primary.cpp 12 | selection.cpp 13 | selection_source.cpp 14 | transfer.cpp 15 | xwayland.cpp 16 | xwldrophandler.cpp 17 | xwaylandlauncher.cpp 18 | ) 19 | target_link_libraries(KWinXwaylandServerModule PUBLIC kwin Qt::Concurrent KF6::I18n KWinXwaylandCommon XCB::XCB XCB::RANDR XCB::XFIXES XCB::COMPOSITE XKB::XKB) 20 | if(TARGET KF6::Notifications) 21 | target_link_libraries(KWinXwaylandServerModule PUBLIC KF6::Notifications) 22 | endif() 23 | -------------------------------------------------------------------------------- /src/utils/resource.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | struct wl_resource; 13 | 14 | namespace KWin 15 | { 16 | 17 | template 18 | T resource_cast(::wl_resource *resource) 19 | { 20 | using ObjectType = std::remove_pointer_t>; 21 | if (auto resourceContainer = ObjectType::Resource::fromResource(resource)) { 22 | return static_cast(resourceContainer->object()); 23 | } 24 | return T(); 25 | } 26 | 27 | } // namespace KWin 28 | -------------------------------------------------------------------------------- /src/kcms/tabbox/kwinswitcheffectsettings.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | false 12 | 13 | 14 | false 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/plugins/kpackage/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2023 Alexander Lohnau 2 | # SPDX-License-Identifier: BSD-2-Clause 3 | 4 | function(kwin_add_kpackage_structure dir file) 5 | kcoreaddons_add_plugin(kwin_${dir}_x11 SOURCES ${file} INSTALL_NAMESPACE kf6/packagestructure) 6 | target_link_libraries(kwin_${dir}_x11 KF6::Package) 7 | endfunction() 8 | 9 | kwin_add_kpackage_structure(aurorae aurorae/aurorae.cpp) 10 | kwin_add_kpackage_structure(decoration decoration/decoration.cpp) 11 | kwin_add_kpackage_structure(effect effect/effect.cpp) 12 | kwin_add_kpackage_structure(scripts scripts/scripts.cpp) 13 | kwin_add_kpackage_structure(windowswitcher windowswitcher/windowswitcher.cpp) 14 | -------------------------------------------------------------------------------- /src/plugins/magiclamp/magiclamp_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2009 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | 10 | #pragma once 11 | 12 | #include 13 | 14 | #include "ui_magiclamp_config.h" 15 | 16 | namespace KWin 17 | { 18 | class MagicLampEffectConfig : public KCModule 19 | { 20 | Q_OBJECT 21 | public: 22 | explicit MagicLampEffectConfig(QObject *parent, const KPluginMetaData &data); 23 | 24 | public Q_SLOTS: 25 | void save() override; 26 | 27 | private: 28 | Ui::MagicLampEffectConfigForm m_ui; 29 | }; 30 | 31 | } // namespace 32 | -------------------------------------------------------------------------------- /src/plugins/qpa/eglhelpers.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2019 Vlad Zahorodnii 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | 10 | #pragma once 11 | 12 | #include 13 | 14 | #include 15 | 16 | namespace KWin 17 | { 18 | 19 | class EglDisplay; 20 | 21 | namespace QPA 22 | { 23 | 24 | bool isOpenGLES(); 25 | 26 | EGLConfig configFromFormat(EglDisplay *display, const QSurfaceFormat &surfaceFormat, EGLint surfaceType = 0); 27 | QSurfaceFormat formatFromConfig(EglDisplay *display, EGLConfig config); 28 | 29 | } // namespace QPA 30 | } // namespace KWin 31 | -------------------------------------------------------------------------------- /src/rulebooksettingsbase.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 0 11 | 12 | 13 | 14 | QStringList() 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/backends/x11/standalone/x11_standalone_placeholderoutput.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2020 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "core/output.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | class X11StandaloneBackend; 15 | 16 | class X11PlaceholderOutput : public Output 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit X11PlaceholderOutput(X11StandaloneBackend *backend, QObject *parent = nullptr); 22 | 23 | RenderLoop *renderLoop() const override; 24 | 25 | void updateEnabled(bool enabled); 26 | 27 | private: 28 | X11StandaloneBackend *m_backend; 29 | }; 30 | 31 | } // namespace KWin 32 | -------------------------------------------------------------------------------- /src/plugins/blur/blur.kcfg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 15 10 | 11 | 12 | 5 13 | 14 | 15 | 1 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/plugins/nightlight/constants.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Roman Gilg 6 | SPDX-FileCopyrightText: 2024 Vlad Zahorodnii 7 | 8 | SPDX-License-Identifier: GPL-2.0-or-later 9 | */ 10 | #pragma once 11 | 12 | namespace KWin 13 | { 14 | 15 | static const int MSC_DAY = 86400000; 16 | static const int MIN_TEMPERATURE = 1000; 17 | static const int DEFAULT_DAY_TEMPERATURE = 6500; 18 | static const int DEFAULT_NIGHT_TEMPERATURE = 4500; 19 | static const int DEFAULT_TRANSITION_DURATION = 1800000; /* 30 minutes */ 20 | static const int MIN_TRANSITION_DURATION = 60000; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/rootinfo_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2017 Martin Flöser 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | #include "config-kwin.h" 11 | 12 | #if !KWIN_BUILD_X11 13 | #error Do not include on non-X11 builds 14 | #endif 15 | 16 | #include "x11eventfilter.h" 17 | 18 | namespace KWin 19 | { 20 | class RootInfo; 21 | 22 | class RootInfoFilter : public X11EventFilter 23 | { 24 | public: 25 | explicit RootInfoFilter(RootInfo *parent); 26 | 27 | bool event(xcb_generic_event_t *event) override; 28 | 29 | private: 30 | RootInfo *m_rootInfo; 31 | }; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/utils/executable_path_sysctl.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2021 Tobias C. Berner 3 | 4 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | #include "executable_path.h" 12 | 13 | QString executablePathFromPid(pid_t pid) 14 | { 15 | const int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, static_cast(pid)}; 16 | char buf[MAXPATHLEN]; 17 | size_t cb = sizeof(buf); 18 | if (sysctl(mib, 4, buf, &cb, nullptr, 0) == 0) { 19 | return QString::fromLocal8Bit(realpath(buf, nullptr)); 20 | } 21 | return QString(); 22 | } 23 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/redirectSetDontTerminateTest.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | window.animation = set({ 3 | window: window, 4 | curve: QEasingCurve.Linear, 5 | duration: animationTime(1000), 6 | type: Effect.Opacity, 7 | from: 0.0, 8 | to: 1.0, 9 | keepAlive: false 10 | }); 11 | 12 | window.minimizedChanged.connect(() => { 13 | if (!window.minimized) { 14 | return; 15 | } 16 | if (redirect(window.animation, Effect.Backward, Effect.DontTerminate)) { 17 | sendTestResponse('ok'); 18 | } else { 19 | sendTestResponse('fail'); 20 | } 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /autotests/integration/effects/scripts/redirectSetTerminateTest.js: -------------------------------------------------------------------------------- 1 | effects.windowAdded.connect(function (window) { 2 | window.animation = set({ 3 | window: window, 4 | curve: QEasingCurve.Linear, 5 | duration: animationTime(1000), 6 | type: Effect.Opacity, 7 | from: 0.0, 8 | to: 1.0, 9 | keepAlive: false 10 | }); 11 | 12 | window.minimizedChanged.connect(() => { 13 | if (!window.minimized) { 14 | return; 15 | } 16 | if (redirect(window.animation, Effect.Backward, Effect.TerminateAtSource)) { 17 | sendTestResponse('ok'); 18 | } else { 19 | sendTestResponse('fail'); 20 | } 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /src/core/colorpipelinestage.h: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2022 Xaver Hugl 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #pragma once 10 | 11 | #include "kwin_export.h" 12 | 13 | #include 14 | 15 | typedef struct _cmsStage_struct cmsStage; 16 | 17 | namespace KWin 18 | { 19 | 20 | class KWIN_EXPORT ColorPipelineStage 21 | { 22 | public: 23 | ColorPipelineStage(cmsStage *stage); 24 | ~ColorPipelineStage(); 25 | 26 | std::unique_ptr dup() const; 27 | cmsStage *stage() const; 28 | 29 | private: 30 | cmsStage *const m_stage; 31 | }; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/core/graphicsbufferview.h: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: 2023 Vlad Zahorodnii 3 | 4 | SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "core/graphicsbuffer.h" 10 | 11 | #include 12 | 13 | namespace KWin 14 | { 15 | 16 | class KWIN_EXPORT GraphicsBufferView 17 | { 18 | public: 19 | explicit GraphicsBufferView(GraphicsBuffer *buffer, GraphicsBuffer::MapFlags accessFlags = GraphicsBuffer::Read); 20 | ~GraphicsBufferView(); 21 | 22 | bool isNull() const; 23 | QImage *image(); 24 | const QImage *image() const; 25 | 26 | private: 27 | GraphicsBuffer *m_buffer; 28 | QImage m_image; 29 | }; 30 | 31 | } // namespace KWin 32 | -------------------------------------------------------------------------------- /src/plugins/synchronizeskipswitcher/package/contents/code/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2012 Martin Gräßlin 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | 10 | function setupConnection(window) { 11 | window.skipSwitcher = window.skipTaskbar; 12 | window.skipTaskbarChanged.connect(() => { 13 | window.skipSwitcher = window.skipTaskbar; 14 | }); 15 | } 16 | 17 | workspace.windowAdded.connect(setupConnection); 18 | // connect all existing clients 19 | var clients = workspace.windowList(); 20 | for (var i=0; i 3 | SPDX-FileCopyrightText: 2021 David Redondo 4 | 5 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 6 | */ 7 | 8 | #pragma once 9 | 10 | #include "kwin_export.h" 11 | 12 | #include 13 | 14 | namespace KWin 15 | { 16 | class SurfaceInterface; 17 | 18 | class KWIN_EXPORT AbstractDropHandler : public QObject 19 | { 20 | Q_OBJECT 21 | public: 22 | AbstractDropHandler(QObject *parent = nullptr); 23 | virtual void updateDragTarget(SurfaceInterface *surface, quint32 serial) = 0; 24 | virtual void drop() = 0; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /LICENSES/LicenseRef-KDE-Accepted-GPL.txt: -------------------------------------------------------------------------------- 1 | This library is free software; you can redistribute it and/or 2 | modify it under the terms of the GNU General Public License as 3 | published by the Free Software Foundation; either version 3 of 4 | the license or (at your option) at any later version that is 5 | accepted by the membership of KDE e.V. (or its successor 6 | approved by the membership of KDE e.V.), which shall act as a 7 | proxy as defined in Section 14 of version 3 of the license. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | -------------------------------------------------------------------------------- /src/core/outputconfiguration.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | KWin - the KDE window manager 3 | This file is part of the KDE project. 4 | 5 | SPDX-FileCopyrightText: 2021 Xaver Hugl 6 | 7 | SPDX-License-Identifier: GPL-2.0-or-later 8 | */ 9 | #include "outputconfiguration.h" 10 | 11 | namespace KWin 12 | { 13 | 14 | std::shared_ptr OutputConfiguration::changeSet(Output *output) 15 | { 16 | auto &ret = m_properties[output]; 17 | if (!ret) { 18 | ret = std::make_shared(); 19 | } 20 | return ret; 21 | } 22 | 23 | std::shared_ptr OutputConfiguration::constChangeSet(Output *output) const 24 | { 25 | return m_properties[output]; 26 | } 27 | } 28 | --------------------------------------------------------------------------------