Bug 165933

Summary: Tile windows vertically / horizontally
Product: [Plasma] plasma4 Reporter: Dotan Cohen <kde-2011.08>
Component: widget-taskbarAssignee: Plasma Bugs List <plasma-bugs>
Severity: wishlist CC: andrei.ilie, bluedzins, dan.garou, highbeta, kdebugs, kolAflash, nate, nsm.nikhil, philippe, simonandric5
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: Screenshot of MS Windows XP

Description Dotan Cohen 2008-07-07 11:56:19 UTC
Version:            (using KDE 4.0.83)
Installed from:    Ubuntu Packages

An option should be added that allows one to select N (2 or more) items in the task bar, and to have their windows opened such that they take the maximum space vertically and (screenWidth-verticalTaskbarWidth)/N space horizontally. A similar vertical option should be added as well.

This is especially useful for opening two documents side by side. Windows and possibly also OS-X have this ability. Should I provide screenshots of these systems?
Comment 1 lucas 2008-07-07 12:02:14 UTC
Similar to bug 59338 and bug 150310.

A screenshot of how you actually select multiple windows would be helpful.
Comment 2 Dotan Cohen 2008-07-07 12:58:53 UTC
Bug 150310 asks to tile groups of windows, so that bug would actually depend upon the ability to tile, which is what this bug is asking for. So 150310 should be marked as depending upon this bug.

Bug 59338 is asking for something similar but different. I'm not familiar with Ion but I've seen it before. It is not tiling.
Comment 3 Dotan Cohen 2008-07-07 13:08:23 UTC
Created attachment 25897 [details]
Screenshot of MS Windows XP

The top part of the image illustrates the differences between active (selected)
and inactive windows in MS Windows XP.

The bottom part shows two active (selected) windows, and the context menu. This
was done by holding the Ctrl key and left clicking on each window. Then, the
mouse was right-clicked on one of the windows. The menu items for 'horizontal
tile' and 'vertical tile' can be seen.
Comment 4 Dotan Cohen 2008-07-07 13:12:48 UTC
Note about screenshot: if it's not obvious, I have configured MS Windows XP to use a vertical taskbar, as opposed to the default horizontal taskbar. The behaviour is the same for the default horizontal taskbar.
Comment 5 lucas 2008-07-07 13:21:30 UTC
Rereading bug 150310, this one is actually a duplicate of it as both revolve around task groups. Will keep this one as it has more info.

Both bugs depend on bug 59338, which is the main window tiling one contrary to the amount of Ion talk in it and will need to be completed first before this one is even started. Also the taskbar will also need task group support, can someone from Plasma expand on this please.
Comment 6 lucas 2008-07-07 13:22:14 UTC
*** Bug 150310 has been marked as a duplicate of this bug. ***
Comment 7 Dotan Cohen 2008-07-07 14:29:11 UTC
@Lucus: I see that you have changed the Summary to specify tiling by taskbar group. That is not what I'm asking for, that is what Bug 150310 is asking for. I am asking for the ability to tile in general. Specifically, I often need to tile a Firefox window with a KPDF window, which would not be in the same group. I recommend reopening 150310 as he is asking for something more specific (tiling per group).
Comment 8 lucas 2008-07-07 15:23:45 UTC
Tiling in general is bug 59338 so I can mark this one as a duplicate of it if that is what you want (Read through the entire bug as well as all its duplicates to see exactly what will be done, the bug started out as Ion but then became more general later on). However even if that is the case tiling by the taskbar is also something that I would like and your screenshot visualize exactly that so I'll be leaving this open as a separate bug as it also requires the help of the Plasma team unlike bug 59338 which is a KWin specific. If you have a suggestion for tiling in general (No taskbar) please add a comment on bug 59338, if you have anything to add to Plasma integration with tiling comment here instead.

As for bug 150310 your method of selecting windows and groups are treated identically in the code, so adding one will add the other automatically. This is why I have marked one as a duplicate.

Keep in mind that I am the developer currently assigned to window tiling and you will be able to tile Firefox with KPDF when it's added without trouble.
Comment 9 Dotan Cohen 2008-07-07 15:47:06 UTC
Thanks for the explanation, Lucas. I trust you to implement it in an intuitive and productive fashion, such that tiling non-related apps (such as Firefox and KPDF/Okular) will be possible.

One idea that I do have is that it would be nice if one could _add_ a new window to the current tileset (windows tiled). For instance, a user has Firefox and Okular tiled (each takes 100% of the available vertical space and 50% of the available horizontal space, without interfering with vertical toolbars). He could then select Dolphin and add it to the tile: an animation would have Firefox and KPDF shrunk to 33% and Dolphin added. However, it is important that tiling work before such animations and accessories are added.
Comment 10 Lubos Lunak 2008-07-08 15:19:33 UTC
Bug #59338 is about an Ion-like tiling system that, among other things, dynamically manages and updates the tiles. This specific item can either be built on top of it, or it more simplistically can just re-arrange those windows manually (where by manually I mean by telling KWin to do it, not by doing it really manually in plasma).
Comment 11 Dotan Cohen 2008-07-08 18:20:01 UTC
However you see fit is fine, Lubos. I am not familiar with the tiling effects of Ion. Thanks.
Comment 12 lucas 2008-09-04 15:46:07 UTC
*** Bug 163655 has been marked as a duplicate of this bug. ***
Comment 13 Dotan Cohen 2009-04-24 17:41:15 UTC
Going through bug 59338 I see that it does _not_ need to be implemented to solve this bug.

This bug can be solved by letting the user select N windows, and have each one maximized vertically, but take up screenWidth/N pixel wide. This way, the user could easily set two windows next to each other.

