qt-kde-620x350And yes – let me get this clear right from the start: this Plasma 5.2.0 desktop environment will replace the KDE 4 packages you have installed.

What is this new ‘Plasma 5’

Plasma 5 is the “next-gen” KDE desktop. It has been in development for a long long time, with the goal of providing a gradual migration path away from the well-known KDE 4 desktop. All of this with the KDE 4.0 “debacle” in mind. You may recall that the KDE community released KDE 4.0 as a “tech preview” i.e. not ready for production, however some distributions upgraded their KDE from 3.x to 4.0 regardless of that. The backlash from the user community was understandable of course, because they went from a stable KDE 3 desktop to a buggy and crippled KDE 4 desktop. This was often blamed upon KDE itself, but that does the developers and their software grave injustice – it was the distros who forced their users to a non production-ready version of KDE,so it should be those distros who should be criticized for their bad judgement. Still, even to this day, harsh words about KDE 4.0 are targeted at its developers, not at the distros who made a strategic error.

Nevertheless, here we are, with a shiny KDE 5 desktop environment!

KDE 5 makes a switch from Qt 4 to Qt 5 as the base graphical toolkit. The old KDE 4 libraries have been ported to become the Frameworks: Qt 5 modules with no dependencies except Qt 5 and optionally, other Frameworks. This allows non-KDE developers to adopt the Frameworks in order to provide an expanded Qt 5 feature set. This porting effort has been going on for a long time now (its first technology preview for Frameworks was little more than one year ago) and the Frameworks are mature technology now. Plasma 5 is the set of packages that provide the core Desktop experience, built on top of the Frameworks.

The release of Plasma 5.2.0 earlier this week was the turning point for me – this release is the first one that I actually consider ready for prime-time, capable of replacing the KDE 4 Workspace. The KDE Applications (currently at version 14.12.1) are the collection of software which used to be grouped in meta-packages like kdebase, kdeedu, kdegraphics, kdemultimedia etcetera. The Applications currently get huge attention from the developers, because that is where the hard work is being done the coming year. Slowly, all individual Applications are being ported away from Qt 4 and the KDE 4 libraries, to Qt 5 and the Frameworks. In Applications 14.12.1, the only ported apps to date are kate, konsole, analitza, gwenview, kalgebra, kanagram, khangman, kig, parley, kapptemplate,  and okteta. As you can see, still a long way to go.

These KDE 5 packages of mine are going to be your only KDE desktop. The “kde-workspace” package which provided the well-known KDE 4 workspace has been replaced by “plasma-workspace” and the good old KDM graphical login manager has been retired and replaced with SDDM. While you will be presented with a pretty Plasma 5 workspace, most of the KDE applications you’ll be using are the familiar KDE 4 versions (with updates and bugfixes), nicely blending in to the new Breeze theme.

Some Plasma 5 highlights I mentioned in last year’s preview: Plasma 5 improves support for high-DPI displays and comes with a “converged shell”, i.e. one Plasma codebase for different target devices like desktop computers, laptops, tablet, phones etc. Plasma 5 uses a new fully hardware-accelerated OpenGL(ES) graphics stack. And with the Breeze themed artwork and its own Oxygen font, this desktop looks clean and modern.

Plasma 5 follows the same trend you can also witness in Android 5, Windows 8 and OS X: gone are the colourful, exuberant 3D-ish icons, buttons and other graphical design elements.  Flat and monochrome is the new dogma. The result is too clean in some regards, is my personal opinion: the monochrome system tray icons are just plain ugly and I get flashbacks of Windows 3.1 sometimes. Judge for yourself.

What to expect from these Slackware packages

These packages are only going to be useful if installed on top of Slackware -current. They are replacing the KDE 4 packages (plus adding/upgrading a lot of dependencies) that you might have installed. There is no co-installable option. Therefore if you rely on your KDE desktop for your daily productive work, please consider your upgrade carefully. The upgrade/migration should be painless if you follow the README instructions, but I can not guarantee that there will be no deal-breakers for you (missing functionality or persistent crashes).

