Add kde patches

The nixpkgs patch is to clear out a conflict with a patch that's applied
to plasma-workspace by nixpkgs
This commit is contained in:
Toast 2025-07-04 22:31:07 +02:00
parent fd0f27145a
commit 98f9b3a8fc
23 changed files with 7818 additions and 0 deletions

View file

@ -0,0 +1,7 @@
Plasma 6.5.0:
Pr 3612 https://invent.kde.org/plasma/kwin/-/merge_requests/3612
Pr 7823 https://invent.kde.org/plasma/kwin/-/merge_requests/7823
Plasma 6.4.2:
Pr 7822 https://invent.kde.org/plasma/kwin/-/merge_requests/7822
Pr 7829 https://invent.kde.org/plasma/kwin/-/merge_requests/7829

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,40 @@
From 3ac297b99540eae81568edca1e550ca7d1d6c01f Mon Sep 17 00:00:00 2001
From: Ismael Asensio <isma.af@gmail.com>
Date: Tue, 24 Jun 2025 17:08:00 +0200
Subject: [PATCH] plugins/fadingpopups: Blacklist spectacle popup menus from
fading effect
Spectacle can trigger a screenshot from a popup menu. This menu needs
to get hidden immediately with no effects, to avoid appearing on the
screenshot.
BUG: 505803
FIXED-IN: 6.4.2
(cherry picked from commit 99f6418e3c2e044eb1f4e8bedcdccac55f1a01d4)
Co-authored-by: Ismael Asensio <isma.af@gmail.com>
---
src/plugins/fadingpopups/package/contents/code/main.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/plugins/fadingpopups/package/contents/code/main.js b/src/plugins/fadingpopups/package/contents/code/main.js
index f0764b42ac6..7c00640ae8f 100644
--- a/src/plugins/fadingpopups/package/contents/code/main.js
+++ b/src/plugins/fadingpopups/package/contents/code/main.js
@@ -17,7 +17,10 @@ var blacklist = [
// The lockscreen isn't a popup window
"kscreenlocker_greet kscreenlocker_greet",
// KDE Plasma splash screen has to be animated only by the login effect.
- "ksplashqml ksplashqml"
+ "ksplashqml ksplashqml",
+ // Spectacle can trigger a screenshot from a popup menu
+ "spectacle org.kde.spectacle",
+ "spectacle spectacle",
];
function isPopupWindow(window) {
--
GitLab

View file

@ -0,0 +1,26 @@
From a1868942fbc2ad5de4c053dd17335dff34d81779 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Wed, 25 Jun 2025 14:10:18 +0300
Subject: [PATCH] plugins/login: Reduce animation duration
This makes the startup feel a bit faster.
---
src/plugins/login/package/contents/code/main.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/plugins/login/package/contents/code/main.js b/src/plugins/login/package/contents/code/main.js
index 7f849a6e2e6..e3ad0b76c07 100644
--- a/src/plugins/login/package/contents/code/main.js
+++ b/src/plugins/login/package/contents/code/main.js
@@ -11,7 +11,7 @@
"use strict";
var loginEffect = {
- duration: animationTime(1000),
+ duration: animationTime(500),
isFadeToBlack: false,
loadConfig: function () {
loginEffect.isFadeToBlack = effect.readConfig("FadeToBlack", false);
--
GitLab

View file

@ -0,0 +1,85 @@
From 4ddb4a23d5f453cf890c9f1b1aa5429150991db3 Mon Sep 17 00:00:00 2001
From: David Redondo <kde@david-redondo.de>
Date: Thu, 26 Jun 2025 17:00:07 +0200
Subject: [PATCH] scene: Skip visibility check for the Item itself in
framePainted
Fixes offscreen rendering and window thumbnails for hidden windows
not udpating.
Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
---
src/scene/item.cpp | 9 +++++----
src/scene/item.h | 2 +-
src/scene/rootitem.cpp | 9 ---------
src/scene/rootitem.h | 2 --
4 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/src/scene/item.cpp b/src/scene/item.cpp
index 2637a131dbd..eb2b6b46977 100644
--- a/src/scene/item.cpp
+++ b/src/scene/item.cpp
@@ -648,12 +648,13 @@ void Item::removeEffect()
void Item::framePainted(Output *output, OutputFrame *frame, std::chrono::milliseconds timestamp)
{
- if (!isVisible() || workspace()->outputAt(mapToScene(boundingRect()).center()) != output) {
- return;
- }
+ // The visibility of the item itself is not checked here to be able to paint hidden items for
+ // things like screncasts or thumbnails
handleFramePainted(output, frame, timestamp);
for (const auto child : std::as_const(m_childItems)) {
- child->framePainted(output, frame, timestamp);
+ if (child->explicitVisible() && workspace()->outputAt(child->mapToScene(child->boundingRect()).center()) == output) {
+ child->framePainted(output, frame, timestamp);
+ }
}
}
diff --git a/src/scene/item.h b/src/scene/item.h
index acb29994328..d42b32abf7b 100644
--- a/src/scene/item.h
+++ b/src/scene/item.h
@@ -144,7 +144,7 @@ public:
void addEffect();
void removeEffect();
- virtual void framePainted(Output *output, OutputFrame *frame, std::chrono::milliseconds timestamp);
+ void framePainted(Output *output, OutputFrame *frame, std::chrono::milliseconds timestamp);
bool isAncestorOf(const Item *item) const;
diff --git a/src/scene/rootitem.cpp b/src/scene/rootitem.cpp
index fe0cecc76e3..466a25ce828 100644
--- a/src/scene/rootitem.cpp
+++ b/src/scene/rootitem.cpp
@@ -14,13 +14,4 @@ RootItem::RootItem(Scene *scene)
setScene(scene);
}
-void RootItem::framePainted(Output *output, OutputFrame *frame, std::chrono::milliseconds timestamp)
-{
- handleFramePainted(output, frame, timestamp);
- const auto children = childItems();
- for (const auto child : children) {
- child->framePainted(output, frame, timestamp);
- }
-}
-
} // namespace KWin
diff --git a/src/scene/rootitem.h b/src/scene/rootitem.h
index 45fa1359c84..43b3cdb90e9 100644
--- a/src/scene/rootitem.h
+++ b/src/scene/rootitem.h
@@ -20,8 +20,6 @@ class KWIN_EXPORT RootItem : public Item
public:
explicit RootItem(Scene *scene);
-
- void framePainted(Output *output, OutputFrame *frame, std::chrono::milliseconds timestamp) override;
};
} // namespace KWin
--
GitLab