Did you know you can use multiple Linux desktops at the same time?

Well, that's not exactly true. You will still only have one actual environment to work in. One taskbar, program launcher, window manager, session manager and all the rest. But you can totally pick and chose which package will fit each of these roles. More importantly, you can bring in individual apps designed for different desktops, and run them together in whatever abomination desktop-like environment you put together. And with some sweat and tears, things should mostly happily coexist together.

Mostly

For example, on my Debian-based XFCE desktop, I have replaced XFCE's native terminal with Gnome's similar but slightly more to my liking variant. I also prefer KDE's venerable twin-panel file manager Krusader to XFCE's native Thunar or whatever it's called.

Things aren't always as bad as in that last screenshot

While there's an occasional visual glitch and annoyance with this kind of mishmash (it's linux, after all), things are overall pretty stable.

And then I did a dist-upgrade to Debian 9.0 (stretch).

Krusader down

Krusader broken

Here's what I found when Krusader reappeared after the restart. All my settings gone. Icons broken. Padding all smushed together. None of the operations working. You can't see it on the screenshot, but it even had that awful tobaco-yellow KDE sheen all over it.

It turns out Krusader had finally made transition from 2.4.0-beta3 to 2.5.0. Along with a few bug fixes came transition to KDE5 Plasma desktop and QT5. Unlike QT4, the settings are no longer stored in its own special little sub-file system, but inside the standardized ~/.config directory. So krusader's config file was left in the old place.

Easy fix:

cp ~/.kde/share/config/krusaderrc ~/.config/

Hopefully the maintainers will add some provision to migrate these settings automatically.

KDE 5

Not a big improvement

OMG, this is somehow even worse. Time to handle the KDE5 situation.

KDE4 had a built in fallback mode which allowed its apps to look decent on other desktops. With qtconfig and qtconfig-qt4 tools, I was able to tell KDE apps to fall back to the "GTK" look, which made them look native on non-KDE desktops. These tools have no effect on KDE5 apps, and there doesn't seem to be a replacement available.

I faffed around with some manual environmental vars a bit, until I stumbled upon qt5ct. This is a nice little configuration app that lets you do basically the same thing as qtconfig, only for KDE Plasma environment.

Unfortunately, qt5ct has yet to enter Debian's APT repositories, so off I fell into the manual build land. Luckily, this blog article had a nice step-by-step guide. TLDR:

sudo apt-get install build-essential qt5-qmake qtchooser qtbase5-dev libqt5svg5-dev libpng-dev qtbase5-dev-tools qttools5-dev-tools qtbase5-private-dev libmtdev1 libmtdev-dev 
git clone https://github.com/mati75/qt5ct.git
cd qt5ct
QT_SELECT=5 qmake PREFIX=/usr/local
make -j 4
sudo make install

You will also need to load enviramental variables that tell KDE5 to load its theme through qt5ct.

At least I think that's what they do. Whatever, just add the following lines in one of startup env files for your session (I personally used ~/.xsessionrc):

export KDE_SESSION_VERSION=5
export KDE_FULL_SESSION=true
export QT_QPA_PLATFORMTHEME=qt5ct

Update 2017/03/03

If after this you have problems opening default file handlers (eg. double click on a ZIP file, nothing happens), it could be your xdg-open is confused which desktop environment you're running.

You can test by running xdg-open /path/to/file.zip in terminal. I got this:

/usr/bin/xdg-open: 566: /usr/bin/xdg-open: kde-open5: not found`

To fix it, add the following line to your ~/.xsessionrc (or other startup shell script):

export XDG_CURRENT_DESKTOP=XFCE

Restart your session (log out and in), and you should be able to execute qt5ct from the terminal.

Neat little app

Select gtk2 for style and Breeze as your icon theme. You can try your usual icon theme too, but my preferred theme (Oxygen) didn't have some of the glyphs Krusader needs. If you don't see "Breeze" here, you can install it like this:

sudo apt-get install breeze-icon-theme

Final tweaks

Finally

There, doesn't that look better?

Unfortunately, it still didn't work quite right. Any time I tried to perform a file operation, I was hit with this error:

could not start process cannot talk to klauncher the name org.kde.klauncher5 was not provided by any .service files

Luckily, thanks to a kind soul over at askubuntu.com, it was a pretty quick fix.

sudo apt-get install kinit kio kio-extras kded5

Finally, my precious krusader settled down into its usual state of flakey mediocrity, and I was able to move on to fixing other upgrade regressions on my system.