View previous topic :: View next topic |
Author |
Message |
Computerix n00b

Joined: 26 Mar 2025 Posts: 4
|
Posted: Wed Mar 26, 2025 9:36 am Post subject: KDE desktop or applications in pure X11 environment? |
|
|
I currently run a linux terminal server.
It happily runs many virtual Xfce sessions for many users using Xrdp.
Using the RDP protocol for remote sessions is a requirement,
it's the only protocol supported by the clients.
The terminal server does not have an accelerated graphics card.
Now I'd like to use some KDE applications and perhaps sooner or later also switch the desktop to KDE.
However, KDE seems to require wayland, and there is no RDP solution for wayland or KDE.
There is Krdp, but it supports only remote access to one's own already-running session
on a physical desktop on a remote machine.
Krdp lacks most features needed for setting up a terminal server, and as far as I can tell,
there are no plans to support the required features in the forseeable future.
Moreover, I've heard that Krdp's remote display quality is significantly inferior to Xrdp's,
and its CPU overhead is much higher without a graphics accelerator.
Now, there are two questions:
1.) Is it possible in Gentoo to build a complete KDE environment
(with Plasma desktop, Kwin and so on) which runs on Xrdp's X11-only virtual sessions?
2.) Alternatively, is it possible to run KDE applications on traditional X11-only virtual sessions
using Xfce or LXQt desktop environments instead of KDE?
If so, is it possible to build these applications without pulling in all the wayland and plasma stuff?
I emerge-pretended some typical large KDE apps with USE=-wayland
and observed several things which look bad:
* They force me to USE=wayland, at least for qtbase, kwindowsystem, mesa and gtk+:3 (!?!).
* They pull in qtwayland.
* They pull in libplasma and some other plasma packages although I definitely don't want a plasma desktop
(polkit-kde-agent, kde-cli-tools-common, keditfiletype, plasma-activities).
One reason seems that kauth unconditionally depends on polkit-kde-agent,
another is that kio pulls keditfiletype, and perhaps there are more dependencies.
Will those apps run on non-KDE, non-Wayland desktops in spite of these dependencies?
Is there any way to reduce these dependencies and USE requirements
when building the apps for non-KDE desktops? |
|
Back to top |
|
 |
dmpogo Advocate