Highlights:

  • Lots of packages in the ‘deps’ department which are completely new to Slackware. Since KDE 5 is built on Qt5 (KDE 4 had Qt4 as its base) you’ll find many Qt5 related packages. Also, in order for Qt4 and GTK based applications to dock into the Plasma 5 system tray, more dependencies were needed. So, apart from updates to regular Slackware packages, these are the new ones (some of them will be familiar if you are already running my KDE 4.14.3):
    LibRaw, OpenAL, akonadi-qt5, eigen3, gst1-plugins-base, gst1-plugins-good, gstreamer1, json-glib, libappindicator, libdbusmenu-gtk, libdbusmenu-qt5, libepoxy, libfakekey, libindicator, orc, polkit-qt5-1, qca-qt5, qt-gstreamer, qt-gstreamer1, qt5, sni-qt, wayland and xapian-core.
  • Qt 4.8.6 of Slackware was patched to support the docking of Qt 4 application icons into the Plasma 5 system tray (and the ‘sni-qt’ package actually implements this support). While I was at it, I also added some patches which Libreoffice requires for native KDE file-open dialog support.
  • Note for users of multilib Slackware64 and also using Skype: you will have to grab the 32-bit version of Slackware’s “libdbusmenu-qt” and my “sni-qt” packages and run “convertpkg-compat32” on them and then install both “libdbusmenu-qt-compat32” and “sni-qt-compat32”, or else Skype won’t be able to dock its icon in the Plasma 5 systray.
  • A bit sneakily, I built phonon-vlc for you. You will also need a VLC package to be able to use phonon-vlc though.
  • I added the latest Calligra 2.8.7 office suite.
  • Even though I compile a ‘kde-workspace’ package as part of the whole set (otherwise kdeartwork refuses to compile), I do not actually ship that package. It conflicts with the new plasma-workspace package.
  • Several source tarballs in Plasma 5.2.0 have not been compiled to Slackware packages: libbluedevil and bluedevil (they need BlueZ 5 which is not part of Slackware), muon (a debian/ubuntu package manager), libkface (needs opencv which I was not willing to add as a dependency).
  • One dependency which you’ll probably find curious, is wayland. It is required in order to compile KWin’s X11 driver, but it is apparently not needed at runtime. Nevertheless, I left the package in, just in case you want or need to recompile kwin.
  • Graphical login: KDM has been replaced with SDDM. Installation of the sddm-qt5 package triggers the creation of a “sddm” user and group. The “sddm” user is then also added to the “video” group. If you already have a local “sddm” account, then all of that will be skipped. You’ll have to add the “sddm” user to the “video” group manually if you experience graphical glitches.

Testing Repository URL

I still consider KDE 4.14.3 the “latest stable” version for Slackware-current, and therefore the repository URLs http://taper.alienbase.nl/mirrors/alien-kde/current/latest/x86_64/ (for 64-bit) and http://taper.alienbase.nl/mirrors/alien-kde/current/latest/x86/ (for 32-bit) will keep pointing to KDE 4.14.3. You can use this repository URL for slackpkg+ or slapt-get or whatever package manager you use.

The URL http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86_64/ (for 64-bit) and http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86/ (for 32-bit) is pointing to my KDE 5 testing ground. I consider Plasma 5.2.0 as a “testing” release, with potential to be your next stable desktop, but with some caveats and reservations. The URL itself will remain permanent, even when the versions of the software components get updated. Currently “testing” points to version “5” in the repository because versions of Frameworks, Plasma and Applications are not co-ordinated and package updates may appear in the next months for these sub-sets. The “5” is a good middle ground. You should use this “testing” URL when you configure slackpkg+ or slapt-get if you want to upgrade to Plasma 5.

You must use only one of these URLs! I remind you that the KDE 5 preview I released last August was meant to be installed in parallel with KDE 4.14… but these new KDE 5 packages I am releasing today are going to replace the majority of KDE 4 packages. Therefore, the upgrade from KDE 4 to KDE 5 must be done manually, by closely following the provided README . Reading that README is even more important than before!

Enabling SDDM in runlevel 4 instead of KDM

Runlevel 4

If you want to see the new graphical session (login) manager SDDM in action, add the following lines to the Slackware file “/etc/rc.d/rc.4” right after the line: echo “Starting up X11 session manager…”

# — 8< ————————————–
if [ -x /usr/bin/sddm ]; then
exec /usr/bin/sddm
fi
# — 8< ————————————–

… and then switch to runlevel 4 by typing at the command prompt (as root):

# init 4

Select “Plasma” from the SDDM session dropdown. Alternatively, if you prefer good old runlevel 3, you can type this at the command prompt (logged in under your own regular user account):

$ xwmconfig

… and select “xinitrc.plasma” as your default window manager for X11. Then run:

$ startx

To enter your desktop session.

Installing or upgrading Frameworks 5, Plasma 5 and Applications

As always, the accompanying README file contains full installation & upgrade instructions. Note that the packages are available in three subdirectories below “kde”, instead of directly in “kde”. This makes it easier for me to do partial updates of packages. The subdirectories are “kde4”, “frameworks” “plasma”,  “plasma-extra” and “applications”.

