kde-plasma/plasma-workspace: 5.21.5 version bump

Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner
2021-05-09 14:10:10 +02:00
parent d61e975137
commit c7bb7dca8a
6 changed files with 661 additions and 0 deletions
+1
View File
@@ -1,2 +1,3 @@
DIST plasma-workspace-5.20.5.tar.xz 9041964 BLAKE2B b0bef6f74999d503064d55fdc670bd320a141c4619c0cfb7491158485096dfd636ad31dfbb4e9d7be3d86eca7b52bce97acb7aefe57377cce9e6a5ce1ad3cb9b SHA512 bd63502fdaa79deb380d254a3649a2810e4b2c6e748e9a38606f561cc46573a6e75631584a340a220742135f4682f9deea28c78b7fe4ad88ee6491f190b3212f
DIST plasma-workspace-5.21.4.tar.xz 9714792 BLAKE2B 8ada47faf866c9ef2fd16a7925e393dbfcb15fa54e693b290ee61443846b1e11e110969408821b98edba570ced1168d786ec54e4e33d99221077dd24744aefb1 SHA512 80f4b55ce982c3e2d0761cba1d4f14659b2ef9ce9f6d362c4439c5ee404ea7bc9e458cfbfd7e37f9ff67b53cc02f1aa3c62c7b7ad9fcf57646ad59e9f60b94c5
DIST plasma-workspace-5.21.5.tar.xz 9724000 BLAKE2B 2688c8aacd4e5584bb2660a287563aa683af4d469aad45f3521d31ec569d403204cceeb167062a9d8dfe591972db3758d5f46c21ca7c30453cd6740f3e3b470a SHA512 6918c1a29e977ac7f3ebf6ac7308f20f20712db96bf10599f3372987509630aa2ca8bc6adf0b1af4e543ccd2a2001e38ce02d759d25f09588c7c1aaa358af1b4
@@ -0,0 +1,45 @@
From e8e17c5ef8734fa56a78405e32277568e4e1095e Mon Sep 17 00:00:00 2001
From: Nate Graham <nate@kde.org>
Date: Thu, 22 Apr 2021 08:38:18 -0600
Subject: [PATCH] [ksmserver] Remove default shortcuts for "Without
Confirmation" actions
These actions bypass the user setting for whether or not to show the
logout screen and always log out/reboot/etc. immediately. Because they
have default keyboard shortcuts, they can be triggered by accident and
cause unexpected logouts/reboots/etc.
BUG: 435954
FIXED-IN: 5.22
---
ksmserver/server.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/ksmserver/server.cpp b/ksmserver/server.cpp
index ac9da9f09..6f3179fb9 100644
--- a/ksmserver/server.cpp
+++ b/ksmserver/server.cpp
@@ -880,17 +880,17 @@ void KSMServer::setupShortcuts()
a = actionCollection->addAction(QStringLiteral("Log Out Without Confirmation"));
a->setText(i18n("Log Out Without Confirmation"));
- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_Delete);
+ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence());
connect(a, &QAction::triggered, this, &KSMServer::logoutWithoutConfirmation);
a = actionCollection->addAction(QStringLiteral("Halt Without Confirmation"));
a->setText(i18n("Halt Without Confirmation"));
- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_PageDown);
+ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence());
connect(a, &QAction::triggered, this, &KSMServer::haltWithoutConfirmation);
a = actionCollection->addAction(QStringLiteral("Reboot Without Confirmation"));
a->setText(i18n("Reboot Without Confirmation"));
- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_PageUp);
+ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence());
connect(a, &QAction::triggered, this, &KSMServer::rebootWithoutConfirmation);
}
}
--
GitLab
@@ -0,0 +1,27 @@
From 1cf02aad96bfe650a1f4d1465ae15234205fb061 Mon Sep 17 00:00:00 2001
From: Bharadwaj Raju <bharadwaj.raju777@protonmail.com>
Date: Mon, 26 Apr 2021 18:47:51 +0000
Subject: [PATCH] Load panelOpacity from config parent, not from config
BUG: 434285
FIXED-IN: 5.22
---
shell/panelview.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/shell/panelview.cpp b/shell/panelview.cpp
index 5ed743024..4533e856f 100644
--- a/shell/panelview.cpp
+++ b/shell/panelview.cpp
@@ -633,7 +633,7 @@ void PanelView::restore()
// the place for this config key is changed in Plasma 5.9
// Do NOT use readConfigValueWithFallBack
setVisibilityMode((VisibilityMode)panelConfig.parent().readEntry<int>("panelVisibility", panelConfig.readEntry<int>("panelVisibility", (int)NormalPanel)));
- setOpacityMode((OpacityMode)readConfigValueWithFallBack("panelOpacity", PanelView::OpacityMode::Adaptive));
+ setOpacityMode((OpacityMode)config().parent().readEntry<int>("panelOpacity", configDefaults().parent().readEntry<int>("panelOpacity", PanelView::OpacityMode::Adaptive)));
m_initCompleted = true;
resizePanel();
positionPanel();
--
GitLab
@@ -0,0 +1,376 @@
From 7db8d5ee551f30576588d31470fe287b6ad2adcd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niccol=C3=B2=20Venerandi?= <niccolo@venerandi.com>
Date: Mon, 1 Mar 2021 22:14:43 +0000
Subject: [PATCH] Add support for adaptive opacity panels
Co-authored-by: Jan Blackquill <uhhadd@gmail.com>
---
libtaskmanager/taskfilterproxymodel.cpp | 26 ++++++++++++++++++
libtaskmanager/taskfilterproxymodel.h | 19 ++++++++++++++
libtaskmanager/tasksmodel.cpp | 11 ++++++++
libtaskmanager/tasksmodel.h | 19 ++++++++++++++
shell/panelconfigview.cpp | 11 ++++++++
shell/panelconfigview.h | 5 ++++
shell/panelview.cpp | 35 +++++++++++++++++++++++++
shell/panelview.h | 28 ++++++++++++++++++++
8 files changed, 154 insertions(+)
diff --git a/libtaskmanager/taskfilterproxymodel.cpp b/libtaskmanager/taskfilterproxymodel.cpp
index 37a3076fd..6bb27537a 100644
--- a/libtaskmanager/taskfilterproxymodel.cpp
+++ b/libtaskmanager/taskfilterproxymodel.cpp
@@ -40,6 +40,7 @@ public:
bool filterByScreen = false;
bool filterByActivity = false;
bool filterNotMinimized = false;
+ bool filterNotMaximized = false;
bool filterSkipTaskbar = true;
bool filterSkipPager = false;
@@ -185,6 +186,22 @@ void TaskFilterProxyModel::setFilterNotMinimized(bool filter)
}
}
+bool TaskFilterProxyModel::filterNotMaximized() const
+{
+ return d->filterNotMaximized;
+}
+
+void TaskFilterProxyModel::setFilterNotMaximized(bool filter)
+{
+ if (d->filterNotMaximized != filter) {
+ d->filterNotMaximized = filter;
+
+ invalidateFilter();
+
+ emit filterNotMaximizedChanged();
+ }
+}
+
bool TaskFilterProxyModel::filterSkipTaskbar() const
{
return d->filterSkipTaskbar;
@@ -301,6 +318,15 @@ bool TaskFilterProxyModel::acceptsRow(int sourceRow) const
}
}
+ // Filter not maximized.
+ if (d->filterNotMaximized) {
+ bool isMaximized = sourceIdx.data(AbstractTasksModel::IsMaximized).toBool();
+
+ if (!isMaximized) {
+ return false;
+ }
+ }
+
return true;
}
diff --git a/libtaskmanager/taskfilterproxymodel.h b/libtaskmanager/taskfilterproxymodel.h
index 7ad2cb9ce..88ba3adab 100644
--- a/libtaskmanager/taskfilterproxymodel.h
+++ b/libtaskmanager/taskfilterproxymodel.h
@@ -52,6 +52,7 @@ class TASKMANAGER_EXPORT TaskFilterProxyModel : public QSortFilterProxyModel, pu
Q_PROPERTY(bool filterByScreen READ filterByScreen WRITE setFilterByScreen NOTIFY filterByScreenChanged)
Q_PROPERTY(bool filterByActivity READ filterByActivity WRITE setFilterByActivity NOTIFY filterByActivityChanged)
Q_PROPERTY(bool filterNotMinimized READ filterNotMinimized WRITE setFilterNotMinimized NOTIFY filterNotMinimizedChanged)
+ Q_PROPERTY(bool filterNotMaximized READ filterNotMaximized WRITE setFilterNotMaximized NOTIFY filterNotMaximizedChanged)
Q_PROPERTY(bool filterSkipTaskbar READ filterSkipTaskbar WRITE setFilterSkipTaskbar NOTIFY filterSkipTaskbarChanged)
Q_PROPERTY(bool filterSkipPager READ filterSkipPager WRITE setFilterSkipPager NOTIFY filterSkipPagerChanged)
@@ -212,6 +213,23 @@ public:
**/
void setFilterNotMinimized(bool filter);
+ /**
+ * Whether non-maximized tasks should be filtered. Defaults to
+ * @c false.
+ *
+ * @see setFilterNotMaximized
+ * @returns @c true if non-maximized tasks should be filtered.
+ **/
+ bool filterNotMaximized() const;
+
+ /**
+ * Set whether non-maximized tasks should be filtered.
+ *
+ * @see filterNotMaximized
+ * @param filter Whether non-maximized tasks should be filtered.
+ **/
+ void setFilterNotMaximized(bool filter);
+
/**
* Whether tasks which should be omitted from 'task bars' should be
* filtered. Defaults to @c true.
@@ -285,6 +303,7 @@ Q_SIGNALS:
void filterByScreenChanged() const;
void filterByActivityChanged() const;
void filterNotMinimizedChanged() const;
+ void filterNotMaximizedChanged() const;
void filterSkipTaskbarChanged() const;
void filterSkipPagerChanged() const;
void demandingAttentionSkipsFiltersChanged() const;
diff --git a/libtaskmanager/tasksmodel.cpp b/libtaskmanager/tasksmodel.cpp
index c6e66926b..11eb53fdf 100644
--- a/libtaskmanager/tasksmodel.cpp
+++ b/libtaskmanager/tasksmodel.cpp
@@ -302,6 +302,7 @@ void TasksModel::Private::initModels()
QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterByScreenChanged, q, &TasksModel::filterByScreenChanged);
QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterByActivityChanged, q, &TasksModel::filterByActivityChanged);
QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterNotMinimizedChanged, q, &TasksModel::filterNotMinimizedChanged);
+ QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterNotMaximizedChanged, q, &TasksModel::filterNotMaximizedChanged);
groupingProxyModel = new TaskGroupingProxyModel(q);
groupingProxyModel->setSourceModel(filterProxyModel);
@@ -1152,6 +1153,16 @@ void TasksModel::setFilterNotMinimized(bool filter)
d->filterProxyModel->setFilterNotMinimized(filter);
}
+bool TasksModel::filterNotMaximized() const
+{
+ return d->filterProxyModel->filterNotMaximized();
+}
+
+void TasksModel::setFilterNotMaximized(bool filter)
+{
+ d->filterProxyModel->setFilterNotMaximized(filter);
+}
+
TasksModel::SortMode TasksModel::sortMode() const
{
return d->sortMode;
diff --git a/libtaskmanager/tasksmodel.h b/libtaskmanager/tasksmodel.h
index 18e3d9bb4..8c84012d0 100644
--- a/libtaskmanager/tasksmodel.h
+++ b/libtaskmanager/tasksmodel.h
@@ -73,6 +73,7 @@ class TASKMANAGER_EXPORT TasksModel : public QSortFilterProxyModel, public Abstr
Q_PROPERTY(bool filterByScreen READ filterByScreen WRITE setFilterByScreen NOTIFY filterByScreenChanged)
Q_PROPERTY(bool filterByActivity READ filterByActivity WRITE setFilterByActivity NOTIFY filterByActivityChanged)
Q_PROPERTY(bool filterNotMinimized READ filterNotMinimized WRITE setFilterNotMinimized NOTIFY filterNotMinimizedChanged)
+ Q_PROPERTY(bool filterNotMaximized READ filterNotMaximized WRITE setFilterNotMaximized NOTIFY filterNotMaximized)
Q_PROPERTY(SortMode sortMode READ sortMode WRITE setSortMode NOTIFY sortModeChanged)
Q_PROPERTY(bool separateLaunchers READ separateLaunchers WRITE setSeparateLaunchers NOTIFY separateLaunchersChanged)
@@ -295,6 +296,23 @@ public:
**/
void setFilterNotMinimized(bool filter);
+ /**
+ * Whether non-maximized tasks should be filtered. Defaults to
+ * @c false.
+ *
+ * @see setFilterNotMaximized
+ * @returns @c true if non-maximized tasks should be filtered.
+ **/
+ bool filterNotMaximized() const;
+
+ /**
+ * Set whether non-maximized tasks should be filtered.
+ *
+ * @see filterNotMaximized
+ * @param filter Whether non-maximized tasks should be filtered.
+ **/
+ void setFilterNotMaximized(bool filter);
+
/**
* The sort mode used in sorting tasks. Defaults to SortAlpha.
*
@@ -848,6 +866,7 @@ Q_SIGNALS:
void filterByScreenChanged() const;
void filterByActivityChanged() const;
void filterNotMinimizedChanged() const;
+ void filterNotMaximizedChanged() const;
void sortModeChanged() const;
void separateLaunchersChanged() const;
void launchInPlaceChanged() const;
diff --git a/shell/panelconfigview.cpp b/shell/panelconfigview.cpp
index a331c0bb2..5637f3233 100644
--- a/shell/panelconfigview.cpp
+++ b/shell/panelconfigview.cpp
@@ -289,6 +289,17 @@ PanelView::VisibilityMode PanelConfigView::visibilityMode() const
return m_panelView->visibilityMode();
}
+void PanelConfigView::setOpacityMode(PanelView::OpacityMode mode)
+{
+ m_panelView->setOpacityMode(mode);
+ emit opacityModeChanged();
+}
+
+PanelView::OpacityMode PanelConfigView::opacityMode() const
+{
+ return m_panelView->opacityMode();
+}
+
Plasma::FrameSvg::EnabledBorders PanelConfigView::enabledBorders() const
{
return m_enabledBorders;
diff --git a/shell/panelconfigview.h b/shell/panelconfigview.h
index 8e0abd314..db2af6bf9 100644
--- a/shell/panelconfigview.h
+++ b/shell/panelconfigview.h
@@ -51,6 +51,7 @@ class PanelConfigView : public PlasmaQuick::ConfigView
{
Q_OBJECT
Q_PROPERTY(PanelView::VisibilityMode visibilityMode READ visibilityMode WRITE setVisibilityMode NOTIFY visibilityModeChanged)
+ Q_PROPERTY(PanelView::OpacityMode opacityMode READ opacityMode WRITE setOpacityMode NOTIFY opacityModeChanged)
Q_PROPERTY(Plasma::FrameSvg::EnabledBorders enabledBorders READ enabledBorders NOTIFY enabledBordersChanged)
public:
@@ -62,6 +63,9 @@ public:
PanelView::VisibilityMode visibilityMode() const;
void setVisibilityMode(PanelView::VisibilityMode mode);
+ PanelView::OpacityMode opacityMode() const;
+ void setOpacityMode(PanelView::OpacityMode mode);
+
Plasma::FrameSvg::EnabledBorders enabledBorders() const;
protected:
@@ -84,6 +88,7 @@ private Q_SLOTS:
Q_SIGNALS:
void visibilityModeChanged();
+ void opacityModeChanged();
void enabledBordersChanged();
private:
diff --git a/shell/panelview.cpp b/shell/panelview.cpp
index 4654a7a72..a699cc84c 100644
--- a/shell/panelview.cpp
+++ b/shell/panelview.cpp
@@ -64,6 +64,7 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent
, m_alignment(Qt::AlignLeft)
, m_corona(corona)
, m_visibilityMode(NormalPanel)
+ , m_opacityMode(Adaptive)
, m_backgroundHints(Plasma::Types::StandardBackground)
, m_shellSurface(nullptr)
{
@@ -76,8 +77,10 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent
setClearBeforeRendering(true);
setColor(QColor(Qt::transparent));
setFlags(Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus);
+ updateAdaptiveOpacityEnabled();
connect(&m_theme, &Plasma::Theme::themeChanged, this, &PanelView::updateMask);
+ connect(&m_theme, &Plasma::Theme::themeChanged, this, &PanelView::updateAdaptiveOpacityEnabled);
connect(this, &PanelView::backgroundHintsChanged, this, &PanelView::updateMask);
connect(this, &PanelView::backgroundHintsChanged, this, &PanelView::updateEnabledBorders);
// TODO: add finished/componentComplete signal to QuickViewSharedEngine,
@@ -405,6 +408,37 @@ PanelView::VisibilityMode PanelView::visibilityMode() const
return m_visibilityMode;
}
+PanelView::OpacityMode PanelView::opacityMode() const
+{
+ if (!m_theme.adaptiveTransparencyEnabled()) {
+ return PanelView::Translucent;
+ }
+ return m_opacityMode;
+}
+
+bool PanelView::adaptiveOpacityEnabled()
+{
+ return m_theme.adaptiveTransparencyEnabled();
+}
+
+void PanelView::setOpacityMode(PanelView::OpacityMode mode)
+{
+ if (m_opacityMode != mode) {
+ m_opacityMode = mode;
+ if (config().isValid() && config().parent().isValid()) {
+ config().parent().writeEntry("panelOpacity", (int)mode);
+ m_corona->requestApplicationConfigSync();
+ }
+ emit opacityModeChanged();
+ }
+}
+
+void PanelView::updateAdaptiveOpacityEnabled()
+{
+ emit opacityModeChanged();
+ emit adaptiveOpacityEnabledChanged();
+}
+
void PanelView::positionPanel()
{
if (!containment()) {
@@ -599,6 +633,7 @@ void PanelView::restore()
// the place for this config key is changed in Plasma 5.9
// Do NOT use readConfigValueWithFallBack
setVisibilityMode((VisibilityMode)panelConfig.parent().readEntry<int>("panelVisibility", panelConfig.readEntry<int>("panelVisibility", (int)NormalPanel)));
+ setOpacityMode((OpacityMode)readConfigValueWithFallBack("panelOpacity", PanelView::OpacityMode::Adaptive));
m_initCompleted = true;
resizePanel();
positionPanel();
diff --git a/shell/panelview.h b/shell/panelview.h
index 60e4d446e..c312d4907 100644
--- a/shell/panelview.h
+++ b/shell/panelview.h
@@ -100,6 +100,18 @@ class PanelView : public PlasmaQuick::ContainmentView
*/
Q_PROPERTY(VisibilityMode visibilityMode READ visibilityMode WRITE setVisibilityMode NOTIFY visibilityModeChanged)
+ /**
+ * Property that determines how a panel's opacity behaves.
+ *
+ * @see OpacityMode
+ */
+ Q_PROPERTY(OpacityMode opacityMode READ opacityMode WRITE setOpacityMode NOTIFY opacityModeChanged)
+
+ /**
+ /* Property that determines whether adaptive opacity is used.
+ */
+ Q_PROPERTY(bool adaptiveOpacityEnabled READ adaptiveOpacityEnabled NOTIFY adaptiveOpacityEnabledChanged)
+
public:
enum VisibilityMode {
NormalPanel = 0, /** default, always visible panel, the windowmanager reserves a places for it */
@@ -109,6 +121,14 @@ public:
};
Q_ENUM(VisibilityMode)
+ /** Enumeration of possible opacity modes. */
+ enum OpacityMode {
+ Adaptive = 0, /** The panel will change opacity depending on the presence of a maximized window */
+ Opaque, /** The panel will always be opaque */
+ Translucent /** The panel will always be translucent */
+ };
+ Q_ENUM(OpacityMode)
+
explicit PanelView(ShellCorona *corona, QScreen *targetScreen = nullptr, QWindow *parent = nullptr);
~PanelView() override;
@@ -147,6 +167,11 @@ public:
VisibilityMode visibilityMode() const;
void setVisibilityMode(PanelView::VisibilityMode mode);
+ PanelView::OpacityMode opacityMode() const;
+ bool adaptiveOpacityEnabled();
+ void setOpacityMode(PanelView::OpacityMode mode);
+ void updateAdaptiveOpacityEnabled();
+
/**
* @returns the geometry of the panel given a distance
*/
@@ -185,6 +210,8 @@ Q_SIGNALS:
// QWindow does not have a property for screen. Adding this property requires re-implementing the signal
void screenToFollowChanged(QScreen *screen);
void visibilityModeChanged();
+ void opacityModeChanged();
+ void adaptiveOpacityEnabledChanged();
protected Q_SLOTS:
/**
@@ -235,6 +262,7 @@ private:
ShellCorona *m_corona;
QTimer m_strutsTimer;
VisibilityMode m_visibilityMode;
+ OpacityMode m_opacityMode;
Plasma::Theme m_theme;
QTimer m_positionPaneltimer;
QTimer m_unhideTimer;
--
GitLab
+1
View File
@@ -7,6 +7,7 @@
</maintainer>
<use>
<flag name="appstream">Enable AppStream software metadata support</flag>
<flag name="calculator">Enable calculator runner using <pkg>sci-libs/libqalculate</pkg></flag>
<flag name="geolocation">Enables dataengine providing location information</flag>
<flag name="qalculate">Enable Qalculate runner using <pkg>sci-libs/libqalculate</pkg></flag>
<flag name="screencast">Enable screencast portal using <pkg>media-video/pipewire</pkg></flag>
@@ -0,0 +1,211 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
ECM_HANDBOOK="forceoptional"
ECM_TEST="forceoptional"
KFMIN=5.82.0
PVCUT=$(ver_cut 1-3)
QTMIN=5.15.2
VIRTUALX_REQUIRED="test"
inherit ecm kde.org
DESCRIPTION="KDE Plasma workspace"
LICENSE="GPL-2" # TODO: CHECK
SLOT="5"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
IUSE="appstream +calculator +calendar +fontconfig geolocation gps screencast
+semantic-desktop systemd telemetry"
REQUIRED_USE="gps? ( geolocation )"
RESTRICT+=" test"
COMMON_DEPEND="
>=dev-libs/wayland-1.15
>=dev-qt/qtdbus-${QTMIN}:5
>=dev-qt/qtdeclarative-${QTMIN}:5[widgets]
>=dev-qt/qtgui-${QTMIN}:5=[jpeg]
>=dev-qt/qtnetwork-${QTMIN}:5
>=dev-qt/qtsql-${QTMIN}:5
>=dev-qt/qtsvg-${QTMIN}:5
>=dev-qt/qtwayland-${QTMIN}:5
>=dev-qt/qtwidgets-${QTMIN}:5
>=dev-qt/qtx11extras-${QTMIN}:5
>=dev-qt/qtxml-${QTMIN}:5
>=kde-frameworks/kactivities-${KFMIN}:5
>=kde-frameworks/kactivities-stats-${KFMIN}:5
>=kde-frameworks/kauth-${KFMIN}:5
>=kde-frameworks/kbookmarks-${KFMIN}:5
>=kde-frameworks/kcompletion-${KFMIN}:5
>=kde-frameworks/kconfig-${KFMIN}:5
>=kde-frameworks/kconfigwidgets-${KFMIN}:5
>=kde-frameworks/kcoreaddons-${KFMIN}:5
>=kde-frameworks/kcrash-${KFMIN}:5
>=kde-frameworks/kdbusaddons-${KFMIN}:5
>=kde-frameworks/kdeclarative-${KFMIN}:5
>=kde-frameworks/kded-${KFMIN}:5
>=kde-frameworks/kdelibs4support-${KFMIN}:5
>=kde-frameworks/kglobalaccel-${KFMIN}:5
>=kde-frameworks/kguiaddons-${KFMIN}:5
>=kde-frameworks/ki18n-${KFMIN}:5
>=kde-frameworks/kiconthemes-${KFMIN}:5
>=kde-frameworks/kidletime-${KFMIN}:5
>=kde-frameworks/kio-${KFMIN}:5
>=kde-frameworks/kitemmodels-${KFMIN}:5
>=kde-frameworks/kitemviews-${KFMIN}:5
>=kde-frameworks/kjobwidgets-${KFMIN}:5
>=kde-frameworks/knewstuff-${KFMIN}:5
>=kde-frameworks/knotifications-${KFMIN}:5
>=kde-frameworks/knotifyconfig-${KFMIN}:5
>=kde-frameworks/kpackage-${KFMIN}:5
>=kde-frameworks/kpeople-${KFMIN}:5
>=kde-frameworks/krunner-${KFMIN}:5
>=kde-frameworks/kservice-${KFMIN}:5
>=kde-frameworks/ktexteditor-${KFMIN}:5
>=kde-frameworks/ktextwidgets-${KFMIN}:5
>=kde-frameworks/kwallet-${KFMIN}:5
>=kde-frameworks/kwayland-${KFMIN}:5
>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
>=kde-frameworks/kwindowsystem-${KFMIN}:5
>=kde-frameworks/kxmlgui-${KFMIN}:5
>=kde-frameworks/plasma-${KFMIN}:5
>=kde-frameworks/prison-${KFMIN}:5[qml]
>=kde-frameworks/solid-${KFMIN}:5
>=kde-plasma/breeze-${PVCUT}:5
>=kde-plasma/kscreenlocker-${PVCUT}:5
>=kde-plasma/kwin-${PVCUT}:5
>=kde-plasma/libkscreen-${PVCUT}:5
>=kde-plasma/libksysguard-${PVCUT}:5
>=kde-plasma/libkworkspace-${PVCUT}:5
>=media-libs/phonon-4.11.0
sys-libs/zlib
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXau
x11-libs/libxcb
x11-libs/libXcursor
x11-libs/libXfixes
x11-libs/libXrender
x11-libs/libXtst
x11-libs/xcb-util
x11-libs/xcb-util-image
appstream? ( dev-libs/appstream[qt5] )
calculator? ( sci-libs/libqalculate:= )
calendar? ( >=kde-frameworks/kholidays-${KFMIN}:5 )
fontconfig? (
media-libs/fontconfig
media-libs/freetype
x11-libs/libXft
x11-libs/xcb-util-image
)
geolocation? ( >=kde-frameworks/networkmanager-qt-${KFMIN}:5 )
gps? ( sci-geosciences/gpsd )
screencast? (
>=media-video/pipewire-0.3:=
x11-libs/libdrm
)
semantic-desktop? ( >=kde-frameworks/baloo-${KFMIN}:5 )
telemetry? ( dev-libs/kuserfeedback:5 )
"
DEPEND="${COMMON_DEPEND}
>=dev-libs/plasma-wayland-protocols-1.1.1
>=dev-qt/qtconcurrent-${QTMIN}:5
x11-base/xorg-proto
fontconfig? ( x11-libs/libXrender )
"
RDEPEND="${COMMON_DEPEND}
app-text/iso-codes
>=dev-qt/qdbus-${QTMIN}:5
>=dev-qt/qtgraphicaleffects-${QTMIN}:5
>=dev-qt/qtpaths-${QTMIN}:5
>=dev-qt/qtquickcontrols-${QTMIN}:5[widgets]
>=dev-qt/qtquickcontrols2-${QTMIN}:5
>=kde-apps/kio-extras-19.04.3:5
>=kde-frameworks/kdesu-${KFMIN}:5
>=kde-frameworks/kirigami-${KFMIN}:5
>=kde-frameworks/kquickcharts-${KFMIN}:5
>=kde-plasma/ksysguard-${PVCUT}:5
>=kde-plasma/milou-${PVCUT}:5
>=kde-plasma/plasma-integration-${PVCUT}:5
x11-apps/xmessage
x11-apps/xprop
x11-apps/xrdb
x11-apps/xsetroot
systemd? ( sys-apps/dbus[user-session] )
!systemd? ( sys-apps/dbus )
!<kde-plasma/plasma-desktop-5.19.80:5
"
BDEPEND="virtual/pkgconfig"
PDEPEND="
>=kde-plasma/kde-cli-tools-${PVCUT}:5
"
PATCHES=(
"${FILESDIR}/${PN}-5.14.2-split-libkworkspace.patch"
"${FILESDIR}/${P}-transparency.patch" # KDE-bug 434202
"${FILESDIR}/${P}-transparency-panelConfig.patch" # KDE-bug 434285
"${FILESDIR}/${P}-dangerous-shortcuts.patch" # KDE-bug 435954
)
src_prepare() {
rm po/ta/kcm_autostart.po || die # spurious file
ecm_src_prepare
cmake_comment_add_subdirectory libkworkspace
# delete colliding libkworkspace translations
if [[ ${KDE_BUILD_TYPE} = release ]]; then
find po -type f -name "*po" -and -name "libkworkspace*" -delete || die
fi
# TODO: try to get a build switch upstreamed
if ! use screencast; then
sed -e "s/^pkg_check_modules.*PipeWire/#&/" -i CMakeLists.txt || die
fi
# KDE-bug: 433730
use calculator ||
cmake_run_in runners cmake_comment_add_subdirectory calculator
}
src_configure() {
local mycmakeargs=(
-DBUILD_xembed-sni-proxy=OFF
$(cmake_use_find_package appstream AppStreamQt)
$(cmake_use_find_package calendar KF5Holidays)
$(cmake_use_find_package fontconfig Fontconfig)
$(cmake_use_find_package geolocation KF5NetworkManagerQt)
$(cmake_use_find_package semantic-desktop KF5Baloo)
$(cmake_use_find_package telemetry KUserFeedback)
)
use geolocation && mycmakeargs+=( $(cmake_use_find_package gps libgps) )
ecm_src_configure
}
src_install() {
ecm_src_install
# default startup and shutdown scripts
insinto /etc/xdg/plasma-workspace/env
doins "${FILESDIR}"/10-agent-startup.sh
insinto /etc/xdg/plasma-workspace/shutdown
doins "${FILESDIR}"/10-agent-shutdown.sh
fperms +x /etc/xdg/plasma-workspace/shutdown/10-agent-shutdown.sh
}
pkg_postinst () {
ecm_pkg_postinst
# Clean up pre-5.17.4 dirs
rmdir -v "${EROOT}"/etc/plasma{/startup,/shutdown,} 2> /dev/null
elog "To enable gpg-agent and/or ssh-agent in Plasma sessions,"
elog "edit ${EPREFIX}/etc/xdg/plasma-workspace/env/10-agent-startup.sh"
elog "and ${EPREFIX}/etc/xdg/plasma-workspace/shutdown/10-agent-shutdown.sh"
}