FW: [GSoC] Tiling mode - a user's point of view

Matthew Woehlke mw_triad at users.sourceforge.net
Fri Apr 24 19:02:20 CEST 2009


Matthew Woehlke wrote:
> I haven't read through this yet, but looks like something worth looking at.
> 
> Please CC Nikhil when replying.

...or kwin, I suppose, which is what I'm going to do instead.

> Nikhil Marathe wrote:
>> Hi,
>>
>> I've written a preliminary and incomplete document describing how my tiling mode 
>> will work from the user's point of view.
>> It can be found [...] inlined below.
>> Please go over it, any suggestions are appreciated.
>>
>> KWin Tiling Mode usage details
>> ==============================
>>
>> This document attempts to give a summary of what KWin's tiling mode aims to 
>> accomplish from a user's view. Wherever I know that I'll be using certain 
>> classes, I will attempt to mention them, although at this point I do not know 
>> everything that I am going to need.
>>
>> This document is not to be considered a final version, functionality may change 
>> depending on design or UI issues as raised by the community.
>>
>> Terminology
>> -----------
>>  * Tile - a application window in tiling mode.
>>
>> * Plate - a set of Tiles, all of which have the same level in the
>> window stack. A Plate is implemented as a maximised Client without
>> decorations.

Any reason not to make plates container windows? That's how GAI would do 
it; give them borders so they can be resized, only take up part of the 
screen, etc. (You can also turn the borders off as with any other window.)

Will it be possible to "replace" the desktop with a plate, i.e. so all 
windows become tiles?

>> * Stack - a stack of Plates so that the user could put all
>> applications related to one task in one Plate and have multiple
>> Plates on the same desktop. This stack is actually KWin's default
>> stacking manager, but it is only managing Plates.

I don't follow this. Do you mean simply that a plate is managed like 
just another window?

>> Key bindings
>> ------------

We had a fairly lengthy discussion on keybindings on kde-usability-devel 
which I hope you will consider reading.

>> Entering tiling mode
>> --------------------
>>
>> The user is currently in normal stacking mode. When he activates
>> tiling mode from system settings (SS), all virtual desktops will
>> immediately have a new Plate, in which all current windows will be
>> tiled.

Um... why? This sounds like what I would do for 'change top container 
type from floating to tiled', but I'm not sure about making it the 
"normal" way to do tiling. The general direction Maciej and I seem to be 
following is that you would take a few windows and make a plate with them.

>> Plates
>> ------
>>
>> A Tile can belong to one or more plates. For example the user could
>> have one Plate where he is using an editor to write an article and
>> a browser for his research. In another Plate he could have his
>> email client. Each of these plates can be on one or more desktops (
>> ie. made sticky ).

Multi-parenting seems like it would be confusing. What's your use-case 
for this?

>> Special windows like dialog boxes, Run Command, will always be
>> launched in a seperate plate.
>>
>> In addition windows that are set to floating, get their own Plate.
>> ( or should they just be children of the root window? )

 From a technical standpoint, I think the answer is that they are always 
root children. (This becomes interesting, however, if root is a plate. I 
guess the answer is that the root needs split personalities, i.e. there 
can always be root floating windows.)

>> Since Plates are windows for KWin's stacking mode, the pager and effects should 
>> be able to move them using the mouse and so on.

Right.

>> Navigation among Plates
>> -----------------------

I am expecting Maciej to have fascinating comments here... :-)

-- 
Matthew
Please do not quote my e-mail address unobfuscated in message bodies.
-- 
I think I want my tombstone to read:
<name>
Process created <date of birth>
Signal 15 received <date of death>



More information about the Kde-usability-devel mailing list