Upgrading to this KDE 5 is non-trivial. You will have to remove old KDE packages manually. If you do not have KDE installed at all, you will have to install some of Slackware’s own KDE 4 packages manually.

Where to get the new packages for Plasma 5

Download locations are listed below (you will find the sources in ./source/5/ and packages in /current/5/ subdirectories). Using a mirror is preferred because you get more bandwidth from a mirror and it’s friendlier to the owners of the master server!

Notes

  • In earlier preview release, HPlip would show an error message about not finding a system tray area. The reason is because the Plasma 5 workspace does not implement the X11 “Xembed” protocol. The system tray area works differently now. Not just HPlip, but all other applications that are not part of  Plasma  5, would have this issue, but only HPlip shows an error. Therefore some additional work was required to make the icons for Dropbox, Skype, Chromium, etc show in the Plasma 5 systray. This was done in the form of several notification support packages in the “deps/” directory and a patched Qt 4.
    • There is a solution for applications like SCIM who still can’t show a systray icon even with these added packages –  which is not elegant, but it works. Use a third-party Xembed system tray implementations like stalonetray or wmsystemtray . I have stalonetray and wmsystemtray in my own repository (I like wmsystemtray better). Both are also available at SBo.
  • Certain conditions may crash your Plasma Shell. I noticed this in a QEMU virtual machine where it was reliably reproducible: The crash occurs every time you move your mouse pointer into an Application Window placeholder in the taskbar. A crash of plasmashell makes your desktop go black and you are left with only the application windows that were currently open. Automatic restart should happen, but not for me unfortunately. You can fix it if you had a Konsole window open at the time of the crash. Type “plasmashell –shut-up &” and your desktop will re-appear.
  • The updated harfbuzz package breaks the library’s ABI. As a result, LibreOffice 4 will no longer work (error looks like “symbol lookup error: libvcllo.so: undefined symbol: hb_icu_script_to_script“).
    • Solution: Downgrading to the original Slackware harfbuzz package solves it, which is a pity because I thought I had taken care of the ABI breakage by applying a patch which re-adds that missing symbol.
  • The hardware keys for altering volume and mute still do not work on a global level (at least on my Lenovo T400 laptop). They seem to work for some applications – VLC is one of them. Sound is working fine though.
    • Solution: How dumb of me… just run “kmix” and a systray icon will appear, and the support for on-screen display of your hardware volume buttons will be enabled.
  • KRunner (Alt-F2) will still not save your command history.
  • When you try SDDM in runlevel 4 and the screen stays black with a blinking cursor in the upper left, this is probably caused by a missing homedirectory for the “sddm” user.
    • Solution: Check the output of command, it should return “/var/lib/sddm” and that directory must exist and be owned by the “sddm” user:

      $ getent passwd sddm | awk -F ‘:’ ‘{print $6}’

  • Even though you’ve selected “Plasma” as your desktop in the SDDM dropdown or in “xwmconfig”, the KDE 4 desktop is still starting up instead of the Plasma 5 desktop.
    • Solution: Remove the kde-workspace package and re-install the plasma-workspace package.
  • I have installed slackpkg+ and configured it as instructed. After installing KDE 5, when I run “slackpkg upgrade-all” it tries to pull in or upgrade all sorts of original Slackware packages. What’s up?
    • Solution: none yet… you’ll have to be careful for a while until I figure out what to do with all those packages.
  • The shutdown and reboot options are missing from the Leave menu.
    • Solution: a simple patch which removes the use of “kwrapper5” to start the KDE services will bring back both options. Kwrapper is meant to speed up the start of the Desktop Workspace and be a bit friendlier on resource usage but if you really do need shutdown and reboot options present, then apply the following patch to “/usr/bin/startkde”:
    • --- /usr/bin/startkde.orig       2015-01-31 18:09:25.744173291 +0000
      +++ /usr/bin/startkde    2015-01-31 17:49:18.938578280 +0000
      @@ -380,7 +380,7 @@
       # lock now and do the rest of the KDE startup underneath the locker.
       KSMSERVEROPTIONS=""
       test -n "$dl" && KSMSERVEROPTIONS=" --lockscreen"
      -kwrapper5 ksmserver $KDEWM $KSMSERVEROPTIONS
      +ksmserver $KDEWM $KSMSERVEROPTIONS
       if test $? -eq 255; then
         # Startup error
         echo 'startkde: Could not start ksmserver. Check your installation.'  1>&2
  • Please report any other issue you encounter and I will add it here if it is serious enough.

Have fun! Eric