Plasma 6 on Debian 13 as main desktop environment

Hello again,
I am currently trying to use plasma 6 as a main workspace environment on a Debian 13 Trixie.
I am using timeshift with btrfs so I am able to rollback on changes.

I was able to successfully build plasma-workspace module by following the instructions detailed in Get_Involved/development/More#Qt6.
Unlike my first attempt, I am sure that it succeeded because there was no Cmake error at all. : - )

The install_sessions.sh script runs well, everything looks fine.

However, after running the

source ~/kde/build/plasma-workspace/prefix.sh
~/kde/usr/bin/plasmashell --replace

We get an error that the plugins are not being picked up although they were found. Something similar to
qt.qpa.plugin; Could not load the Qt platform plugin “xcb” in “” even though it was found.
If i try with wayland plugin, we get something similar but mentions that wl_display could not recognize Display

What am I missing in order to start my GUI display?

Tangential questions:

  1. Is kwallet really needed? I was hoping to set up keepassxc
  2. I wonder why some libs cannot be installed in the initial --install-distro-packages script. Specifically the ones required for kwallet and kwin and Qt6 instructions. I’ve shared my apt/history.log below

Metadata that might be helpful

ldd kde/build/qtbase/plugins/platforms/libqxcb.so 
	linux-vdso.so.1 (0x00007fe8fc8a4000)
	libQt6XcbQpa.so.6 => /home/admn/kde/build/qtbase/lib/libQt6XcbQpa.so.6 (0x00007fe8fc7e4000)
	libQt6Gui.so.6 => /home/admn/kde/build/qtbase/lib/libQt6Gui.so.6 (0x00007fe8fbe00000)
	libQt6Core.so.6 => /home/admn/kde/build/qtbase/lib/libQt6Core.so.6 (0x00007fe8fb600000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe8fb200000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe8fb017000)
	libxcb-cursor.so.0 => /lib/x86_64-linux-gnu/libxcb-cursor.so.0 (0x00007fe8fc7c0000)
	libxcb-icccm.so.4 => /lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007fe8fc7b9000)
	libxcb-image.so.0 => /lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007fe8fc7b3000)
	libxcb-keysyms.so.1 => /lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007fe8fac00000)
	libxcb-randr.so.0 => /lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007fe8fc7a1000)
	libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007fe8fc793000)
	libxcb-render-util.so.0 => /lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007fe8fa600000)
	libxcb-shape.so.0 => /lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007fe8fc78c000)
	libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007fe8fc787000)
	libxcb-sync.so.1 => /lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007fe8fc77e000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fe8fc753000)
	libxcb-xfixes.so.0 => /lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007fe8fc74a000)
	libxcb-xkb.so.1 => /lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007fe8fc72a000)
	libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007fe8fc6e2000)
	libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fe8fbcb4000)
	libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007fe8fc6dd000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fe8fb4bc000)
	libSM.so.6 => /lib/x86_64-linux-gnu/libSM.so.6 (0x00007fe8fc6d2000)
	libICE.so.6 => /lib/x86_64-linux-gnu/libICE.so.6 (0x00007fe8fc6b2000)
	libxkbcommon-x11.so.0 => /lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007fe8fc6a7000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe8faf35000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe8fbc87000)
	libEGL.so.1 => /lib/x86_64-linux-gnu/libEGL.so.1 (0x00007fe8fc691000)
	libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fe8fb46f000)
	libQt6DBus.so.6 => /home/admn/kde/build/qtbase/lib/libQt6DBus.so.6 (0x00007fe8fae71000)
	libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fe8fbc53000)
	libOpenGL.so.0 => /lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007fe8fae46000)
	libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fe8fae10000)
	libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fe8faad0000)
	libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fe8faa03000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe8fa9e4000)
	libicui18n.so.72 => /lib/x86_64-linux-gnu/libicui18n.so.72 (0x00007fe8fa200000)
	libicuuc.so.72 => /lib/x86_64-linux-gnu/libicuuc.so.72 (0x00007fe8f9e00000)
	libpcre2-16.so.0 => /lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007fe8fa956000)
	libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007fe8fa88e000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fe8fc8a6000)
	libxcb-util.so.1 => /lib/x86_64-linux-gnu/libxcb-util.so.1 (0x00007fe8fc683000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fe8fbc4e000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fe8fb467000)
	libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fe8fa565000)
	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fe8fae06000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fe8fa879000)
	libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fe8fa147000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fe8fa84e000)
	libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fe8fa0f0000)
	libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fe8fa824000)
	libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007fe8fa811000)
	libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fe8fa557000)
	libicudata.so.72 => /lib/x86_64-linux-gnu/libicudata.so.72 (0x00007fe8f8000000)
	libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007fe8fa548000)
	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fe8fa007000)
	libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fe8f9ddd000)
	libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007fe8fa805000)
