From 324906c26e3a5c46eac022f2816e6cb3ceef56b4 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Tue, 20 Jan 2026 15:51:35 -0500 Subject: [PATCH] [kwin] Update patches to 6.5 --- .../kwin/0001-Implement-moveRelative.patch | 14 +-- ...2-Make-output-yield-tiling-constants.patch | 14 +-- ...3-Adjust-screen-area-for-tiling-gaps.patch | 10 +- ...-Add-actions-for-third-quick-tiling.patch} | 40 +++---- ...e-maximized-windows-to-cast-a-shadow.patch | 8 +- .../kwin/0006-Add-Quicktiles-at-thirds.patch | 6 +- .../kwin/0007-Add-padding-to-qulcktiles.patch | 6 +- ...-Use-geometry-relative-to-the-cutout.patch | 10 +- ...cal-gap-twice-as-big-between-windows.patch | 10 +- .../0010-Implement-core-panning-methods.patch | 106 +++++++----------- ...logic-for-tiles-on-different-screens.patch | 12 +- ...Implement-Incremental-wide-placement.patch | 24 ++-- ...nd-when-switching-focus-horizontally.patch | 10 +- ...s-outside-left-right-screen-boundary.patch | 10 +- ...just-output-detection-for-hyper-wide.patch | 12 +- ...0016-Introduce-the-Pan-helper-effect.patch | 10 +- ...dary-checking-in-the-position-effect.patch | 8 +- ...int_screen-flag-to-prevent-artifacts.patch | 8 +- ...Allow-loading-the-keymap-from-a-file.patch | 10 +- ...erratic-margin-behavior-on-maximize.patch} | 14 +-- .../kwin/0020-temporary-build-fix.patch | 25 ----- .../0021-Enable-libinput-plugin-system.patch | 26 +++++ 22 files changed, 182 insertions(+), 211 deletions(-) rename kde-plasma/kwin/{0004-Add-user-actions-for-quick-third-tiling.patch => 0004-Add-actions-for-third-quick-tiling.patch} (80%) rename kde-plasma/kwin/{0021-Fix-erratic-margin-behavior-on-maximize.patch => 0020-Fix-erratic-margin-behavior-on-maximize.patch} (78%) delete mode 100644 kde-plasma/kwin/0020-temporary-build-fix.patch create mode 100644 kde-plasma/kwin/0021-Enable-libinput-plugin-system.patch diff --git a/kde-plasma/kwin/0001-Implement-moveRelative.patch b/kde-plasma/kwin/0001-Implement-moveRelative.patch index 8ac8df1..921391d 100644 --- a/kde-plasma/kwin/0001-Implement-moveRelative.patch +++ b/kde-plasma/kwin/0001-Implement-moveRelative.patch @@ -1,7 +1,7 @@ -From 605ebb66085a7f004f7ed6f5851a416d56a790e8 Mon Sep 17 00:00:00 2001 +From a933582c1dbf49e67dd14fee0a729dcb25edcd70 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Wed, 18 Dec 2024 11:59:09 -0500 -Subject: [PATCH 01/20] Implement moveRelative +Subject: [PATCH 01/21] Implement moveRelative --- src/window.cpp | 5 +++++ @@ -9,10 +9,10 @@ Subject: [PATCH 01/20] Implement moveRelative 2 files changed, 10 insertions(+) diff --git a/src/window.cpp b/src/window.cpp -index d70e9bccfe..64ad8d977c 100644 +index c4dd92c06f..0b4623a200 100644 --- a/src/window.cpp +++ b/src/window.cpp -@@ -3499,6 +3499,11 @@ void Window::setMoveResizeGeometry(const QRectF &geo) +@@ -3387,6 +3387,11 @@ void Window::setMoveResizeGeometry(const QRectF &geo) setMoveResizeOutput(workspace()->outputAt(geo.center())); } @@ -25,10 +25,10 @@ index d70e9bccfe..64ad8d977c 100644 { return m_moveResizeOutput; diff --git a/src/window.h b/src/window.h -index 8e15cf8079..2f935e4c19 100644 +index 2b11fa365c..9fbda89236 100644 --- a/src/window.h +++ b/src/window.h -@@ -718,6 +718,11 @@ public: +@@ -716,6 +716,11 @@ public: */ void move(const QPointF &topLeft); @@ -41,5 +41,5 @@ index 8e15cf8079..2f935e4c19 100644 * Resizes the window to have a new @p size but stay with the top-left corner in the same position. */ -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0002-Make-output-yield-tiling-constants.patch b/kde-plasma/kwin/0002-Make-output-yield-tiling-constants.patch index b72f400..5e7efa0 100644 --- a/kde-plasma/kwin/0002-Make-output-yield-tiling-constants.patch +++ b/kde-plasma/kwin/0002-Make-output-yield-tiling-constants.patch @@ -1,7 +1,7 @@ -From 56f9b3e2d262e2b4deae68fd62992aada45d2a2e Mon Sep 17 00:00:00 2001 +From c7dae5c52668351a9f58b6ec8a9bdb4adc7f0313 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Mon, 23 Jun 2025 09:40:54 +0200 -Subject: [PATCH 02/20] Make output yield tiling constants +Subject: [PATCH 02/21] Make output yield tiling constants in order to have pixel-perfect placement, the tile gap size and border size must depend on the output size and scaling. @@ -11,10 +11,10 @@ size must depend on the output size and scaling. 2 files changed, 18 insertions(+) diff --git a/src/core/output.cpp b/src/core/output.cpp -index d884b68fe1..9763561e2c 100644 +index 9d12ef0c7d..310f244b8d 100644 --- a/src/core/output.cpp +++ b/src/core/output.cpp -@@ -451,6 +451,16 @@ qreal Output::scale() const +@@ -456,6 +456,16 @@ qreal Output::scale() const return m_state.scale; } @@ -32,10 +32,10 @@ index d884b68fe1..9763561e2c 100644 { return QRect(m_state.position, pixelSize() / scale()); diff --git a/src/core/output.h b/src/core/output.h -index 0122bc34ed..15f03f5630 100644 +index 61b54e9df3..db42886731 100644 --- a/src/core/output.h +++ b/src/core/output.h -@@ -251,6 +251,14 @@ public: +@@ -258,6 +258,14 @@ public: */ bool isEnabled() const; @@ -51,5 +51,5 @@ index 0122bc34ed..15f03f5630 100644 * Returns geometry of this output in device independent pixels. */ -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0003-Adjust-screen-area-for-tiling-gaps.patch b/kde-plasma/kwin/0003-Adjust-screen-area-for-tiling-gaps.patch index 1b1a8d0..e5ddde9 100644 --- a/kde-plasma/kwin/0003-Adjust-screen-area-for-tiling-gaps.patch +++ b/kde-plasma/kwin/0003-Adjust-screen-area-for-tiling-gaps.patch @@ -1,17 +1,17 @@ -From 23374adae557911d1e403c560c1f61aeb0004e44 Mon Sep 17 00:00:00 2001 +From 897b2611859cab050fbabdf5e34fbe2284e47f4d Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Wed, 18 Dec 2024 15:11:22 -0500 -Subject: [PATCH 03/20] Adjust screen area for tiling + gaps +Subject: [PATCH 03/21] Adjust screen area for tiling + gaps --- src/workspace.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/workspace.cpp b/src/workspace.cpp -index 0283608c89..bd64f4f248 100644 +index 17ce1e9f80..37f3ece9c0 100644 --- a/src/workspace.cpp +++ b/src/workspace.cpp -@@ -2271,22 +2271,30 @@ void Workspace::rearrange() +@@ -2297,22 +2297,30 @@ void Workspace::rearrange() */ QRectF Workspace::clientArea(clientAreaOption opt, const Output *output, const VirtualDesktop *desktop) const { @@ -47,5 +47,5 @@ index 0283608c89..bd64f4f248 100644 return m_geometry; default: -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0004-Add-user-actions-for-quick-third-tiling.patch b/kde-plasma/kwin/0004-Add-actions-for-third-quick-tiling.patch similarity index 80% rename from kde-plasma/kwin/0004-Add-user-actions-for-quick-third-tiling.patch rename to kde-plasma/kwin/0004-Add-actions-for-third-quick-tiling.patch index 4db158e..5436788 100644 --- a/kde-plasma/kwin/0004-Add-user-actions-for-quick-third-tiling.patch +++ b/kde-plasma/kwin/0004-Add-actions-for-third-quick-tiling.patch @@ -1,7 +1,7 @@ -From 3b9c72ad9b8b745a823d8a8fd7f11d57ef94b0fb Mon Sep 17 00:00:00 2001 +From ded38319514ed324feb1f30344791dfd5ea22a1f Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi -Date: Sat, 4 Jan 2025 22:57:57 -0500 -Subject: [PATCH 04/20] Add user actions for quick third-tiling +Date: Sun, 18 Jan 2026 22:37:59 -0500 +Subject: [PATCH 04/21] Add actions for third quick-tiling --- src/effect/globals.h | 7 +++++++ @@ -11,10 +11,10 @@ Subject: [PATCH 04/20] Add user actions for quick third-tiling 4 files changed, 27 insertions(+) diff --git a/src/effect/globals.h b/src/effect/globals.h -index b602c07256..819a097580 100644 +index 5114160b09..39f2da55f6 100644 --- a/src/effect/globals.h +++ b/src/effect/globals.h -@@ -198,6 +198,13 @@ enum class QuickTileFlag { +@@ -183,6 +183,13 @@ enum class QuickTileFlag { Custom = 1 << 4, Horizontal = Left | Right, Vertical = Top | Bottom, @@ -29,10 +29,10 @@ index b602c07256..819a097580 100644 Q_ENUM_NS(QuickTileFlag) Q_DECLARE_FLAGS(QuickTileMode, QuickTileFlag) diff --git a/src/scripting/workspace_wrapper.cpp b/src/scripting/workspace_wrapper.cpp -index d1e504b3ac..c9b34876ba 100644 +index 1d26fd2a45..1a21d21289 100644 --- a/src/scripting/workspace_wrapper.cpp +++ b/src/scripting/workspace_wrapper.cpp -@@ -191,6 +191,11 @@ SLOTWRAPPER(slotSwitchToBelowScreen) +@@ -190,6 +190,11 @@ SLOTWRAPPER(slotSwitchToBelowScreen) } SLOTWRAPPER(slotWindowQuickTileLeft, QuickTileFlag::Left) @@ -45,10 +45,10 @@ index d1e504b3ac..c9b34876ba 100644 SLOTWRAPPER(slotWindowQuickTileTop, QuickTileFlag::Top) SLOTWRAPPER(slotWindowQuickTileBottom, QuickTileFlag::Bottom) diff --git a/src/scripting/workspace_wrapper.h b/src/scripting/workspace_wrapper.h -index c1a7db63e7..352208f9e4 100644 +index ec12bc6b41..612b8f3e86 100644 --- a/src/scripting/workspace_wrapper.h +++ b/src/scripting/workspace_wrapper.h -@@ -357,6 +357,11 @@ public Q_SLOTS: +@@ -379,6 +379,11 @@ public Q_SLOTS: void slotWindowShrinkVertical(); void slotWindowQuickTileLeft(); void slotWindowQuickTileRight(); @@ -61,26 +61,26 @@ index c1a7db63e7..352208f9e4 100644 void slotWindowQuickTileBottom(); void slotWindowQuickTileTopLeft(); diff --git a/src/useractions.cpp b/src/useractions.cpp -index 7691e5eb03..6e841d96cd 100644 +index 0bdbbf83d5..e49135c097 100644 --- a/src/useractions.cpp +++ b/src/useractions.cpp -@@ -942,6 +942,16 @@ void Workspace::initShortcuts() - Qt::META | Qt::Key_Left, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Left)); +@@ -871,6 +871,16 @@ void Workspace::initShortcuts() + Qt::META | Qt::Key_Left, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Left), true); initShortcut("Window Quick Tile Right", i18n("Quick Tile Window to the Right"), - Qt::META | Qt::Key_Right, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Right)); + Qt::META | Qt::Key_Right, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Right), true); + initShortcut("Window Quick Tile Left Third", i18n("Quick Tile Window to the Left Third"), -+ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third1)); ++ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third1), true); + initShortcut("Window Quick Tile Left Two-Thirds", i18n("Quick Tile Window to the Left Two-Thirds"), -+ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third12)); ++ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third12), true); + initShortcut("Window Quick Tile Right Two-Thirds", i18n("Quick Tile Window to the Right Two-Thirds"), -+ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third23)); ++ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third23), true); + initShortcut("Window Quick Tile Center Third", i18n("Quick Tile Window to the Center Third"), -+ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third2)); ++ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third2), true); + initShortcut("Window Quick Tile Right Third", i18n("Quick Tile Window to the Right Third"), -+ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third3)); ++ 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third3), true); initShortcut("Window Quick Tile Top", i18n("Quick Tile Window to the Top"), - Qt::META | Qt::Key_Up, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Top)); + Qt::META | Qt::Key_Up, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Top), true); initShortcut("Window Quick Tile Bottom", i18n("Quick Tile Window to the Bottom"), -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0005-Force-maximized-windows-to-cast-a-shadow.patch b/kde-plasma/kwin/0005-Force-maximized-windows-to-cast-a-shadow.patch index 3be7e2f..455cdb9 100644 --- a/kde-plasma/kwin/0005-Force-maximized-windows-to-cast-a-shadow.patch +++ b/kde-plasma/kwin/0005-Force-maximized-windows-to-cast-a-shadow.patch @@ -1,14 +1,14 @@ -From 482eda79d03b7eeb127390bb6d1f91438cc5d053 Mon Sep 17 00:00:00 2001 +From 7a2d46abe3c388bf8fa93a42c98fa9ebb387ea91 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Sun, 5 Jan 2025 01:05:09 -0500 -Subject: [PATCH 05/20] Force maximized windows to cast a shadow +Subject: [PATCH 05/21] Force maximized windows to cast a shadow --- src/window.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/window.cpp b/src/window.cpp -index 64ad8d977c..4eca4627dd 100644 +index 0b4623a200..5acc277bf9 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -289,7 +289,7 @@ SurfaceItem *Window::surfaceItem() const @@ -21,5 +21,5 @@ index 64ad8d977c..4eca4627dd 100644 bool Window::isClient() const -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0006-Add-Quicktiles-at-thirds.patch b/kde-plasma/kwin/0006-Add-Quicktiles-at-thirds.patch index a353d91..01d1922 100644 --- a/kde-plasma/kwin/0006-Add-Quicktiles-at-thirds.patch +++ b/kde-plasma/kwin/0006-Add-Quicktiles-at-thirds.patch @@ -1,7 +1,7 @@ -From 4fc4c8b801315a7eb90b8fe8bf7c30b957ec4fcc Mon Sep 17 00:00:00 2001 +From 6ff6ad69e759246c405649a109381c1de049b0fd Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Wed, 1 Oct 2025 20:24:58 -0400 -Subject: [PATCH 06/20] Add Quicktiles at thirds +Subject: [PATCH 06/21] Add Quicktiles at thirds --- src/tiles/quicktile.cpp | 53 +++++++++++++++++++++++++++++++++++++++++ @@ -130,5 +130,5 @@ index 6abb622740..4a75874f6d 100644 } // namespace KWin -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0007-Add-padding-to-qulcktiles.patch b/kde-plasma/kwin/0007-Add-padding-to-qulcktiles.patch index 28259d6..80d6b5f 100644 --- a/kde-plasma/kwin/0007-Add-padding-to-qulcktiles.patch +++ b/kde-plasma/kwin/0007-Add-padding-to-qulcktiles.patch @@ -1,7 +1,7 @@ -From 124e9a52b8b2051cbc37a1d603cfc8a0622feee3 Mon Sep 17 00:00:00 2001 +From d79e0cbcb46dbe048f42f061ba92ea05be3eb03c Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Wed, 1 Mar 2023 12:36:23 -0500 -Subject: [PATCH 07/20] Add padding to qulcktiles +Subject: [PATCH 07/21] Add padding to qulcktiles --- src/tiles/quicktile.cpp | 3 ++- @@ -29,5 +29,5 @@ index 507df27ed1..c5c255e648 100644 connect(tile, &Tile::relativeGeometryChanged, this, [this, tile]() { -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0008-Use-geometry-relative-to-the-cutout.patch b/kde-plasma/kwin/0008-Use-geometry-relative-to-the-cutout.patch index 2700d47..6ef53ef 100644 --- a/kde-plasma/kwin/0008-Use-geometry-relative-to-the-cutout.patch +++ b/kde-plasma/kwin/0008-Use-geometry-relative-to-the-cutout.patch @@ -1,17 +1,17 @@ -From 401840537e09859db6811661995cabf0f7fc3fe9 Mon Sep 17 00:00:00 2001 +From 00309fc3d23fa111d3edf91b9732dffa6cab67c1 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Tue, 24 Jun 2025 13:19:24 +0200 -Subject: [PATCH 08/20] Use geometry relative to the cutout +Subject: [PATCH 08/21] Use geometry relative to the cutout --- src/tiles/tile.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/tiles/tile.cpp b/src/tiles/tile.cpp -index d7377d9d18..3c3ba61632 100644 +index ff6441f7f2..2e474479bd 100644 --- a/src/tiles/tile.cpp +++ b/src/tiles/tile.cpp -@@ -153,20 +153,19 @@ QRectF Tile::relativeGeometry() const +@@ -152,20 +152,19 @@ QRectF Tile::relativeGeometry() const QRectF Tile::absoluteGeometry() const { @@ -42,5 +42,5 @@ index d7377d9d18..3c3ba61632 100644 QRectF Tile::windowGeometry() const -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0009-Make-vertical-gap-twice-as-big-between-windows.patch b/kde-plasma/kwin/0009-Make-vertical-gap-twice-as-big-between-windows.patch index 2bab403..e7cc26b 100644 --- a/kde-plasma/kwin/0009-Make-vertical-gap-twice-as-big-between-windows.patch +++ b/kde-plasma/kwin/0009-Make-vertical-gap-twice-as-big-between-windows.patch @@ -1,17 +1,17 @@ -From 2b19ce4d9b8a24edd60271e61a6972b08cf28364 Mon Sep 17 00:00:00 2001 +From 5f63c176bad8c1ea99b07a360e76415eed477f7e Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Tue, 20 Jun 2023 18:11:43 -0400 -Subject: [PATCH 09/20] Make vertical gap twice as big between windows +Subject: [PATCH 09/21] Make vertical gap twice as big between windows --- src/tiles/tile.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/tiles/tile.cpp b/src/tiles/tile.cpp -index 3c3ba61632..2a3f22a4b4 100644 +index 2e474479bd..3aa32f6555 100644 --- a/src/tiles/tile.cpp +++ b/src/tiles/tile.cpp -@@ -178,7 +178,17 @@ QRectF Tile::windowGeometry() const +@@ -177,7 +177,17 @@ QRectF Tile::windowGeometry() const effectiveMargins.setBottom(m_relativeGeometry.bottom() < 1.0 ? m_padding / 2.0 : m_padding); const auto geom = absoluteGeometry(); @@ -31,5 +31,5 @@ index 3c3ba61632..2a3f22a4b4 100644 QRectF Tile::maximizedWindowGeometry() const -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0010-Implement-core-panning-methods.patch b/kde-plasma/kwin/0010-Implement-core-panning-methods.patch index 98d62bd..d6efc4a 100644 --- a/kde-plasma/kwin/0010-Implement-core-panning-methods.patch +++ b/kde-plasma/kwin/0010-Implement-core-panning-methods.patch @@ -1,37 +1,8 @@ -From a782b7db8d28bf67650458356507a09698c0098f Mon Sep 17 00:00:00 2001 +From 1b0db2a7d0600ac1f1b33437fd43934133477b0e Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi -Date: Mon, 21 Nov 2022 15:31:57 -0500 -Subject: [PATCH 10/20] Implement core panning methods +Date: Mon, 19 Jan 2026 10:22:58 -0500 +Subject: [PATCH 10/21] Implement core panning methods -Introduce methods used to pan windows horizontally by a certain pixel -amount. Panning applies to all windows which belong to a specified -screen: - -- the main method is ~panWindows~, which iterates on all windows and -pans those that belong to the specified screen of the required amount. - -- there are 4 slots used to pan all windows on the current screen by -1/2 and 1/3 of its size left or right. These slots are accessible via -user actions - -- Finally, there is a method to ensure a given window is visible (this -slot is called upon client activation) - -Fix compilation - -screen() has been removed and replaced by some method that returns a pointer to a KWin::output; this may lead to some trouble - -Prevent focused panel to move everything - -[hyper-wide] Ensure selected window is visible - -this is weird; it should not be necessary - -stash with definition of panWindows - -[hyper-wide] Fix pan windows with fractional scaling - -Fix ensureVisible --- src/effect/effecthandler.cpp | 1 + src/placement.cpp | 75 ++++++++++++++++++++++++++++++++++++ @@ -41,10 +12,10 @@ Fix ensureVisible 5 files changed, 92 insertions(+) diff --git a/src/effect/effecthandler.cpp b/src/effect/effecthandler.cpp -index 84c45f62cf..2492f7ba22 100644 +index f592a27cde..41f27d9793 100644 --- a/src/effect/effecthandler.cpp +++ b/src/effect/effecthandler.cpp -@@ -779,6 +779,7 @@ void EffectsHandler::activateWindow(EffectWindow *effectWindow) +@@ -785,6 +785,7 @@ void EffectsHandler::activateWindow(EffectWindow *effectWindow) auto window = effectWindow->window(); if (window->isClient()) { Workspace::self()->activateWindow(window, true); @@ -53,20 +24,19 @@ index 84c45f62cf..2492f7ba22 100644 } diff --git a/src/placement.cpp b/src/placement.cpp -index 6c984282e5..7e68c8e108 100644 +index eeae4fc93b..820a9c9a59 100644 --- a/src/placement.cpp +++ b/src/placement.cpp -@@ -13,7 +13,9 @@ +@@ -11,6 +11,8 @@ + */ + #include "placement.h" ++#include "core/output.h" ++#include "core/outputbackend.h" #include "cursor.h" #include "options.h" -+#include "core/outputbackend.h" #include "rules.h" -+#include "core/output.h" - #include "virtualdesktops.h" - #include "window.h" - #include "workspace.h" -@@ -741,6 +743,79 @@ void Window::shrinkVertical() +@@ -772,6 +774,79 @@ void Window::shrinkVertical() } } @@ -81,20 +51,20 @@ index 6c984282e5..7e68c8e108 100644 + if ((!client->isOnCurrentDesktop()) || (client->isMinimized()) || (client->isOnAllDesktops()) || (!client->isMovable()) || (client->output() != output)) + continue; + // refactor usind client->isOnOutput -+ client->moveRelative(QPointF(pixels, 0 )); ++ client->moveRelative(QPointF(pixels, 0)); + } +} + -+ // TODO: -+ // find current screen with screens()->current() -+ // move only clients on current screen -+ // refactor this in a generic method and make the slots call it; -+ // genericmethod should look like -+ // -+ // slotPanWindows( int screen, int pixels, bool shiftActive) ++// TODO: ++// find current screen with screens()->current() ++// move only clients on current screen ++// refactor this in a generic method and make the slots call it; ++// genericmethod should look like ++// ++// slotPanWindows( int screen, int pixels, bool shiftActive) + -+ // The shift amount is given by the size of the window + 2*gapSize -+ // The size of the window + 2*gapsize should be the (width of the screen - 2*screenBorder - 2*gapSize)/2 ++// The shift amount is given by the size of the window + 2*gapSize ++// The size of the window + 2*gapsize should be the (width of the screen - 2*screenBorder - 2*gapSize)/2 + +void Workspace::slotPanWindowsHalfScreenRight() +{ @@ -128,7 +98,7 @@ index 6c984282e5..7e68c8e108 100644 + panWindows(currentOutput, -thirdWidth, false); +} + -+void Workspace::slotEnsureClientVisible( KWin::Window* activatedClient ) ++void Workspace::slotEnsureClientVisible(KWin::Window *activatedClient) +{ + // This also should be made screen-aware + if ((!activatedClient) || activatedClient->isDesktop() || activatedClient->isDock()) @@ -147,29 +117,29 @@ index 6c984282e5..7e68c8e108 100644 { if (!m_activeWindow) { diff --git a/src/useractions.cpp b/src/useractions.cpp -index 6e841d96cd..f60ec14a0d 100644 +index e49135c097..1de2f6a64e 100644 --- a/src/useractions.cpp +++ b/src/useractions.cpp -@@ -952,6 +952,14 @@ void Workspace::initShortcuts() - 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third2)); +@@ -881,6 +881,14 @@ void Workspace::initShortcuts() + 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third2), true); initShortcut("Window Quick Tile Right Third", i18n("Quick Tile Window to the Right Third"), - 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third3)); + 0, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Third3), true); + initShortcut("Pan Windows Right Half", i18n("Pan Windows to the right by half the screen"), -+ 0, &Workspace::slotPanWindowsHalfScreenRight); ++ 0, &Workspace::slotPanWindowsHalfScreenRight, true); + initShortcut("Pan Windows Left Half", i18n("Pan Windows to the left by half the screen"), -+ 0, &Workspace::slotPanWindowsHalfScreenLeft); ++ 0, &Workspace::slotPanWindowsHalfScreenLeft, true); + initShortcut("Pan Windows Right Third", i18n("Pan Windows to the right by third the screen"), -+ 0, &Workspace::slotPanWindowsThirdScreenRight); ++ 0, &Workspace::slotPanWindowsThirdScreenRight, true); + initShortcut("Pan Windows Left Third", i18n("Pan Windows to the left by third the screen"), -+ 0, &Workspace::slotPanWindowsThirdScreenLeft); ++ 0, &Workspace::slotPanWindowsThirdScreenLeft, true); initShortcut("Window Quick Tile Top", i18n("Quick Tile Window to the Top"), - Qt::META | Qt::Key_Up, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Top)); + Qt::META | Qt::Key_Up, std::bind(&Workspace::quickTileWindow, this, QuickTileFlag::Top), true); initShortcut("Window Quick Tile Bottom", i18n("Quick Tile Window to the Bottom"), diff --git a/src/workspace.cpp b/src/workspace.cpp -index bd64f4f248..6f0d1ff3e8 100644 +index 37f3ece9c0..28a6a33265 100644 --- a/src/workspace.cpp +++ b/src/workspace.cpp -@@ -177,6 +177,7 @@ void Workspace::init() +@@ -179,6 +179,7 @@ void Workspace::init() connect(options, &Options::configChanged, m_screenEdges.get(), &ScreenEdges::reconfigure); connect(VirtualDesktopManager::self(), &VirtualDesktopManager::layoutChanged, m_screenEdges.get(), &ScreenEdges::updateLayout); connect(this, &Workspace::windowActivated, m_screenEdges.get(), &ScreenEdges::checkBlocking); @@ -178,10 +148,10 @@ index bd64f4f248..6f0d1ff3e8 100644 connect(this, &Workspace::windowRemoved, m_focusChain.get(), &FocusChain::remove); connect(this, &Workspace::windowActivated, m_focusChain.get(), &FocusChain::setActiveWindow); diff --git a/src/workspace.h b/src/workspace.h -index 04fe2e0864..2f41dc8302 100644 +index 3cb421b1a6..fdbfd21c10 100644 --- a/src/workspace.h +++ b/src/workspace.h -@@ -522,6 +522,13 @@ public Q_SLOTS: +@@ -485,6 +485,13 @@ public Q_SLOTS: void slotWindowShrinkHorizontal(); void slotWindowShrinkVertical(); @@ -190,11 +160,11 @@ index 04fe2e0864..2f41dc8302 100644 + void slotPanWindowsHalfScreenLeft(); + void slotPanWindowsThirdScreenRight(); + void slotPanWindowsThirdScreenLeft(); -+ void slotEnsureClientVisible( KWin::Window* ); ++ void slotEnsureClientVisible(KWin::Window *); + void slotIncreaseWindowOpacity(); void slotLowerWindowOpacity(); -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0011-Remove-the-logic-for-tiles-on-different-screens.patch b/kde-plasma/kwin/0011-Remove-the-logic-for-tiles-on-different-screens.patch index 14fabbf..3b2bc2a 100644 --- a/kde-plasma/kwin/0011-Remove-the-logic-for-tiles-on-different-screens.patch +++ b/kde-plasma/kwin/0011-Remove-the-logic-for-tiles-on-different-screens.patch @@ -1,17 +1,17 @@ -From 243bf425dab979a150e2b18458b2643b4de58178 Mon Sep 17 00:00:00 2001 +From 7e2db80dfdff2e193cb90ddc893870e1fe62bd43 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Thu, 5 Jun 2025 22:23:24 -0400 -Subject: [PATCH 11/20] Remove the logic for tiles on different screens +Subject: [PATCH 11/21] Remove the logic for tiles on different screens --- src/window.cpp | 38 +------------------------------------- 1 file changed, 1 insertion(+), 37 deletions(-) diff --git a/src/window.cpp b/src/window.cpp -index 4eca4627dd..5ceea0c812 100644 +index 5acc277bf9..32376e6992 100644 --- a/src/window.cpp +++ b/src/window.cpp -@@ -3727,7 +3727,7 @@ void Window::handleQuickTileShortcut(QuickTileMode mode) +@@ -3615,7 +3615,7 @@ void Window::handleQuickTileShortcut(QuickTileMode mode) } else { // If the window is asked to be tiled in a screen corner, don't combine the new mode with the old one. QuickTileMode combined; @@ -20,7 +20,7 @@ index 4eca4627dd..5ceea0c812 100644 case QuickTileMode(QuickTileFlag::Left): case QuickTileMode(QuickTileFlag::Top): case QuickTileMode(QuickTileFlag::Right): -@@ -3737,42 +3737,6 @@ void Window::handleQuickTileShortcut(QuickTileMode mode) +@@ -3625,42 +3625,6 @@ void Window::handleQuickTileShortcut(QuickTileMode mode) default: combined = mode; } @@ -64,5 +64,5 @@ index 4eca4627dd..5ceea0c812 100644 } } -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0012-Implement-Incremental-wide-placement.patch b/kde-plasma/kwin/0012-Implement-Incremental-wide-placement.patch index 102899c..c438d3e 100644 --- a/kde-plasma/kwin/0012-Implement-Incremental-wide-placement.patch +++ b/kde-plasma/kwin/0012-Implement-Incremental-wide-placement.patch @@ -1,7 +1,7 @@ -From 0511ab9f21bc31b64a917030fef6c46f5060b971 Mon Sep 17 00:00:00 2001 +From b6c21222ff8eec9c3463b6f3c3619551d144c51a Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Sun, 28 Oct 2018 02:26:37 -0400 -Subject: [PATCH 12/20] Implement Incremental wide-placement +Subject: [PATCH 12/21] Implement Incremental wide-placement [hyper-wide] Fix placement with fractional scaling @@ -11,10 +11,10 @@ Subject: [PATCH 12/20] Implement Incremental wide-placement 1 file changed, 112 insertions(+), 37 deletions(-) diff --git a/src/placement.cpp b/src/placement.cpp -index 7e68c8e108..cd480901b5 100644 +index 820a9c9a59..f66ac8eb28 100644 --- a/src/placement.cpp +++ b/src/placement.cpp -@@ -162,13 +162,24 @@ std::optional Placement::placeSmart(const Window *window, cons +@@ -163,13 +163,24 @@ std::optional Placement::placeSmart(const Window *window, cons * with ideas from xfce. */ @@ -39,7 +39,7 @@ index 7e68c8e108..cd480901b5 100644 int x_optimal, y_optimal; int possible; VirtualDesktop *const desktop = window->isOnCurrentDesktop() ? VirtualDesktopManager::self()->currentDesktop() : window->desktops().front(); -@@ -178,46 +189,70 @@ std::optional Placement::placeSmart(const Window *window, cons +@@ -179,46 +190,70 @@ std::optional Placement::placeSmart(const Window *window, cons int basket; // temp holder // get the maximum allowed windows space @@ -124,7 +124,7 @@ index 7e68c8e108..cd480901b5 100644 // if windows overlap, calc the overall overlapping if ((cxl < xr) && (cxr > xl) && (cyt < yb) && (cyb > yt)) { xl = std::max(cxl, xl); -@@ -234,9 +269,13 @@ std::optional Placement::placeSmart(const Window *window, cons +@@ -235,9 +270,13 @@ std::optional Placement::placeSmart(const Window *window, cons } } } @@ -140,7 +140,7 @@ index 7e68c8e108..cd480901b5 100644 x_optimal = x; y_optimal = y; break; -@@ -245,22 +284,40 @@ std::optional Placement::placeSmart(const Window *window, cons +@@ -246,22 +285,40 @@ std::optional Placement::placeSmart(const Window *window, cons if (first_pass) { first_pass = false; min_overlap = overlap; @@ -183,7 +183,7 @@ index 7e68c8e108..cd480901b5 100644 // compare to the position of each client on the same desk for (auto l = workspace()->stackingOrder().constBegin(); l != workspace()->stackingOrder().constEnd(); ++l) { auto client = *l; -@@ -268,32 +325,44 @@ std::optional Placement::placeSmart(const Window *window, cons +@@ -269,32 +326,44 @@ std::optional Placement::placeSmart(const Window *window, cons continue; } @@ -238,7 +238,7 @@ index 7e68c8e108..cd480901b5 100644 if (possible - ch > y) { possible -= ch; -@@ -306,10 +375,10 @@ std::optional Placement::placeSmart(const Window *window, cons +@@ -307,10 +376,10 @@ std::optional Placement::placeSmart(const Window *window, cons continue; } @@ -253,7 +253,7 @@ index 7e68c8e108..cd480901b5 100644 // if not enough room to the left or right of the current tested client // determine the first non-overlapped y position -@@ -317,20 +386,26 @@ std::optional Placement::placeSmart(const Window *window, cons +@@ -318,20 +387,26 @@ std::optional Placement::placeSmart(const Window *window, cons possible = yb; } @@ -284,7 +284,7 @@ index 7e68c8e108..cd480901b5 100644 + return QPointF(x_optimal / scale, y_optimal / scale); } - QPoint Workspace::cascadeOffset(const QRectF &area) const + QPointF Workspace::cascadeOffset(const QRectF &area) const -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0013-Remove-wrap-around-when-switching-focus-horizontally.patch b/kde-plasma/kwin/0013-Remove-wrap-around-when-switching-focus-horizontally.patch index f73b2f3..91773ac 100644 --- a/kde-plasma/kwin/0013-Remove-wrap-around-when-switching-focus-horizontally.patch +++ b/kde-plasma/kwin/0013-Remove-wrap-around-when-switching-focus-horizontally.patch @@ -1,7 +1,7 @@ -From 326da58552445f2b267b2a748806dd97e9c6a6aa Mon Sep 17 00:00:00 2001 +From 3090f4850c54787af4eeb4698097a05f8dcbbac9 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Fri, 5 Apr 2019 22:23:10 -0400 -Subject: [PATCH 13/20] Remove wrap-around when switching focus horizontally +Subject: [PATCH 13/21] Remove wrap-around when switching focus horizontally Now, this is not a necessity, but more often than not I do not want to wrap around, especially if the desktop is stretched very wide @@ -10,10 +10,10 @@ wrap around, especially if the desktop is stretched very wide 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/src/useractions.cpp b/src/useractions.cpp -index f60ec14a0d..e92eb95292 100644 +index 1de2f6a64e..008a40fa4a 100644 --- a/src/useractions.cpp +++ b/src/useractions.cpp -@@ -1610,24 +1610,7 @@ void Workspace::switchWindow(Direction direction) +@@ -1523,24 +1523,7 @@ void Workspace::switchWindow(Direction direction) // Center of the active window QPoint curPos(window->x() + window->width() / 2, window->y() + window->height() / 2); @@ -40,5 +40,5 @@ index f60ec14a0d..e92eb95292 100644 bool Workspace::switchWindow(Window *window, Direction direction, QPoint curPos, VirtualDesktop *desktop) -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0014-Allow-windows-outside-left-right-screen-boundary.patch b/kde-plasma/kwin/0014-Allow-windows-outside-left-right-screen-boundary.patch index f02bed0..285399e 100644 --- a/kde-plasma/kwin/0014-Allow-windows-outside-left-right-screen-boundary.patch +++ b/kde-plasma/kwin/0014-Allow-windows-outside-left-right-screen-boundary.patch @@ -1,17 +1,17 @@ -From adccb3d9f6613d12b723ff5bd39cb0fdbbba65b5 Mon Sep 17 00:00:00 2001 +From 1787eed3893db456ca31f20d545c162cc278d57a Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Fri, 24 May 2019 09:33:47 +0200 -Subject: [PATCH 14/20] Allow windows outside left|right screen boundary +Subject: [PATCH 14/21] Allow windows outside left|right screen boundary --- src/window.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/window.cpp b/src/window.cpp -index 5ceea0c812..afde7610e6 100644 +index 32376e6992..1efe2b96f8 100644 --- a/src/window.cpp +++ b/src/window.cpp -@@ -4232,11 +4232,6 @@ void Window::checkWorkspacePosition(QRectF oldGeometry, const VirtualDesktop *ol +@@ -4118,11 +4118,6 @@ void Window::checkWorkspacePosition(QRectF oldGeometry, const VirtualDesktop *ol void Window::checkOffscreenPosition(QRectF *geom, const QRectF &screenArea) { @@ -24,5 +24,5 @@ index 5ceea0c812..afde7610e6 100644 geom->moveTop(screenArea.bottom() - screenArea.height() / 4); } else if (geom->bottom() < screenArea.top()) { -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0015-Adjust-output-detection-for-hyper-wide.patch b/kde-plasma/kwin/0015-Adjust-output-detection-for-hyper-wide.patch index a2f0fe1..c58d12d 100644 --- a/kde-plasma/kwin/0015-Adjust-output-detection-for-hyper-wide.patch +++ b/kde-plasma/kwin/0015-Adjust-output-detection-for-hyper-wide.patch @@ -1,7 +1,7 @@ -From d1afa2a57ba8d647559bf44b5cba8b3806b1c5cc Mon Sep 17 00:00:00 2001 +From 6c337033dabd85f920569295e0cb3d1dc707778b Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Sun, 30 Apr 2023 23:09:34 -0400 -Subject: [PATCH 15/20] Adjust output detection for hyper-wide +Subject: [PATCH 15/21] Adjust output detection for hyper-wide --- src/window.cpp | 3 ++- @@ -9,7 +9,7 @@ Subject: [PATCH 15/20] Adjust output detection for hyper-wide 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/window.cpp b/src/window.cpp -index afde7610e6..6442eb44b1 100644 +index 1efe2b96f8..74d55ee7aa 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -246,7 +246,8 @@ bool Window::isOnActiveOutput() const @@ -23,10 +23,10 @@ index afde7610e6..6442eb44b1 100644 Shadow *Window::shadow() const diff --git a/src/workspace.cpp b/src/workspace.cpp -index 6f0d1ff3e8..b58d5b151f 100644 +index 28a6a33265..bf799837d4 100644 --- a/src/workspace.cpp +++ b/src/workspace.cpp -@@ -1045,7 +1045,9 @@ Output *Workspace::outputAt(const QPointF &pos) const +@@ -1064,7 +1064,9 @@ Output *Workspace::outputAt(const QPointF &pos) const for (Output *output : std::as_const(m_outputs)) { const QRectF geo = output->geometry(); @@ -38,5 +38,5 @@ index 6f0d1ff3e8..b58d5b151f 100644 std::clamp(pos.y(), geo.y(), geo.y() + geo.height() - 1)); -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0016-Introduce-the-Pan-helper-effect.patch b/kde-plasma/kwin/0016-Introduce-the-Pan-helper-effect.patch index a2c06db..2cc073c 100644 --- a/kde-plasma/kwin/0016-Introduce-the-Pan-helper-effect.patch +++ b/kde-plasma/kwin/0016-Introduce-the-Pan-helper-effect.patch @@ -1,7 +1,7 @@ -From ca4cd3cc88680e912752d05ad9863ecbeaf1bf85 Mon Sep 17 00:00:00 2001 +From 03b7611d682f50df3eda816943574b5b304a0d19 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Thu, 17 Jun 2021 23:00:47 -0400 -Subject: [PATCH 16/20] Introduce the Pan helper effect +Subject: [PATCH 16/21] Introduce the Pan helper effect Fix installation of panhelper effect @@ -17,10 +17,10 @@ Fix panhelper effect create mode 100644 src/plugins/panhelper/package/metadata.json diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt -index 794522aee2..173705f3f7 100644 +index fdaa939458..9c93580c28 100644 --- a/src/plugins/CMakeLists.txt +++ b/src/plugins/CMakeLists.txt -@@ -84,6 +84,7 @@ add_subdirectory(mousemark) +@@ -83,6 +83,7 @@ add_subdirectory(mousemark) add_subdirectory(nightlight) add_subdirectory(outputlocator) add_subdirectory(overview) @@ -192,5 +192,5 @@ index 0000000000..14f7d37882 + "X-Plasma-API": "javascript" +} -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0017-Remove-boundary-checking-in-the-position-effect.patch b/kde-plasma/kwin/0017-Remove-boundary-checking-in-the-position-effect.patch index 9261b98..cde7bef 100644 --- a/kde-plasma/kwin/0017-Remove-boundary-checking-in-the-position-effect.patch +++ b/kde-plasma/kwin/0017-Remove-boundary-checking-in-the-position-effect.patch @@ -1,7 +1,7 @@ -From 73d06f88f2dd16738574c578aad7a72054fadd8f Mon Sep 17 00:00:00 2001 +From e69a930fb4b1076db5db12c6baa0c6bc4979b7aa Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Sat, 22 Oct 2022 22:03:42 -0400 -Subject: [PATCH 17/20] Remove boundary checking in the position effect +Subject: [PATCH 17/21] Remove boundary checking in the position effect In order for the pan-helper effect to work, we need to drop the boundary checking in the position effect. @@ -13,7 +13,7 @@ might not like the fact that windows have negative coordinates. 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/src/effect/animationeffect.cpp b/src/effect/animationeffect.cpp -index 621da89a9b..409d09db51 100644 +index eac1c038d9..100778add5 100644 --- a/src/effect/animationeffect.cpp +++ b/src/effect/animationeffect.cpp @@ -570,18 +570,14 @@ void AnimationEffect::paintWindow(const RenderTarget &renderTarget, const Render @@ -62,5 +62,5 @@ index 621da89a9b..409d09db51 100644 r = window->expandedGeometry().toRect(); rects.push_back(r.translated(x[0], y[0])); -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0018-Add-paint_screen-flag-to-prevent-artifacts.patch b/kde-plasma/kwin/0018-Add-paint_screen-flag-to-prevent-artifacts.patch index 6f400f5..bbbd05d 100644 --- a/kde-plasma/kwin/0018-Add-paint_screen-flag-to-prevent-artifacts.patch +++ b/kde-plasma/kwin/0018-Add-paint_screen-flag-to-prevent-artifacts.patch @@ -1,7 +1,7 @@ -From 24fc0c2cf458e5a9e4b27310862b21758f9a71e6 Mon Sep 17 00:00:00 2001 +From 3f3b8185db5d0fd5a16b99b543157b0a30d5432d Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Mon, 28 Jun 2021 23:40:39 -0400 -Subject: [PATCH 18/20] Add paint_screen flag to prevent artifacts +Subject: [PATCH 18/21] Add paint_screen flag to prevent artifacts As far as I understand I am abusing the Position effect; there are some assumption in the original implementation that do not work with @@ -12,7 +12,7 @@ duration of the effect. 1 file changed, 6 insertions(+) diff --git a/src/effect/animationeffect.cpp b/src/effect/animationeffect.cpp -index 409d09db51..445fc4cd1f 100644 +index 100778add5..bbb821ebfc 100644 --- a/src/effect/animationeffect.cpp +++ b/src/effect/animationeffect.cpp @@ -475,6 +475,10 @@ void AnimationEffect::prePaintWindow(EffectWindow *w, WindowPrePaintData &data, @@ -36,5 +36,5 @@ index 409d09db51..445fc4cd1f 100644 } case Rotation: { -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0019-Allow-loading-the-keymap-from-a-file.patch b/kde-plasma/kwin/0019-Allow-loading-the-keymap-from-a-file.patch index 2e1478f..428120d 100644 --- a/kde-plasma/kwin/0019-Allow-loading-the-keymap-from-a-file.patch +++ b/kde-plasma/kwin/0019-Allow-loading-the-keymap-from-a-file.patch @@ -1,7 +1,7 @@ -From 686789f83acd0bc99e91c1e1dfaf768284556c09 Mon Sep 17 00:00:00 2001 +From fb07a269bbb7a0ffcfee88e0052be512c13e4f9f Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Tue, 12 Nov 2024 22:41:42 -0500 -Subject: [PATCH 19/20] Allow loading the keymap from a file +Subject: [PATCH 19/21] Allow loading the keymap from a file Make this right --- @@ -9,10 +9,10 @@ Make this right 1 file changed, 9 insertions(+) diff --git a/src/xkb.cpp b/src/xkb.cpp -index 0cf6ac5816..3e8a6a0d72 100644 +index 0e26b4e307..89e32bf7a6 100644 --- a/src/xkb.cpp +++ b/src/xkb.cpp -@@ -580,6 +580,15 @@ xkb_keymap *Xkb::loadKeymapFromConfig() +@@ -583,6 +583,15 @@ xkb_keymap *Xkb::loadKeymapFromConfig() if (!m_configGroup.isValid()) { return nullptr; } @@ -29,5 +29,5 @@ index 0cf6ac5816..3e8a6a0d72 100644 const QByteArray layout = m_configGroup.readEntry("LayoutList").toLatin1(); const QByteArray variant = m_configGroup.readEntry("VariantList").toLatin1(); -- -2.49.1 +2.51.2 diff --git a/kde-plasma/kwin/0021-Fix-erratic-margin-behavior-on-maximize.patch b/kde-plasma/kwin/0020-Fix-erratic-margin-behavior-on-maximize.patch similarity index 78% rename from kde-plasma/kwin/0021-Fix-erratic-margin-behavior-on-maximize.patch rename to kde-plasma/kwin/0020-Fix-erratic-margin-behavior-on-maximize.patch index 826a11b..5ffed35 100644 --- a/kde-plasma/kwin/0021-Fix-erratic-margin-behavior-on-maximize.patch +++ b/kde-plasma/kwin/0020-Fix-erratic-margin-behavior-on-maximize.patch @@ -1,7 +1,7 @@ -From 0d1703fde268e625d7ed91f32bfc3da8c9f9f505 Mon Sep 17 00:00:00 2001 +From d16d05653cd9d7e1381bab47ec63da8831194585 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Wed, 12 Nov 2025 15:05:32 -0500 -Subject: [PATCH 21/21] Fix erratic margin behavior on maximize +Subject: [PATCH 20/21] Fix erratic margin behavior on maximize Possibly this should be squashed back --- @@ -10,10 +10,10 @@ Possibly this should be squashed back 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tiles/tile.cpp b/src/tiles/tile.cpp -index 2a3f22a4b4..97ccc4e063 100644 +index 3aa32f6555..6dc2f1a756 100644 --- a/src/tiles/tile.cpp +++ b/src/tiles/tile.cpp -@@ -187,8 +187,7 @@ QRectF Tile::windowGeometry() const +@@ -186,8 +186,7 @@ QRectF Tile::windowGeometry() const } else if (quickTileMode() & QuickTileFlag::Bottom) { margins += QMarginsF(0,m_padding,0,0); } @@ -24,10 +24,10 @@ index 2a3f22a4b4..97ccc4e063 100644 QRectF Tile::maximizedWindowGeometry() const diff --git a/src/workspace.cpp b/src/workspace.cpp -index e531a74585..a96a941614 100644 +index bf799837d4..5011f51771 100644 --- a/src/workspace.cpp +++ b/src/workspace.cpp -@@ -2282,6 +2282,7 @@ QRectF Workspace::clientArea(clientAreaOption opt, const Output *output, const V +@@ -2304,6 +2304,7 @@ QRectF Workspace::clientArea(clientAreaOption opt, const Output *output, const V switch (opt) { case MaximizeArea: @@ -36,5 +36,5 @@ index e531a74585..a96a941614 100644 if (auto desktopIt = m_screenAreas.constFind(desktop); desktopIt != m_screenAreas.constEnd()) { if (auto outputIt = desktopIt->constFind(output); outputIt != desktopIt->constEnd()) { -- -2.51.0 +2.51.2 diff --git a/kde-plasma/kwin/0020-temporary-build-fix.patch b/kde-plasma/kwin/0020-temporary-build-fix.patch deleted file mode 100644 index fbdd7a0..0000000 --- a/kde-plasma/kwin/0020-temporary-build-fix.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4c7870369fc78bd803febe19ee8ee8b95d988d72 Mon Sep 17 00:00:00 2001 -From: Jacopo De Simoi -Date: Sat, 31 May 2025 11:30:10 -0400 -Subject: [PATCH 20/20] temporary build fix - ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f31cc8e413..bec737bd27 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -202,7 +202,7 @@ else() - set(HAVE_WL_DISPLAY_SET_DEFAULT_MAX_BUFFER_SIZE 0) - endif() - if (Wayland_VERSION VERSION_GREATER_EQUAL 1.23.90) -- set(HAVE_WL_FIXES 1) -+ set(HAVE_WL_FIXES 0) - else() - set(HAVE_WL_FIXES 0) - endif() --- -2.49.1 - diff --git a/kde-plasma/kwin/0021-Enable-libinput-plugin-system.patch b/kde-plasma/kwin/0021-Enable-libinput-plugin-system.patch new file mode 100644 index 0000000..f98e321 --- /dev/null +++ b/kde-plasma/kwin/0021-Enable-libinput-plugin-system.patch @@ -0,0 +1,26 @@ +From e21302850a19f39c83aad460a731b192ace4eefe Mon Sep 17 00:00:00 2001 +From: Jacopo De Simoi +Date: Tue, 20 Jan 2026 15:43:04 -0500 +Subject: [PATCH 21/21] Enable libinput plugin system + +I need this to fix some quirky behaviour of one of my mice +--- + src/backends/libinput/context.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/backends/libinput/context.cpp b/src/backends/libinput/context.cpp +index ae0cf02e55..264eaaff7b 100644 +--- a/src/backends/libinput/context.cpp ++++ b/src/backends/libinput/context.cpp +@@ -49,6 +49,8 @@ Context::Context(Session *session, std::unique_ptr &&udev) + , m_suspended(false) + , m_udev(std::move(udev)) + { ++ libinput_plugin_system_append_default_paths(m_libinput); ++ libinput_plugin_system_load_plugins(m_libinput, LIBINPUT_PLUGIN_SYSTEM_FLAG_NONE); + libinput_log_set_priority(m_libinput, LIBINPUT_LOG_PRIORITY_DEBUG); + libinput_log_set_handler(m_libinput, &libinputLogHandler); + } +-- +2.51.2 +