Project

General

Profile

unexist.dev

/

subtle

Assorted tidbits and projects

Grabs » History » Version 22

Version 21 (Anonymous, 04/29/2009 04:39 PM) → Version 22/56 (Anonymous, 04/29/2009 04:39 PM)

h1. Grabs\015\012\015\012{{>toc}}\015\012\015\012[[Grabs]] are the button/keyboard mappings in [[subtle]]. Every button/keyboard combination can be a [[Grabs|grab]]. \015\012\015\012Genereally there exist three different grabs types:\015\012# Predefined grabs\015\012# Grabs which call a "Ruby":http://www.ruby-lang.org block\015\012# Grabs that exec a program\015\012\015\012Remember that the config is a complete "Ruby":http://www.ruby-lang.org file.\015\012\015\012The syntax of the config can be checked with: *subtle -k* or *subtle -k -c* @/path/to/config@\015\012\015\012h2. Keys\015\012\015\012The best resource for getting the correct key strings is probably your @/usr/include/X11/keysymdef.h@, but to make it easier here are some infos about it:\015\012\015\012* Numbers and letters keep their names, so *a* is *a* and *0* is *0*\015\012* Keypad keys need *KP_* as prefix, so *KP_1* is *1* on the keypad\015\012* Modifier keys have special meaning (Alt, Control, Meta, Shift, Super)\015\012* Keys usually have meaningful english names\015\012\015\012+Other+:\015\012* *Space*\015\012* *Tab*\015\012* *Enter*\015\012* *F1* - *F12*\015\012* *F1*-*F12*\015\012* *Left*, *Up*, *Right*, *Down*\015\012* *Next*, *Prior*\015\012* *Page_Up*, *Page_Down*\015\012* *Home*, *End*\015\012* *Insert*, *Delete*\015\012* *Add*, *Subtract*, *Multiply*, *Divide*, *Equal*\015\012* *Decimal*\015\012* *Num_Lock*\015\012\015\012h3. Chains\015\012\015\012[[Grabs|Grab]] chains are the combination of one or more modifiers and a key/button. The following two lists show the modifier/buttons that are available:\015\012\015\012+Modifier keys+:\015\012* A = Alt key\015\012* C = Control key\015\012* M = Meta key\015\012* S = Shift key\015\012* W = Super (Windows key)\015\012\015\012+Mouse buttons+:\015\012* B1 = Button1 \015\012* B2 = Button2\015\012* B3 = Button3 \015\012* B4 = Button4\015\012* B5 = Button5\015\012\015\012+Example+:\015\012<pre><code class="ruby">\015\012"S-B1" => Subtle::Grab::WindowMove\015\012"A-space" => lambda { |c| c.toggle_float }\015\012"W-F1" => "xterm -sb"\015\012</code></pre>\015\012\015\012h2. Predefined\015\012\015\012h3. Views\015\012\015\012Jump to the numbered view.\015\012\015\012* *Subtle::Grab::Jump1*\015\012* *Subtle::Grab::Jump2*\015\012* *...*\015\012* *Subtle::Grab::JumpN*\015\012\015\012h3. Windows\015\012\015\012Window [[Grabs|grabs]] manipulate/toggle various properties of client windows.\015\012\015\012* *Subtle::Grab::WindowMove*\015\012* *Subtle::Grab::WindowResize*\015\012* *Subtle::Grab::WindowFloat*\015\012* *Subtle::Grab::WindowFull*\015\012* *Subtle::Grab::WindowStick*\015\012* *Subtle::Grab::WindowKill*\015\012\015\012h3. Gravities\015\012\015\012[[Gravity]] [[Grabs|grabs]] manipulate the [[Gravity|gravity]] of the client on the current view.\015\012\015\012* *Subtle::Grab::GravityTopLeft*\015\012* *Subtle::Grab::GravityTop*\015\012* *Subtle::Grab::GravityTopRight*\015\012* *Subtle::Grab::GravityLeft*\015\012* *Subtle::Grab::GravityCenter*\015\012* *Subtle::Grab::GravityRight*\015\012* *Subtle::Grab::GravityBottomLeft*\015\012* *Subtle::Grab::GravityBottom*\015\012* *Subtle::Grab::GravityBottomRight*\015\012\015\012h2. Block\015\012\015\012[[Grabs]] can also have a complete "Ruby"::http://www.ruby-lang.org block which has a *client* as parameter and can access the complete functionality of [[Subtlext|subtlext]].\015\012\015\012+Example+:\015\012<pre><code class="ruby">\015\012"S-F1" => lambda { |c|\015\012 v = add_view("test")\015\012\015\012 c + "test"\015\012 v + "test"\015\012\015\012 v.jump\015\012} \015\012</code></pre>\015\012\015\012h2. Exec\015\012\015\012Invoke a shell and exec program.\015\012\015\012* *xterm +sb*\015\012\015\012\015\012{{tocnavi(Subtlext,Quickstart,Tags)}}