GNU nano 8.1                                               /var/log/apt/history.log                                                         
Requested-By: admn (1000)

Start-Date: 2024-08-04  12:36:25 # kde-builder --install-distro-packages
Commandline: apt-get -q -y --no-install-recommends install apt-file bison build-essential clang-format cmake flex gettext git gperf intltool >
Requested-By: admn (1000)
Install: libinput-dev:amd64 (1.26.0-1, automatic), libevdev-dev:amd64 (1.13.2+dfsg-1, automatic), libidn2-dev:amd64 (2.3.7-2, automatic), lib>
Upgrade: dpkg:amd64 (1.22.9, 1.22.11), gettext-base:amd64 (0.22.5-1, 0.22.5-2), python3-pkg-resources:amd64 (68.1.2-4, 70.3.0-2), libc6:amd64>
End-Date: 2024-08-04  12:38:02

Start-Date: 2024-08-04  13:02:29 # Qt6 instructions
Commandline: apt install nodejs libdbus-1-dev libxcomposite-dev libxshmfence-dev libxdamage-dev libharfbuzz-dev libvpx-dev libpci-dev libeven>
Requested-By: admn (1000)
Install: libnode115:amd64 (20.15.0+dfsg-1, automatic), libcups2-dev:amd64 (2.4.10-1), node-acorn:amd64 (8.8.1+ds+~cs25.17.7-2, automatic), li>
End-Date: 2024-08-04  13:02:34

Start-Date: 2024-08-04  13:19:03 # Qt6 instructions
Commandline: apt install libb2-dev libproxy-dev libmd4c-dev libmd4c-html0-dev libxcb-xinput-dev libatspi2.0-dev libsqlite3-dev unixodbc-dev p>
Requested-By: admn (1000)
Install: libmd4c-html0:amd64 (0.4.8-1+b1, automatic), libodbc2:amd64 (2.3.12-1+b2, automatic), libsctp1:amd64 (1.0.19+dfsg-2+b1, automatic), >
End-Date: 2024-08-04  13:19:06

Install: libmd4c-html0:amd64 (0.4.8-1+b1, automatic), libodbc2:amd64 (2.3.12-1+b2, automatic), libsctp1:amd64 (1.0.19+dfsg-2+b1, automatic), >
End-Date: 2024-08-04  13:19:06

Start-Date: 2024-08-04  14:26:19
Commandline: apt install libxslt1-dev # Required for kwin
Requested-By: admn (1000)
Install: libxslt1-dev:amd64 (1.1.35-1.1)
End-Date: 2024-08-04  14:26:20

Start-Date: 2024-08-04  14:41:02
Commandline: apt install libgcrypt20-dev # Required for kwallet
Requested-By: admn (1000)
Install: libgcrypt20-dev:amd64 (1.11.0-2)
End-Date: 2024-08-04  14:41:02

Start-Date: 2024-08-04  15:09:31
Commandline: apt install libdisplay-info-dev
Requested-By: admn (1000)
Install: libdisplay-info2:amd64 (0.2.0-2, automatic), libdisplay-info-dev:amd64 (0.2.0-2)
End-Date: 2024-08-04  15:09:31

Here is the kdesrc-buildrc used:

global
    branch-group kf6-qt6

    # Finds and includes *KDE*-based dependencies into the build.  This makes
    # it easier to ensure that you have all the modules needed, but the
    # dependencies are not very fine-grained so this can result in quite a few
    # modules being installed that you didn't need.
    include-dependencies true

    source-dir ~/kde/src  # Directory for downloaded source code
    build-dir ~/kde/build  # Directory to build KDE into before installing
    install-dir ~/kde/usr  # Directory to install KDE software into
    qt-install-dir ~/kde/usr # Directory to install Qt if kde-builder supplies it
    log-dir ~/kde/log  # Directory to write logs into

    cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF -DQT_MAJOR_VERSION=6 -DKDE_INSTALL_PREFIX_SCRIPT=ON -DQT_FEATURE_xcb=ON

    # kde-builder sets 2 options which is used in options like make-options or set-env
    # to help manage the number of compile jobs that happen during a build:
    #
    # 1. num-cores, which is just the number of detected CPU cores, and can be passed
    #    to tools like make (needed for parallel build) or ninja (completely optional).
    #
    # 2. num-cores-low-mem, which is set to largest value that appears safe for
    #    particularly heavyweight modules based on total memory, intended for
    #    modules like qtwebengine
    num-cores 12
    num-cores-low-mem 12

    # Makes the built-from-source Plasma session accessible from the SDDM login screen.
    install-login-session true

    # Stop the build process on the first failure. If set to false, when kde-builder
    # encounters a build failure, it will attempt to continue building other modules, 
    # using libraries from the system in cases where they would otherwise be provided
    # by a module that has failed to build.
    #
    # Unless your system has very up-to-date packages, this is probably not what you want.
    stop-on-failure true

    # Use a flat folder layout under ~/kde/src and ~/kde/build
    # rather than nested directories
    directory-layout flat

    # Use Ninja as cmake generator
    cmake-generator Ninja

    # Build with LSP support for everything that supports it
    compile-commands-linking true
    compile-commands-export true

    # Generate .idea config files in project directories
    # Enable this if you want to use CLion for development
    generate-clion-project-config false

    # Generate .vscode config files in project directories
    # Enable this if you want to use Visual Studio Code for development
    generate-vscode-project-config false

    # Generate copy-pastable files for manual qtcreator config creation
    # Enable this if you want to use Qt Creator for development
    generate-qtcreator-project-config false
end global

# With base options set, the remainder of the file is used to define modules to build, in the
# desired order, and set any module-specific options.

#  This line includes module definitions provided in repo-metadata. Do not comment it.
include ${module-definitions-dir}/kf6-qt6.ksb

$ qmake --version
QMake version 3.1
Using Qt version 6.7.2 in /home/admn/kde/usr/lib

Thanks in advance for the patience on these noob questions!

1 Like

$kde-build --run kcalc ; export QT_QPA_PLATFORM=xcb

qt.qpa.xcb: could not connect do display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found
This application failed to start because no Qt platform plugin could be initialised. Reinstalling...

$kde-build --run kcalc ; export QT_QPA_PLATFORM=wayland

failed to create wl_display (No such file or directory)
qt.qpa.plugin: Could not load the Qt platform plugin "waylaid" in "" even though it was found
This application failed to start because no Qt platform plugin could be initialised. Reinstalling...

So, I’ve installed sddm through apt and I am able to login to the shiny 6.2 plasma. it’s neat.
I tried rolling back and installing sddm-kdm but no dice.
There is a missing piece here that grants authority to connect to my display… regardless of protocol, the issue has to do with authorisation, surely? is it a missing lib the sddm installed with?

Any help is very appreciated. Thank you!

Finally got spectacle to run

I’m still struggling to understand graphical session, thou… I’m only managing to start my graphical environment because of sddm installed from the package manager.
I’ve created a new user. Obviously the graphical environment is not available to it since its built only on my admn user’s home folder. That i understand.
What I don’t understand is how does sddm pick up on it.
If I create a new user, and try to login with it, everything gets f*cked and I have to roll back

Any suggestions on this is appreciated

1 Like

Same here. We are interested to use KDE Plasma 6 on the Debian 13 for testing.

The recent good news is that the Debian community recently announced that, in the future, Debian 13 Trixie stable will release with Plasma version 6.

I can’t yet post direct links with my KDE Discuss account. Below is a screenshot of my full message with links.