KWin and tiling

Software

Personally I haven’t ever been a big user of tiling windowmanagers such as i3, awesome and what not, is not much the workflow style I want 24/7 out of my desktop, but there is definitely something something to say about that kind of multitasking when it makes sense, when is important to see the status of multiple windows at once for some particular task.

Plasma’s KWin has since a long time a basic support for tiles via the quick tiling support, by either dragging a window at edges or corners, or via keyboard shortcuts. This feature is very good, but very basic, and while there are 3rd party tiling extensions such as Bismuth which is a very nice thing, but window geometry managing outside the core always can bring you only so far.

Over the last month I have been working to expand a bit the basic tiling capabilities, both the quick tiling with the current behavior and a more advanced UI and mechanism which lets the user to have a custom tiling layout. Here it is a very short screencast about it.

tiling manager effect

Tiling is done by a full screen editor done as a fullscreen effect where is possible to add /remove/resize tiles. When moving a window if the Shift modifier is pressed, the window will be dropped in the nearest tile. Resizing the tile in the editor will resize all the windows connected, and on the converse, resizing tiled windows will resize the tiles as well. (also the traditional split screen quick tile will gain this feature, so if you have 2 windows tiled to get half of the screen each, resizing one will resize both)

Another use case we thought about for this tiling feature is to address people which have those fancy new ultra wide monitors.

Random stock photo from the interwebs of an ultra wide screen

There are very few applications which have an UI that actually make sense maximized on such proportions (i could imagine perhaps KDEnlive, Krita and very few other productivity apps). Most applications just look wrong, but with custom tiling areas, those can become sub “maximization” zones.

It is not intended to be a full fledged replacement for I3 or Bismuth, but rather an hopefully robust mechanism in the core with a pretty minimal and unobtrusive default ui, then the mechanism will have scripting bindings which should allow for 3rd party extensions to use it and implement interesting variations of the tiling WM out of it.

For now the feature is quite basic, a notable thing missing which i still hope to get in time for 5.27 is having separate tiling layouts per virtual desktop and activity (for now they’re per-phisical screen), but hopefully the full thing should land on a Plasma 5.27 release near you.

15 thoughts on “KWin and tiling

  1. Anonymous

    Very niice! I particularly like that you can use the mouse and don’t have to memorize yet another set of key bindings. And the simple resizing … This will certainly be a flagship feature of 5.27.

    1. Oded

      I also appreciate the mouse UX, but I would love to also have keyboard binding as that is my main workflow for KWin’s quick tiling feature.

      1. UbIx

        Me to, especially if after a restart my dedicated window arrangement is gone.

        Mostly I have two Dolphin windows open, top to bottom, which have a wiwidth of about 1/3 (the right 1/3 are some system monitoring plasmoids I like to see.

        If I use + then the window go to the left but zoomed up to 50% width. But I would prefer that the window go to the left with the with till the next window in the middle. Proposal was something like ++ (or right) that the window will fit between left side and right side.

        2nd proposal, with the similar ++ (or down) the window should be fit between the top and an existing window or split 50%. Similar like at the mouse window in the video.

  2. UbIx

    Looks very interesting for me too.
    I won’t use a complete tiling manager, but sometimes you have the need to do work using several applications simultaneously. Then is not esy to find a good tiling.

  3. Pingback: Links 31/10/2022: Portmaster’s 1.0 Release, FuguIta 7.2, and GNU Make 4.4 | Techrights

  4. nyanpasu64

    I’m still interested in the idea of a tabbed stacking system as an alternative to Alt-Tab which displays the name of each history every visually, so you don’t have to memorize or search the Alt-Tab list. I’d try it out in Pop OS, but I don’t want to use GNOME Shell because it’s all JS and GNOME isn’t a good interoperable Linux desktop citizen.

  5. Kaiwalya Joshi

    If I may make a feature-request, please add the ability to have seperate virtual-desktops for each monitor.

    This feature has been asked previously: https://forum.kde.org/viewtopic.php?f=289&t=168093

    Other window managers like i3 allow you to do this: https://i3wm.org/docs/userguide.html#workspace_screen

    A workspace in i3 is a virtual-desktop in KWin, and each virtual-desktop can be pinned to each monitor.

    As a concrete example, I have 3 monitors and nine virtual-desktops: 1,4,7 to monitor-1, 2,5,8 to monitor-2, and 3,6,9 to monitor-3. It tremendously helps with productivity.

    As a long time KDE user, the tiling work alonside these Virutal Desktop improvements would make myself and many others happy.

    If this cannot be done in the KDE/Plasma 6 time-frame please let me know how I can contribute to KDE to make this happen for KDE/Plasma 7.

  6. emvaized

    Looks promising! Perhaps I’ll think about adding something like these overlay buttons in my Snap Assist kwin script.

  7. Pingback: KWin and tiling - H4Host.com - Latest Web Hosting News

  8. Pingback: KWin and tiling - SharewarePile.com - Latest Web Hosting News

  9. Pingback: KWin and tiling - SharewarePile.com - Latest Web Hosting News

  10. Pingback: KWin and tiling - SharewarePile.com - Latest Web Hosting News

  11. Pingback: Mastodon explodes, GIMP scam, KDE tiling: Linux + Open source news - VPS and VPN

  12. John

    Hello Marco,
    I normally do not comment on blogs but I make an exception to tell you that this is a really important feature for me, that indeed will help me to more fully utilize the big monitor I am ordering right now. Very good, this kind of functionality should be in the core and maintained as an integral part of KDE.
    Thanks a lot!

Comments are closed.