Overview
I wanted to experiment with approaching window management on my Solus machine running KDE using tiles. The reason behind this is to allow for more of the screen to be used up by application content and to remove title bars and their menus from the windows themselves and to push them to a latte dock panel. The end outcome of this is below using Krohnkite:
Options
Rather than using something like i3-gaps or dwm as a window manager I wanted to continue using KWin. With KWin I would keep the ability to manage floating windows, move applications via the mouse, and avoid having to reconfigure latte dock as my panel and dock. Through KWin Scripts the ability to tile windows can be introduced. The options I looked into and played around with were:
Of the three I found Krohnkite to offer the best out-of-the-box experience with having the ability to easily adjust the sizing and placement of windows, the documentation provided by the author, and the overall quality of the experience over the other two options. Issues that I had in both kwin-tiling and kwin-quarter was screen tearing or sluggish placement of the windows. At times it appeared that every tiled window that was displayed using either the kwin-tiling or kwin-quarter-tiling script all of the windows would be visibily re-rendered when adjusting their size or placement. Using Krohnkite I have yet to experience that.
The only issue that I have encountered, and is not the fault of Krohnkite, is that some windows have a specified minimum height and width. The consequence of this is that, on resizing of any windows, these particular windows will either cover other windows if the minimum set window has focus or simply extend underneath the focused window. This is easily fixed though through specifying using the ‘Configure Special Application Settings’ through invoking the Alt + F3
keys. Within this popup window add a new property and find the ‘Minimum Size’ option. Then specify it to be ‘Forced’ and provide a smaller value for the height and width, such as ‘10’ by ‘10’. Whenever a window that seems to overlap others on resize or extend underneath others simply do the above and the window will now respect the sizing of the tile it has been placed in. As long as the forced minimum size specified is small enough anyway.
Installation and Setup of Krohnkite
Installation of Krohnkite was pretty straight forward. Within KDE I used the ‘Get New Scripts…’ within the GUI and searched for Krohnkite and installed it. To add additional features I visited their github page’s enable user config section. I then followed the suggestions under their tips section in order to introduce colored borders, removing titlebars, and setting it up to use multi-screens. This ultimately led to the finished look demonstrated above.
Setting Up Latte Dock
With Krohnkite installed I wanted to have the latte dock panel to be able to handle displaying of the window’s title bar as well as its menu if it can be provided. This was done using the following Plasma widgets and applets: Window Title, Window Buttons, and Window AppMenu. Once installed they were simply added to the top Latte Dock panel as seen in the videos above.
For the Plasma Widget Window Title it can be installed using the Plasma 5 Widgets Explorer. the source code for Window Title is here.
Installation instructions for the Plasma Applet called Window Buttons is here.
Installation instructions for the Plasma Applet called Window AppMenu is here.
As a warning, at least on Solus, when executing the install scripts for Window Buttons and Window AppMenu several dependencies may need to be installed. The install scripts typically have a good error output that details what dependency was missing resulting it in failing to compile and install. Simply install the dependency it says is missing through the software center on Solus or through the command line using eopkg
. Repeat this process until the installation completes!
Conclusion
After installing the KWin script Krohnkite and then setting up the Latte Dock panel I now have a desktop where I can easily resize applications and have them organized into tiles, or various other layouts, and I reclaimed some of the screen estate that was otherwise taken up by title bars and menu bars!