Window Tiling and KWin

12 Jul

OK, so some people reading this might already know what a Tiling Window Manager is and use one regularly. This isn’t for you. All this article will do is give you an opportunity to laugh at me and point out my sheer ignorance of the topic in the comments section below.

The main audience for this post should be the people that, like me, heard this was a new feature for KDE’s KWin in some blog post on Planet KDE and stared blankly, asking, "Well… what does that mean?" Hopefully, this post will clear up any doubts. Here we go.

KWin: The Floating Window Manager

KWin in its current incarnation (in the KDE 4.4 series and previously) is and has always been a floating window manager. Cue more blank stares. The reason it’s called a floating window manager is because windows, ‘float’ (duh): they overlap each other, clicking on one will bring it above others, you can click-and-drag to move them freely about the screen, resize them freely etc. etc. etc. This is all behaviour you’re likely accustomed to. It’s quite natural feeling: you can put windows anywhere, regardless of where other windows are and regardless of the edge of the screen. You could argue that this has some disadvantages:

  1. It’s difficult to make your entire screen useful – bits of your desktop background often show through, and that’s space that could be going towards applications showing information you’re interested in (if, like many, you don’t use plasma-desktop as a portal to that information anyway);
  2. It isn’t very organized – you probably already know what it’s like using only one virtual desktop. Your instant messenger contacts list might be under your web-browser while the conversation window is on the other side of the screen, you might spend ages looking for your E-mail client only to find it’s minimized and so on.

The validity of these arguments is debatable, and doubtless there are other arguments for and against floating window managers, but the meat and bone of the argument is some people simply prefer tiling window managers, while others prefer floating window managers. It isn’t important which is best, since they’re just two ways to do the same thing: manage windows. What’s important is that different people prefer different things, and you might just prefer KWin as a tiling window manager than as a floating window manager – and in 4.5, you’ll be given the opportunity to try it and find out.

KWin: The Tiling Window Manager

Tiling window managers behave differently: windows cover all of the available screen space, with no overlap and no gaps. You aren’t free to move windows wherever you like, but moving one window over another causes the two to swap positions. Creating new windows causes the existing windows to re-arrange, so the layout always remains the same regardless of what windows are open. This helps to maximize screen real-estate by making sure that no pixel is left unused.

It might seem hard to understand. It isn’t, when you use it for just a few seconds. In order to demonstrate, I’m going to show you some screenshots of KWin’s window tiling in action:

Two windows with Window Tiling

Here, two windows are open. They’re automatically put side-by-side. You can achieve something similar with the Aero Snap in Windows 7, but the similarities end there: you can’t pull those windows away from that position. You can’t resize them. If you, for example, drag the Kopete window over to the Konqueror window, the two swap places.

Now, I’ll open a new window:

New window opened: one boring conversation ensues

Notice that the new window hasn’t covered the other open windows, as in floating window managers: instead, the Kopete contacts window has moved to accommodate the new window. All your open windows are visible all the time, and all the screen space available is used.

What happens when you drag the contacts window to the web-browser window

Fortunately, though, since KWin supports both floating and tiling, this isn’t forced for all windows all the time – you can specifically set windows that you don’t want to tile from the window menu by right-clicking the titlebar and clicking, "Float window".

So, there you have it: what a tiling window manager is, how it works in KWin and what it means to you as a user. As you can probably guess, this isn’t very effective on my dinky little netbook screen, but when 4.5 is released I’ll probably be using this extensively on my desktop computer. Try it out yourself sometime – you might just like it. I sure do. 🙂

Powered by Blogilo


7 Responses to “Window Tiling and KWin”

  1. RRH July 13, 2010 at 08:58 #

    Thanks for clarification. I every wondered what window tiling is and here we go – nice explaination. 🙂

  2. kamesh July 13, 2010 at 10:21 #

    Very nice explanation about Kwin tiling manager. Eagerly waiting for KDE 4.5


  3. plop September 10, 2010 at 11:05 #

    How can I resize windows in tiling mode? If I have 2 windows, they take half of the screen but I can’t drop the border to make one larger than the other …

    • the Madman October 14, 2010 at 15:21 #

      Yeah, this isn’t implemented yet. Sorry, bud. 😦

  4. EvgenijM86 October 7, 2010 at 21:59 #

    Same problem – can’t resize window.

  5. Steven Sanchez June 17, 2012 at 15:05 #

    I was wondering if it is possible in the kde-netbook interface. I really like the search and launch approach, but i would like to use tiling in it, instead of opening every window full screen. I tried activating it in system settings but apparently it doesn’t work, and some things look really strange.

  6. dhillaoeu September 1, 2015 at 13:09 #

    Could you just mention where is the setting to switch to tiling?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: