Plasma desktop with global menu, app title and panel buttons

Updated: August 26, 2019

Several weeks ago, I wrote my article slash guide on how to style the Plasma desktop to appear somewhat like a Mac. It wasn't a perfect one-to-one transformation, but it was sufficiently pretty and elegant. Then I got me thinking. How far can I take this experiment? How about full Unity?

Again, this ain't a new topic, and I have already made the Plasma instance on my Asus Vivobook, which used to run Trusty and have since been upgraded to Bionic, look somewhat like the Unity desktop - in addition to the actual Unity desktop, that is. Not a complete change, though. And that's my next objective. However, this is a rather lengthy and non-trivial topic, so I'll start with something simpler. Let's first see how you can have integrated buttons for maximized windows and application titles in the top panel in Plasma.

Teaser

Tasks for today

So, before we delve into the full retro experience, what I want to show you is the following. Plasma with a top panel that has a complete gamut of goodies - window buttons when apps are fully maximized, app titles and the app menu. The last item is quite easy, you just add the right Plasma widget, and done. We've seen this in the aforementioned guides.

But now, we need more. Well, the author of the Latte Dock, which I used in my Mac wannabe test, has actually created just the extras we need. Currently, those are not available through the standard channels or as plugins for the dock, so you will need to manually grab and install these. Hopefully, one day, you'll be able to just use them as widgets, without any extra effort*.

* Small inline update: Indeed, by the time you read this article, the widgets may already be available in Discover. That makes the compilation steps listed below unnecessary. However, for the sake of completeness, I am going to leave the instructions as they are, in case you ever need them. See the updates section toward the end of this article.

Window Buttons applet

I decided to run this test in Plasma 5.16.1 in KDE neon, which means Ubuntu underneath. Hence, this tutorial will focus on the bits and pieces you get there. But if you try the same on say Manjaro or Fedora, the names of packages and libraries will be different.

So the first piece of nice code we need here is the Windows buttons applet. To compile this, you will need quite a few extras. You will need the generic build package (build-essential), cmake, extra modules for cmake, and several Qt and KDE development libraries. If you just try to run the installation script without, you will see some juicy and not very explanatory errors:

CMake Error at CMakeLists.txt:14 (find_package):
Could not find a package configuration file provided by "ECM" with any of
the following names:

ECMConfig.cmake
ecm-config.cmake

/install.sh CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28 (find_package):
Could not find a package configuration file provided by "Qt5Qml" with any
of the following names:

Qt5QmlConfig.cmake
qt5qml-config.cmake

Add the installation prefix of "Qt5Qml" to CMAKE_PREFIX_PATH or set
"Qt5Qml_DIR" to a directory containing one of the above files.  If "Qt5Qml"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
CMakeLists.txt:17 (find_package)

Hence, you need the following for your build:

sudo apt-get install build-essential cmake extra-cmake-modules qtbase5-dev qtdeclarative5-dev libkf5declarative-dev libkf5plasma-dev libkdecorations2-dev gettext

Now, extract the downloaded the archive, and in this directory, on the command line, run:

./install.sh

Once the build completes successfully, Window buttons will be available as a standard Plasma widget that you can add to either the Latte Dock or any standard Plasma panel. Position the widget anywhere you like. Next, you can customize the looks.

You have the option to decide which decorations to use (current means current theme), how to position the window buttons (change the order to match your desktop setup), as well as tweak the spacing from the other elements in the top panel. You can also add flexible or set spacers for best effect.

Window buttons settings

To get the Unity-like experience, you will want to use Current decorations (we can always change) and rearrange the buttons via drag & drop to use close, min, max - and you also need to make the same Titlebar changes in Plasma settings. Then, you also want to show the buttons only for when the Active window is maximized. Left margin needs to be set to something like 5-6 pixels.

Reordered buttons

And here we go, max on, max off:

Window buttons, not maximized

Window buttons, maximized

Window Title applet

The second tool you want is Window Title applet. Download and extract the archive. Then, on the command line, in the extracted directory, run the following command:

plasmapkg2 -i .

kf5.kpackage: Generated  "/home/rogerino/.local/share/plasma/plasmoids//kpluginindex.json"  ( 3  plugins)
Successfully installed /home/rogerino/Downloads/applet-window-title-

The applet will now be available as a widget. Add it to whichever panel you like, and then right-click to access the settings, and make changes. You have the option to display an icon if you like, as well as decide what text is shown. You can just show the application name, and/or also include the title of the currently shown content, like a Web page of a file name. You can tweak the left margin to create some distance from the window buttons you've added.

Windows Title settings

Putting it all together

So what you need is a top panel, with the window buttons, window title, global menu. Ignoring themes, icons, and decorations, you get a very modern, very non-KDE look that mimics the Unity experience in a rather cool, slick way. Fast animations, too. Plus it was robust and stable during my testing, without any problems.

Nice looks 1

Nice looks 2

Widgets in Discover (update)

Since it usually takes me a few days - or even weeks - between the time I write an article and eventually publish it, there can be quick developments and updates in the application/software lifecycle. Indeed, with further tests done in Plasma 5.16.1, I found out that these widgets (and friends) seem to be available through the normal route in Discover. This means you can try to install and use them, without any need for manual compilation. You should try this venue first - but from what I've seen, while the buttons widget is available, the installation is still manual. Hence, for the time being, my tutorial is still valid. Anyway, try all and every options, starting with the simplest one first!

Window title widget in Discover

Conclusion

There we go. Mission accomplished. We now have a top panel look & feel that is similar to how Unity does that, and to some extent, Mac, too. The combo of max. window buttons, application titles and global menu make for a compact vertical space saver, and allows you to pull off some fancy tricks in front of your friends and colleagues. Indeed, the transition effects and smooth and slick.

However, the setup isn't trivial. You do need to manually compile these plasmoid, hence this article, and there is extensive customization, too, hence this article. Hopefully, you are happy with what we've achieved today, and that means we can advance to the next stage in this transformation - a Unity-like desktop. Well, that's a topic for the next article in this series. Stay tuned.

Cheers.

You may also like: