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

Matthew Woehlke mw_triad at users.sourceforge.net
Fri Apr 24 18:23:43 CEST 2009


I haven't read through this yet, but looks like something worth looking at.

Please CC Nikhil when replying.

nsm.nikhil at gmail.com 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 at
> 
> http://22bits.exofire.net/gsoc/kwin_desc.txt
> 
> and inlined below.
> Please go over it, any suggestions are appreciated.
> 
> Nikhil
> 
> 
> ----------------------8<----------------------8<----------------------
> 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.
> 
>  * 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.
> 
>  * Mark - a boolean flag on a window which selects it.
> 
>  * Layout - A tiling arrangement. For starters, some of Awesome's layouts will 
> be included.
> 
> Key bindings
> ------------
> The arrow keys will be the default direction keys.
> 
> Meta will be used to initiate all actions in tiling mode. Anything to do with 
> tiling mode will require the use of Meta.
> 
> By default the action is meant to apply to a single tile, unless that action 
> doesn't make sense. In addition other modifiers will change the focus of the 
> action ( if relevant )
> 
> Alt - apply current action to entire Plate.
> 
> 
> 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.
> 
> 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 ).
> 
> In addition a Plate stores data about open applications and their positions 
> across sessions.
> 
> Each plate manages the layout of the windows within it and as such, Plate will 
> have all the layout logic.
> 
> 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? )
> 
> 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.
> 
> Navigation among Plates
> -----------------------
> Plates will be stacked. In this case:
> 
>  * Meta + Alt + Up/Down, Meta + Alt + Scroll
>         walk through Plate stack.
> 
>  * Meta + Alt + s - toggle sticky
> 
>  * Meta + Alt + number n - send Plate to desktop n.
> 
>  * Meta + Alt + Pg Dn - collapse this Plate into Plate below.
> 
>  * Meta + Alt + Shift + Pg Dn - collapse all Plates on this desktop into one.
> 
>  * Meta + Alt + F4 - close entire Plate.
> 
> Tile/Window operations
> ----------------------
> 
> Most usual shortcuts will continue to work as expected.
> 
>  * Alt + F4 - close window
> 
>  * Alt + F3 - window menu - some of the actions in here will need special 
> handling in tiling mode.
> 
>  * Moving and resizing with Mouse - moving will dynamically keep rearranging the 
> plate.
> 
> In addition tiling mode will have:
> 
>  * Meta + number n - send Tile to topmost Plate on desktop n.
> 
>  * Meta + Up/Down/Left/Right, Meta + Scroll
>         move Tile within the Plate
> 
>  * Meta + PgUp/PgDn - move Tile through Plates.
> 
>  * Meta + Ctrl + Up/Down/Left/Right - resize current Tile
> 
>  * Clicking the mouse - focus
> 
>  * Meta + Space - focus next tile ( walk through current Plate )
> 
>  * Meta + Ctrl + Space
>         Next layout
> 
> Panel applet
> ------------
> 
> When not in tiling mode, the applet can be used to quickly trigger tiling mode. 
> Once in tiling mode, clicking on the applet cycles through various layouts for 
> the current Plate.
> 
> Screen edges
> ------------
> 
> Halve - When a floating window is dragged to a screen edge it will become half 
> of the screen size. If the current plate has empty space this window will be 
> reparented to that Plate, otherwise a new Plate will be created. If this window 
> is already tiled, it won't do anything.
> 
> Compositing
> -----------
> TODO
> ---------8<------------8<------------------------



-- 
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