Hooks » History » Version 20
« Previous -
Version 20/47
(diff) -
Next » -
Current version
Anonymous, 06/10/2010 11:30 PM
Hooks\015\012\015\012Hooks are small chunks of code (Ruby procs) that are called on certain events of the window manager and can either be used directly in the config or inside of sublets.\015\012\015\012{{>toc}}\015\012\015\012h2. Client Hooks\015\012\015\012h3. client_create\015\012\015\012Triggers on creation of new clients.\015\012\015\012on :client_create do |c|\015\012 puts c.name\015\012end\015\012
\015\012\015\012h3. client_configure\015\012\015\012Triggers whenever a client is configured.\015\012\015\012on :client_focus do |c|\015\012 puts c.name\015\012end\015\012
\015\012\015\012h3. client_focus\015\012\015\012Triggers whenever a client gets focus.\015\012\015\012on :client_focus do |c|\015\012 puts c.name\015\012end\015\012
\015\012\015\012h3. client_kill\015\012\015\012Triggers when a client is killed.\015\012\015\012on :client_kill do |c|\015\012 puts c.name\015\012end\015\012
\015\012\015\012h2. Tag Hooks\015\012\015\012h3. tag_create\015\012\015\012Triggers when a tag is created.\015\012\015\012on :tag_create do |t|\015\012 puts t.name\015\012end\015\012
\015\012\015\012h3. tag_kill\015\012\015\012Triggers when a tag is killed.\015\012\015\012on :tag_kill do |t|\015\012 puts t.name\015\012end\015\012
\015\012\015\012h2. View Hooks\015\012\015\012h3. view_create\015\012\015\012Triggers on creation of new views.\015\012\015\012on :view_create do |v|\015\012 puts v.name\015\012end\015\012
\015\012\015\012h3. view_configure\015\012\015\012Triggers whenever a view is configured.\015\012\015\012on :view_focus do |v|\015\012 puts v.name\015\012end\015\012
\015\012\015\012h3. view_jump\015\012\015\012Triggers on a jump to a view.\015\012\015\012on :view_jump do |v|\015\012 puts v.name\015\012end\015\012
\015\012\015\012h3. view_kill\015\012\015\012Triggers when a view is killed.\015\012\015\012on :view_kill do |v|\015\012 puts v.name\015\012end\015\012
\015\012\015\012h2. Other\015\012\015\012h3. Tile\015\012\015\012Triggers whenever tiling would be needed\015\012\015\012on :tile do \015\012 puts "Insert tiling here"\015\012end\015\012
\015\012\015\012h3. start\015\012\015\012Triggers on start\015\012\015\012on :start do\015\012 puts "Yees"\015\012end\015\012
\015\012\015\012h3. exit\015\012\015\012Triggers on exit\015\012\015\012on :exit do\015\012 puts "Nooo"\015\012end\015\012
\015\012\015\012h2. Examples\015\012\015\012Switch to the first view of new client\015\012\015\012on :client_create do |c|\015\012 c.views.first.jump\015\012end\015\012
\015\012\015\012Tag a new client with the current view\015\012\015\012on :client_create do |c|\015\012 c.tag(current_view.name)\015\012end\015\012
\015\012\015\012Tag a new client with the current view only if it has no other tags\015\012\015\012on :client_create do |c| \015\012 if(c.tags.empty?)\015\012 if(!tags.include?(current_view.name))\015\012 add_tag(current_view.name)\015\012 end \015\012 c.tag(current_view.name);\015\012 end\015\012end\015\012
\015\012\015\012Display information about the currently focused window\015\012\015\012:HookClientFocus => { |c| find_sublet("client").data = "%s (%s)" % [ c.name, c.class ] }\015\012
\015\012\015\012¶
\015\012on :client_create do |c|\015\012 puts c.name\015\012end\015\012
\015\012on :client_focus do |c|\015\012 puts c.name\015\012end\015\012
\015\012on :client_focus do |c|\015\012 puts c.name\015\012end\015\012
\015\012on :client_kill do |c|\015\012 puts c.name\015\012end\015\012
\015\012on :tag_create do |t|\015\012 puts t.name\015\012end\015\012
\015\012on :tag_kill do |t|\015\012 puts t.name\015\012end\015\012
\015\012on :view_create do |v|\015\012 puts v.name\015\012end\015\012
\015\012on :view_focus do |v|\015\012 puts v.name\015\012end\015\012
\015\012on :view_jump do |v|\015\012 puts v.name\015\012end\015\012
\015\012on :view_kill do |v|\015\012 puts v.name\015\012end\015\012
\015\012on :tile do \015\012 puts "Insert tiling here"\015\012end\015\012
\015\012on :start do\015\012 puts "Yees"\015\012end\015\012
\015\012on :exit do\015\012 puts "Nooo"\015\012end\015\012
\015\012on :client_create do |c|\015\012 c.views.first.jump\015\012end\015\012
\015\012on :client_create do |c|\015\012 c.tag(current_view.name)\015\012end\015\012
\015\012on :client_create do |c| \015\012 if(c.tags.empty?)\015\012 if(!tags.include?(current_view.name))\015\012 add_tag(current_view.name)\015\012 end \015\012 c.tag(current_view.name);\015\012 end\015\012end\015\012
\015\012:HookClientFocus => { |c| find_sublet("client").data = "%s (%s)" % [ c.name, c.class ] }\015\012