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