Joined: 02 Sep 2004 Posts: 3523 Location: Canada
|
Posted: Wed Mar 26, 2025 7:48 pm Post subject: |
|
|
One thing I can answer - you cannot avoid KDE pulling in wayland dependecies. USE='-wayland' does not do much.
KDE applications will need some packages from kde-frameworks, but I don't think they will need plasma/kwin
for instance, okular dependencies
Code: |
* dependency graph for kde-apps/okular-24.12.3
`-- kde-apps/okular-24.12.3 [~amd64 keyword]
`-- dev-qt/qtbase-6.8.2-r2 (>=dev-qt/qtbase-6.7.2) amd64 [dbus gui widgets X xml]
`-- dev-qt/qtdeclarative-6.8.2 (>=dev-qt/qtdeclarative-6.7.2) amd64
`-- dev-qt/qtsvg-6.8.2 (>=dev-qt/qtsvg-6.7.2) amd64
`-- kde-apps/libkexiv2-24.12.3 (>=kde-apps/libkexiv2-24.12.3) [~amd64 keyword]
`-- kde-frameworks/karchive-6.10.0 (>=kde-frameworks/karchive-6.7.0) amd64
`-- kde-frameworks/kbookmarks-6.10.0 (>=kde-frameworks/kbookmarks-6.7.0) amd64
`-- kde-frameworks/kcolorscheme-6.10.0 (>=kde-frameworks/kcolorscheme-6.7.0) amd64
`-- kde-frameworks/kcompletion-6.10.0 (>=kde-frameworks/kcompletion-6.7.0) amd64
`-- kde-frameworks/kconfig-6.10.0 (>=kde-frameworks/kconfig-6.7.0) amd64
`-- kde-frameworks/kconfigwidgets-6.10.0 (>=kde-frameworks/kconfigwidgets-6.7.0) amd64
`-- kde-frameworks/kcoreaddons-6.10.0 (>=kde-frameworks/kcoreaddons-6.7.0) amd64
`-- kde-frameworks/kcrash-6.10.0 (>=kde-frameworks/kcrash-6.7.0) amd64
`-- kde-frameworks/ki18n-6.10.0 (>=kde-frameworks/ki18n-6.7.0) amd64
`-- kde-frameworks/kio-6.10.0 (>=kde-frameworks/kio-6.7.0) amd64
`-- kde-frameworks/kitemviews-6.10.0 (>=kde-frameworks/kitemviews-6.7.0) amd64
`-- kde-frameworks/kparts-6.10.0 (>=kde-frameworks/kparts-6.7.0) amd64
`-- kde-frameworks/kpty-6.10.0 (>=kde-frameworks/kpty-6.7.0) amd64
`-- kde-frameworks/ktextwidgets-6.10.0 (>=kde-frameworks/ktextwidgets-6.7.0) amd64
`-- kde-frameworks/kwidgetsaddons-6.10.0 (>=kde-frameworks/kwidgetsaddons-6.7.0) amd64
`-- kde-frameworks/kwindowsystem-6.10.0 (>=kde-frameworks/kwindowsystem-6.7.0) amd64 [X]
`-- kde-frameworks/kxmlgui-6.10.0 (>=kde-frameworks/kxmlgui-6.7.0) amd64
`-- kde-frameworks/threadweaver-6.10.0 (>=kde-frameworks/threadweaver-6.7.0) amd64
`-- kde-plasma/plasma-activities-6.2.5 (kde-plasma/plasma-activities) amd64
`-- media-libs/freetype-2.13.3 (media-libs/freetype) amd64
`-- sys-libs/zlib-1.3.1-r1 (sys-libs/zlib) amd64
`-- kde-frameworks/kwallet-6.10.0 (>=kde-frameworks/kwallet-6.7.0) amd64
`-- app-text/djvu-3.5.28-r4 (app-text/djvu) amd64
`-- app-text/ebook-tools-0.2.2-r2 (app-text/ebook-tools) amd64
`-- app-text/discount-2.2.7c-r1 (>=app-text/discount-2.2.7-r1) amd64
`-- kde-apps/kdegraphics-mobipocket-24.12.3 (>=kde-apps/kdegraphics-mobipocket-24.12.3) [~amd64 keyword]
`-- app-text/poppler-25.02.0 (>=app-text/poppler-24.10.0) amd64 [nss qt6]
`-- media-libs/phonon-4.12.0-r5 (>=media-libs/phonon-4.12.0) amd64 [qt6(+)]
`-- app-text/libspectre-0.2.12 (app-text/libspectre) amd64
`-- kde-frameworks/purpose-6.10.0 (>=kde-frameworks/purpose-6.7.0) amd64
`-- dev-qt/qtspeech-6.8.2 (>=dev-qt/qtspeech-6.7.2) amd64
`-- media-libs/tiff-4.7.0-r1 (media-libs/tiff) amd64
`-- kde-frameworks/kimageformats-6.10.0 (>=kde-frameworks/kimageformats-6.7.0) amd64
`-- kde-frameworks/kirigami-6.10.0 (>=kde-frameworks/kirigami-6.7.0) amd64
`-- kde-frameworks/breeze-icons-6.10.0 (kde-frameworks/breeze-icons) amd64
`-- kde-frameworks/oxygen-icons-6.1.0 (kde-frameworks/oxygen-icons) amd64
`-- kde-frameworks/kf-env-6 (>=kde-frameworks/kf-env-6) amd64
`-- app-alternatives/ninja-1 (app-alternatives/ninja) amd64
`-- dev-build/cmake-3.31.5 (>=dev-build/cmake-3.20.5) amd64
`-- kde-frameworks/kdoctools-6.10.0 (>=kde-frameworks/kdoctools-6.7.0) amd64
`-- dev-libs/libpcre2-10.45 (dev-libs/libpcre2) amd64
`-- kde-frameworks/extra-cmake-modules-6.10.0 (>=kde-frameworks/extra-cmake-modules-6.7.0) amd64
`-- dev-util/desktop-file-utils-0.28 (dev-util/desktop-file-utils) amd64
`-- x11-misc/shared-mime-info-2.4-r1 (x11-misc/shared-mime-info) amd64
[ kde-apps/okular-24.12.3 stats: packages (49), max depth (1) ]
one package from plasma kde-plasma/plasma-activities-6.2.5 does not seem to depend on anything else plasma |
I used to run KDE on a virtual X-server on a remote server in the past. Don't have that setup now. |
|
Back to top |
|
 |
Ralphred l33t

Joined: 31 Dec 2013 Posts: 794
|
Posted: Thu Mar 27, 2025 3:07 am Post subject: Re: KDE desktop or applications in pure X11 environment? |
|
|
Computerix wrote: | Will those apps run on non-KDE, non-Wayland desktops in spite of these dependencies? | Yes.
Computerix wrote: | Now I'd like to use some KDE applications and perhaps sooner or later also switch the desktop to KDE. | Drop the config you use for your xrdp/Xfce sessions and I'll try and make it work for kde, seeing as I already have it installed it'll be quicker (than you installing kde or me reading xrdp's docs) to test if it works for you. |
|
Back to top |
|
 |
Computerix n00b

Joined: 26 Mar 2025 Posts: 4
|
Posted: Thu Mar 27, 2025 8:45 am Post subject: |
|
|
I had a very close look at the dependencies.
Kwin and plasma and all the plasma goodies depend on wayland, hence no KDE/plasma desktop without wayland.
Without Kwin and plasma, KDE is 99 % independent of wayland,
with one big showstopper, one small restriction, and some wayland-native apps.
1.) The wayland-native apps I found are kclock, gwenview, spectacle, kdeconnect, krdc, kalgebra and knights.
2.) The big showstopper is kauth with USE=policykit:
- At least half of all kde apps and utils (among them as simple things as the breeze theme!) indirectly depend on kauth.
- Today USE=policykit is commonly needed, especially on a systemd system like mine.
- kauth USE=policykit is the culprit (the *only* culprit!) for indirectly pulling in all that wayland stuff
by depending on kwindowsystem[wayland] and on polkit-kde-agent (which in turn depends on libplasma):
- This installs all of wayland and qtwayland
- This forces USE=wayland for qtbase, mesa and gtk+
With USE=-policykit, most KDE apps emerge with no wayland at all!
3.) The small restriction is xdg-desktop-portal-kde: It also pulls in wayland, even more than xauth.
So if one wants to have xdg conformity for all apps (I don't), a non-KDE xdg implementation must be used (lxqt or gtk). |
|
Back to top |
|
 |
Computerix n00b

Joined: 26 Mar 2025 Posts: 4
|
Posted: Thu Mar 27, 2025 8:50 am Post subject: Re: KDE desktop or applications in pure X11 environment? |
|
|
Ralphred wrote: |
Computerix wrote: | Now I'd like to use some KDE applications and perhaps sooner or later also switch the desktop to KDE. | Drop the config you use for your xrdp/Xfce sessions and I'll try and make it work for kde, seeing as I already have it installed it'll be quicker (than you installing kde or me reading xrdp's docs) to test if it works for you. |
Thanks for offering help, but I'm not yet going to install anything.
I'm still in the strategic phase, making plans and decisions for the future. |
|
Back to top |
|
 |
Computerix n00b

Joined: 26 Mar 2025 Posts: 4
|
Posted: Thu Mar 27, 2025 9:28 am Post subject: |
|
|
So for me, the questions are now:
1.) What would I loose if I use USE=-policykit for kauth? (while still having polkit installed)
2.) And for KDE devel's or the Gentoo KDE maint's:
Does kauth really need wayland on a system which uses a non-KDE desktop and Window manager
and has a non-KDE polkit agent already installed?
One reason would be that kauth wants to talk to the window manager (because it depends on kwindowsystem[wayland]).
But on a non-KDE desktop, the window manager is not Kwin and will not listen to wayland!
(so perhaps kauth should test USE=plasma to check if Kwin is used or not?)
Another reason would be that kauth wants to present auth dialogs (is that what polkit-kde-agent does?).
But on a non-KDE desktop, I already have a program which serves as the GUI for polkit (e.g. polkit-gnome in my case). |
|
Back to top |
|
 |
Chiitoo Administrator


Joined: 28 Feb 2010 Posts: 2807 Location: Here and Away Again
|
Posted: Thu Mar 27, 2025 5:47 pm Post subject: Re: KDE desktop or applications in pure X11 environment? |
|
|
Computerix wrote: | 1.) Is it possible in Gentoo to build a complete KDE environment
(with Plasma desktop, Kwin and so on) which runs on Xrdp's X11-only virtual sessions? |
I believe so yes.
While a lot of KDE applications depend on Wayland, it doesn't mean that you need to use Wayland.
X11 isn't going away for a while yet.
Computerix wrote: | 2.) Alternatively, is it possible to run KDE applications on traditional X11-only virtual sessions
using Xfce or LXQt desktop environments instead of KDE? |
Very yes.
You can even run KWin with LXQt and friends. I can not think of a single application that only works with Plasma.
Computerix wrote: | If so, is it possible to build these applications without pulling in all the wayland and plasma stuff? |
That's a no, if they indeed depend on that stuff.
Computerix wrote: | I emerge-pretended some typical large KDE apps with USE=-wayland
and observed several things which look bad:
* They force me to USE=wayland, at least for qtbase, kwindowsystem, mesa and gtk+:3 (!?!).
* They pull in qtwayland.
* They pull in libplasma and some other plasma packages although I definitely don't want a plasma desktop
(polkit-kde-agent, kde-cli-tools-common, keditfiletype, plasma-activities).
One reason seems that kauth unconditionally depends on polkit-kde-agent,
another is that kio pulls keditfiletype, and perhaps there are more dependencies.
Will those apps run on non-KDE, non-Wayland desktops in spite of these dependencies?
Is there any way to reduce these dependencies and USE requirements
when building the apps for non-KDE desktops? |
They should run just fine.
It may seem weird to require building things with Wayland support even when not using Wayland, but that's just how upstreams are building things now.
To some extent, as you have noticed, yes, USE-flags can be used to remove some of the dependenices, but it will mainly depend on your needs, and if upstreams have made them optional or not. _________________ Kindest of regardses. |
|
Back to top |
|
 |
wildhorse Apprentice


Joined: 16 Mar 2006 Posts: 162 Location: Estados Unidos De América
|
Posted: Mon Mar 31, 2025 9:44 pm Post subject: |
|
|
kauth without wayland:
Code: | *** a/kauth-6.12.0.ebuild 2025-03-15 22:10:58.000000000 +0100
--- b/kauth-6.12.0.ebuild 2025-03-17 10:07:08.790326517 +0100
***************
*** 9,15 ****
DESCRIPTION="Framework to let applications perform actions as a privileged user"
LICENSE="LGPL-2.1+"
! KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
IUSE="+policykit"
RDEPEND="
--- 9,15 ----
DESCRIPTION="Framework to let applications perform actions as a privileged user"
LICENSE="LGPL-2.1+"
! KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="+policykit"
RDEPEND="
***************
*** 17,23 ****
=kde-frameworks/kcoreaddons-${KDE_CATV}*:6
policykit? (
>=dev-qt/qtbase-${QTMIN}:6[dbus]
! =kde-frameworks/kwindowsystem-${KDE_CATV}*:6[wayland]
>=sys-auth/polkit-qt-0.175.0[qt6(+)]
)
"
--- 17,23 ----
=kde-frameworks/kcoreaddons-${KDE_CATV}*:6
policykit? (
>=dev-qt/qtbase-${QTMIN}:6[dbus]
! =kde-frameworks/kwindowsystem-${KDE_CATV}*:6
>=sys-auth/polkit-qt-0.175.0[qt6(+)]
)
"
***************
*** 25,31 ****
test? ( >=dev-qt/qtbase-${QTMIN}:6[dbus] )
"
BDEPEND=">=dev-qt/qttools-${QTMIN}:6[linguist]"
! PDEPEND="policykit? ( kde-plasma/polkit-kde-agent:* )"
CMAKE_SKIP_TESTS=(
# fails, bug 654842
--- 25,35 ----
test? ( >=dev-qt/qtbase-${QTMIN}:6[dbus] )
"
BDEPEND=">=dev-qt/qttools-${QTMIN}:6[linguist]"
! PDEPEND="policykit? ( kde-plasma/polkit-kde-agent )"
!
! PATCHES=(
! "${FILESDIR}/${PN}-6.3.0-polkit1backend_remove_wayland.patch"
! )
CMAKE_SKIP_TESTS=(
# fails, bug 654842 |
Code: | --- kauth-6.1.0/src/backends/polkit-1/Polkit1Backend.cpp.orig 2024-04-05 12:54:38.000000000 +0200
+++ kauth-6.1.0/src/backends/polkit-1/Polkit1Backend.cpp 2024-04-16 10:16:10.000000000 +0200
@@ -11,7 +11,7 @@
#include "Polkit1Backend.h"
#include "kauthdebug.h"
-#include <KWaylandExtras>
+//#include <KWaylandExtras>
#include <KWindowSystem>
#include <QCoreApplication>
@@ -66,7 +66,9 @@
// Are we running our KDE auth agent?
if (QDBusConnection::sessionBus().interface()->isServiceRegistered(QLatin1String("org.kde.polkit-kde-authentication-agent-1"))) {
- if (KWindowSystem::isPlatformWayland()) {
+// if (KWindowSystem::isPlatformWayland()) {
+ if (false) {
+#if 0
KWaylandExtras::exportWindow(parentWindow);
connect(
KWaylandExtras::self(),
@@ -81,6 +83,7 @@
// Generate and send an XDG Activation token.
sendActivationToken(action, parentWindow);
+#endif
} else {
// Retrieve the dialog root window Id
const qulonglong wId = parentWindow->winId();
@@ -124,6 +127,7 @@
void Polkit1Backend::sendActivationToken(const QString &action, QWindow *window)
{
+#if 0
const auto requestedSerial = KWaylandExtras::lastInputSerial(window);
connect(
KWaylandExtras::self(),
@@ -151,6 +155,7 @@
},
Qt::SingleShotConnection);
KWaylandExtras::requestXdgActivationToken(window, requestedSerial, {});
+#endif
}
Action::AuthStatus Polkit1Backend::authorizeAction(const QString &action) |
How about libreoffice with plain X11 and no sluggish user interface?
Code: | app-office/libreoffice -gtk3 -gtk4 -kde -qt6 |
|
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|