If the devs need more screenshots to see why this is desirable, I will create them. Thanks.
Comment 14 Dotan Cohen 2009-04-26 12:25:40 UTC
I am reverting to an earlier bug title to better reflect the goal of this bug. Specifically, it does not matter to me to which taskbar group the windows belong. In fact, my workflow often consists of tiling different applications, ie, Okular and OOo Writer.
Comment 15 James 2009-05-03 19:01:01 UTC

I'm working on something that does exactly this. At the moment it only tiles windows together so that they are reachable with tabs at the bottom, but I'm adding tiling views also.

See bug 42023

The code is at git://afterclap.com/kittens

Comment 16 Dotan Cohen 2009-05-04 20:07:49 UTC
> I'm working on something that does exactly this. At the moment
> it only tiles windows together so that they are reachable with
> tabs at the bottom, but I'm adding tiling views also.

The only thing that this bug requests is that the user could maximize N windows together, such that each window takes up 1/N of the screen. The taskbar items would remain as they are, and there would be no 'tabs'. OS-X and MS Windows have had this ability for years.

Allow me to clarify. The user would hold down Shift/Ctrl and click on N taskbar items, so select each taskbar item. Then right-clicking on the taskbar would present the user with a context menu of two items: Tile Horizontally and Tile Vertically. The user selects one, for example Tile Horizontally, and the window manager appropriately makes each window the full screen height (minus panel), and the [full screen width/N] such that N windows fit side by side.

> The code is at git://afterclap.com/kittens

Quoth the server, 404.
Comment 17 Thomas L├╝bking 2009-05-04 23:32:21 UTC
err, sorry for the shameless self-advertisement, but regarding the recent mumbo-jumbo around this, i tried sth. to handle this on the bespin deco (rev. >= 459) and am interested in how this works for ppl.

you can wheel the maximize button to and let the window take 1/2, 1/3, 1/4, ... of the screen width (starting from current width and wheel direction)
pressing control will do the same horizontally.
the idea is to use it in combination with the snapping functionality to setup a tiled workspace.

con: hidden feature
pro: fast&easy access ;-)
state: could need little more smartness (detecting the user wish)
Comment 18 James 2009-05-05 01:23:11 UTC
> > The code is at git://afterclap.com/kittens
> Quoth the server, 404.

It's a git repository of code, you check it out with:

git clone git://afterclap.com/kittens

Not using the browser!
Comment 19 Dotan Cohen 2009-05-05 16:42:07 UTC
> It's a git repository of code, you check it out with

I need more information before I would run executable code on my machine. In any case, I think that it is OT for this bug. If you have more online info you can email me (my address is shown right here in bugzilla) but please do not hijack this bug.
Comment 20 Andrei ILIE 2010-01-03 22:36:27 UTC
I also want to be able to tile windows vert / horiz like in MS Windows (they have this feature for a long time ago).

I suspect this feature request is a duplicate of:
   "Bug 59338 -  Window tiling (Ion-like window layout and control)"

How can I report this ?
Comment 21 Maciej Pilichowski 2010-01-04 17:07:53 UTC
As I explained in the other report, the other report is about _dynamic_ tiling, thus not duplicates.
Comment 22 kolAflash 2010-03-01 10:21:12 UTC
Just wanted to say, it's very sad that such an essential feature as the automatically arranging or tiling of windows is not possible in KDE 4! Just reminding: This bug was opened in July 2008!

If my memory is right, KDE 3 already had this feature, but it was actually placed at a very bad place. You had to middle-click on the desktop. So usually if you want to arrange windows, you got some of them opened, so you can't reach the desktop.
GNOME and XFCE have this feature and, like mentioned before even MacOS and Windows have it. Even Compiz has it (with the certain plugin)!

And because I don't want you to think I want to have it in KDE, because every other desktop manager has it: If you use your PC in a little more professional way, you usually got more then one window opened. So it's a very common task to arrange two or more windows beside each other.

And like mentioned before, it's also very important to be able to select, which windows should be arranged! The feature should be accessible by the window list AND two hotkeys.
In the window list it may should be possible to select multible windows using the CTRL-Key.
The hotkeys may work like this: One hotkey for arranging all non-minimized windows vertically and one for arranging all non minimized windows horizontally.

Comment 23 Nikhil Marathe 2010-03-01 16:15:25 UTC
Tiling windows vertically is now available. It's called quick tiling.

Other forms of tiling will be available in a proper tiling mode, which currently exists in a branch, but will be merged soon. That will make kwin a tiling WM like awesome/wmii/ion etc.
Comment 24 kolAflash 2010-03-01 19:40:13 UTC
OK saw it.

But (sorry for that, at all KDE and KWin 4 are really great) this actually isn't exactly what I was looking for.

May you already plan to include what I'm going to tell now. But to be sure...:
- Actually you can just arrange two windows vertically (one on the left side of the monitor and one on the right, if I didn't missed something)
- You can't arrange the two windows with one action. So right now it's not much more comfortable than using the mouse.

Please consider to implement the features I mentioned in my first comment :-)


P.S.: I'm using a dual monitor system and others may do the same. So specially if you got two monitors, you're maybe a professional user who likes automatic windows arrangement. So please think of an intelligent behaviour for multi-monitor systems.
Comment 25 Danilo 2014-03-29 00:01:25 UTC
Well, KDE is the best workspace I ever seen.

But we need this, please implement it!!!

Comment 26 Nate Graham 2017-12-15 17:46:12 UTC
Quick Tiling is the solution here in Plasma 5, and I feel like it's fairly fast and intuitive:

- Drag window 1 to the left side of the screen
- Drag window 2 to the right side of the screen


- Activate window 1 and press a left-side quick tiling shortcut
- Activate window 2 and press a right-side quick tiling shortcut

That's really not any slower than:

- Invoke tiling mode
- Select first window you want tiled
- Select second window you want tiled