Project

General

Profile

unexist.dev

subtle

Assorted tidbits and projects

Gravity » History » Version 22

« Previous - Version 22/25 (diff) - Next » - Current version
Zafer CAKMAK, 08/02/2010 02:15 AM


Gravity\015\012\015\012{{>toc}}\015\012\015\012Each Gravity has got a number of Gravities which assign a certain placement on the screen.\015\012\015\012h2. Gravities\015\012\015\012Gravities are the subtle way to arrange clients. Each client has to be assigned to one Gravity and one of those Gravities. These Gravity are defined by a quadtuple x | y | width | height where x and y are the screen position in percent from the top left, x being down and y being left. Width and Height are the sizes of the client relative to the screen size.\015\012\015\012h2. How Gravities are applied\015\012\015\012We took the intuitive approach, as clients are sized to w and h and the center is being 'pulled' to the gravity point.\015\012\015\012+Examples:+\015\012\015\012* TopLeft (x = 0, y = 0, h = 50, w = 50)\015\012
\015\012  +---+---+\015\012  | c |   |\015\012  +---+   |\015\012  |       |\015\012  +-------+\015\012  
\015\012\015\012* Center (x=50, y = 50, h = 50, w = 50)\015\012
\015\012  +-------+\015\012  | +---+ |\015\012  | | c | |\015\012  | +---+ |\015\012  +-------+\015\012  
\015\012\015\012h2. How you change Gravities\015\012\015\012h3. via config\015\012\015\012Check the default subtle.rb file, constant GRAVITIES. There's a simpler Gravities configuration implementation too: http://pastie.org/662640\015\012\015\012h3. via Grabs\015\012\015\012You can set a Gravity by default by pressing Super and the numlock key in direction you desire your window to be. Pressing again the same Grab will result in cycling through the rectangles.\015\012\015\012h3. via Subtlext\015\012\015\012You can set the Gravity via client.gravity = object, where object may be:\015\012* an Integer (Gravity ID)\015\012* a Hash {:gravity => Int, :geometry => Int}\015\012* a Subtlext::Gravity object\015\012\015\012h3. via Subtler\015\012\015\012TODO\015\012\015\012h2. Default Gravities\015\012\015\012* Top left (W-KP_7)\015\012gravity :top_left, [ 0, 0, 50, 50 ]\015\012gravity :top_left66, [ 0, 0, 50, 66 ]\015\012gravity :top_left33, [ 0, 0, 50, 34 ]\015\012\015\012* Top (W-KP_8)\015\012gravity :top, [ 0, 0, 100, 50 ]\015\012gravity :top66, [ 0, 0, 100, 66 ]\015\012gravity :top33, [ 0, 0, 100, 34 ]\015\012\015\012* Top right (W-KP_9)\015\012gravity :top_right, [ 100, 0, 50, 50 ]\015\012gravity :top_right66, [ 100, 0, 50, 66 ]\015\012gravity :top_right33, [ 100, 0, 50, 34 ]\015\012\015\012* Left (W-KP_4)\015\012gravity :left, [ 0, 0, 50, 100 ]\015\012gravity :left66, [ 0, 50, 50, 34 ]\015\012gravity :left33, [ 0, 50, 25, 34 ]\015\012\015\012* Center (W-KP_5)\015\012gravity :center, [ 0, 0, 100, 100 ]\015\012gravity :center66, [ 0, 50, 100, 34 ]\015\012gravity :center33, [ 50, 50, 50, 34 ]\015\012\015\012* Right (W-KP_6)\015\012gravity :right, [ 100, 0, 50, 100 ]\015\012gravity :right66, [ 100, 50, 50, 34 ]\015\012gravity :right33, [ 100, 50, 25, 34 ]\015\012\015\012* Bottom left (W-KP_1)\015\012gravity :bottom_left, [ 0, 100, 50, 50 ]\015\012gravity :bottom_left66, [ 0, 100, 50, 66 ]\015\012gravity :bottom_left33, [ 0, 100, 50, 34 ]\015\012\015\012* Bottom (W-KP_2)\015\012gravity :bottom, [ 0, 100, 100, 50 ]\015\012gravity :bottom66, [ 0, 100, 100, 66 ]\015\012gravity :bottom33, [ 0, 100, 100, 34 ]\015\012\015\012* Bottom right (W-KP_3)\015\012gravity :bottom_right, [ 100, 100, 50, 50 ]\015\012gravity :bottom_right66, [ 100, 100, 50, 66 ]\015\012gravity :bottom_right33, [ 100, 100, 50, 34 ]\015\012