Project

General

Profile

unexist.dev

Assorted tidbits and projects

Subtlext » History » Version 68

« Previous - Version 68/95 (diff) - Next » - Current version
Anonymous, 05/13/2009 11:34 PM


Subtlext\015\012\015\012Subtlext is an extension that brings the power of subtler to Ruby. This page includes the API with small examples of every method and some advanced examples at the bottom of the page. Some of this examples are also included in the tarball.\015\012\015\012Unit tests for sublext are also included. Read more about unit tests\015\012\015\012{{>toc}}\015\012\015\012h2. Client\015\012\015\012h3. tag(name)\015\012\015\012Tag client with given name or tag object\015\012
\015\012client.tag("subtle")\015\012=> #<Subtlext::Tag:xxx>\015\012\015\012client.tag(Subtlext::Tag.new("subtle"))\015\012=> #<Subtlext::Tag:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. views()\015\012\015\012Get array of views client is on\015\012
\015\012client.views\015\012=> [#<Subtlext::View:xxx>, #<Subtlext::View:xxx>]\015\012\015\012client.views\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. tags()\015\012\015\012Get array of defined tags\015\012
\015\012client.tags\015\012=> [#<Subtlext::Tag:xxx>, #<Subtlext::Tag:xxx>]\015\012\015\012client.tags\015\012=> []\015\012
\015\012\015\012top\015\012\015\012h3. untag(name)\015\012\015\012Untag client with given name or tag object\015\012
\015\012client.untag("subtle")\015\012=> nil\015\012\015\012client.untag(subtle.find_tag("subtle"))\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. focus()\015\012\015\012Set focus to client\015\012
\015\012client.focus\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. focus?\015\012\015\012Check if client is focussed\015\012
\015\012client.focus?\015\012=> true\015\012\015\012client.focus?\015\012=> false\015\012
\015\012\015\012top\015\012\015\012h3. left()\015\012\015\012Get client left\015\012
\015\012client.left\015\012=> #<Subtlext::Client:xxx>\015\012\015\012client.left\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. down()\015\012\015\012Get client below\015\012
\015\012client.down\015\012=> #<Subtlext::Client:xxx>\015\012\015\012client.down\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. up()\015\012\015\012Get client above\015\012
\015\012client.up\015\012=> #<Subtlext::Client:xxx>\015\012\015\012client.up\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. right()\015\012\015\012Get client right\015\012
\015\012client.right\015\012=> #<Subtlext::Client:xxx>\015\012\015\012client.right\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. toggle_full()\015\012\015\012Toggle fullscreen state\015\012
\015\012client.toggle_full\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. toggle_float()\015\012\015\012Toggle floating state\015\012
\015\012client.toggle_float\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. toggle_stick()\015\012\015\012Toggle urgent state\015\012
\015\012client.toggle_float\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. raise()\015\012\015\012Raise window\015\012
\015\012client.raise\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. lower()\015\012\015\012Lower window\015\012
\015\012client.lower\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. t\015\012h3. focus?\015\012\015\012Check if client is focussed\015\012
\015\012client.focus?\015\012=> true\015\012\015\012client.focus?\015\012=> false\015\012
\015\012\015\012topo_s()\015\012\015\012Convert client object to string\015\012
\015\012puts client\015\012=> "subtle"\015\012
\015\012\015\012top\015\012\015\012h3. gravity=\015\012\015\012Set client gravity\015\012
\015\012client.gravity = Subtlext::Gravity::Center\015\012=> 6\015\012
\015\012\015\012top\015\012\015\012h3. +\015\012\015\012Add tag to client\015\012
\015\012client + tag\015\012=> nil\015\012\015\012client + "subtle"\015\012=> true\015\012
\015\012\015\012top\015\012\015\012h3. -\015\012\015\012Remove tag from client\015\012
\015\012client - tag\015\012=> nil\015\012\015\012client - "subtle"\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h2. Subtle\015\012\015\012h3. new(display, debug)\015\012\015\012Create a new subtle object and open connection to X server\015\012
\015\012subtle = Subtlext::Subtle.new(":0")\015\012=> #<Subtlext::Subtle:xxx>\015\012\015\012subtle = Subtlext::Subtle.new(":0", true)\015\012<DEBUG> src/subtlext/subtlext.c:165: Connection opened (:0)\015\012=> #<Subtlext::Subtle:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. new2(display)\015\012\015\012Create a new subtle object internally used only\015\012
\015\012subtle = Subtlext::Subtle.new(display)\015\012=> #<Subtlext::Subtle:xxx>\015\012\015\012
\015\012\015\012top\015\012h3. version()\015\012\015\012Get the version of subtlext\015\012
\015\012puts subtle.version \015\012=> 0.8\015\012
\015\012\015\012top\015\012\015\012h3. display()\015\012\015\012Get the display name\015\012
\015\012subtle.display\015\012=> :0\015\012
\015\012\015\012top\015\012\015\012h3. views()\015\012\015\012Get array of defined views\015\012
\015\012subtle.views\015\012=> [#<Subtlext::View:xxx>, #<Subtlext::View:xxx>]\015\012
\015\012\015\012top\015\012\015\012h3. tags()\015\012\015\012Get array of defined tags\015\012
\015\012subtle.tags\015\012=> [#<Subtlext::Tag:xxx>, #<Subtlext::Tag:xxx>]\015\012\015\012subtle.tags\015\012=> []\015\012
\015\012\015\012top\015\012\015\012h3. clients()\015\012\015\012Get array of clients\015\012
\015\012subtle.clients\015\012=> [#<Subtlext::Client:xxx>, #<Subtlext::Client:xxx>]\015\012\015\012subtle.clients\015\012=> []\015\012
\015\012\015\012top\015\012\015\012h3. find_view(name)\015\012\015\012Find view by given name\015\012
\015\012subtle.find_view("subtle")\015\012=> #<Subtlext::View:xxx>\015\012\015\012subtle.find_view("subtle")\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. find_tag(name)\015\012\015\012Find tag by given name\015\012
\015\012subtle.find_tag("subtle")\015\012=> #<Subtlext::Tag:xxx>\015\012\015\012subtle.find_tag("subtle")\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. find_client(name)\015\012\015\012Find tag by given name\015\012
\015\012subtle.find_client("subtle")\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.find_client("subtle")\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. focus_client(name)\015\012\015\012Find tag by given name and set focus\015\012
\015\012subtle.focus_client("subtle")\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_client("subtle")\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. focus_left()\015\012\015\012Focus window left from current client\015\012
\015\012subtle.focus_left\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_left\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. focus_down()\015\012\015\012Focus window below from current client\015\012
\015\012subtle.focus_down\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_down\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. focus_up()\015\012\015\012Focus window above from current client\015\012
\015\012subtle.focus_up\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_up\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. focus_right()\015\012\015\012Focus window right from current client\015\012
\015\012subtle.focus_right\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_right\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. del_client(name)\015\012\015\012Delete client by given name or client object\015\012
\015\012subtle.del_client("subtle")\015\012=> nil\015\012\015\012subtle.del_client(subtle.find_client("subtle"))\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. add_tag(name)\015\012\015\012Add tag with given name or tag object\015\012
\015\012subtle.add_tag("subtle")\015\012=> #<Subtlext::Tag:xxx>\015\012\015\012subtle.add_tag(Tag.new("subtle"))\015\012=> #<Subtlext::Tag:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. del_tag(name)\015\012\015\012Delete tag by given name or tag object\015\012
\015\012subtle.del_tag("subtle")\015\012=> nil\015\012\015\012subtle.del_tag(subtle.find_tag("subtle"))\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. add_view(name)\015\012\015\012Add view with given name or view object\015\012
\015\012subtle.add_view("subtle")\015\012=> #<Subtlext::View:xxx>\015\012\015\012subtle.add_view(View.new("subtle"))\015\012=> #<Subtlext::View:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. del_view(name)\015\012\015\012Delete view by given name or view object\015\012
\015\012subtle.del_view("subtle")\015\012=> nil\015\012\015\012subtle.del_view(subtle.find_view("subtle"))\015\012=> nil\015\012\015\012
\015\012\015\012top\015\012\015\012h3. current_view()\015\012\015\012Get current active view\015\012
\015\012subtle.current_view\015\012=> #<Subtlext::View:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. current_client()\015\012\015\012Get current active client\015\012
\015\012subtle.current_client\015\012=> #<Subtlext::Client:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. running?()\015\012\015\012Check if subtle is running\015\012
\015\012subtle.running?\015\012=> true\015\012
\015\012\015\012top\015\012\015\012h2. Tag\015\012\015\012h3. new(name)\015\012\015\012Create new tag object\015\012
\015\012tag = Tag.new("subtle")\015\012=> #<Subtlext::Tag:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. taggings()\015\012\015\012Get array of clients and views that are tagged with this\015\012
\015\012tag.taggings()\015\012=> [#<Subtlext::View:xxx>, #<Client:xxx>]\015\012\015\012tag.taggings()\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. save()\015\012\015\012Saves the tag and sends it to subtle\015\012
\015\012tag.save\015\012=> #<Subtlext::Tag:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. to_s\015\012\015\012Convert tag object to string\015\012
\015\012puts tag\015\012=> "subtle"\015\012
\015\012\015\012top\015\012\015\012h2. View\015\012\015\012h3. new(name)\015\012\015\012Create a new view object\015\012
\015\012view = Subtlext::View.new("subtle")\015\012=> #<Subtlext::View:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. tag(name)\015\012\015\012Tag view with with given name or tag object\015\012
\015\012view.tag("subtle")\015\012=> #<Subtlext::Tag:xxx>\015\012\015\012view.tag(Tag.new("subtle"))\015\012=> #<Subtlext::Tag:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. untag(name)\015\012\015\012Untag view with with given name or tag object\015\012
\015\012view.untag("subtle")\015\012=> nil\015\012\015\012view.untag(subtle.find_tag("subtle"))\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. jump()\015\012\015\012Jump to this view\015\012
\015\012view.jump()\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. clients()\015\012\015\012Get array of clients on this view\015\012
\015\012view.clients\015\012=> [#<Subtlext::Client:xxx>, #<Subtlext::Client:xxx>]\015\012\015\012view.clients\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. tags()\015\012\015\012Get array of defined tags\015\012
\015\012view.tags\015\012=> [#<Subtlext::Tag:xxx>, #<Subtlext::Tag:xxx>]\015\012\015\012view.tags\015\012=> []\015\012
\015\012\015\012top\015\012\015\012h3. current?\015\012\015\012Check if this view is the current active view\015\012
\015\012view.current?\015\012=> true\015\012\015\012view.current?\015\012=> false\015\012
\015\012\015\012top\015\012\015\012h3. save()\015\012\015\012Saves the view and sends it to subtle\015\012
\015\012view.save\015\012=> #<Subtlext::View:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. to_s()\015\012\015\012Convert view object to string\015\012
\015\012puts view\015\012=> "subtle"\015\012
\015\012\015\012top\015\012\015\012h3. +\015\012\015\012Add tag to view\015\012
\015\012view + tag\015\012=> true\015\012\015\012view + "subtle"\015\012=> true\015\012
\015\012\015\012top\015\012\015\012h3. -\015\012\015\012Remove tag from view\015\012
\015\012view - tag\015\012=> true\015\012\015\012view - "subtle"\015\012=> true\015\012
\015\012\015\012top\015\012\015\012h2. Examples\015\012\015\012This time a more complex example to show what you can do with this extension:\015\012\015\012
\015\012require("subtle/subtlext")\015\012\015\012subtle = Subtlext::Subtle.new(":2")\015\012\015\012puts "subtle %s on %s" % \015\012  [subtle.version, subtle.running? ? subtle.display : "none"]\015\012\015\012puts "Tags: %s" % [subtle.tags.join(", ")]\015\012\015\012# Views\015\012views = []\015\012subtle.views.each do |v|\015\012  views.push("%s (%s)" % [v.current? ? "[#{v}]" : v, v.tags.join(", ")])\015\012end\015\012puts "Views: %s" % [views.join(", ")]\015\012\015\012# Clients\015\012clients = []\015\012subtle.clients.each do |c|\015\012  clients.push("%s (%s)" % [c, c.tags.join(", ")])\015\012end\015\012puts "Clients: %s" % [clients.join(", ")]\015\012
\015\012\015\012Output:\015\012
subtle 0.8.1017 on :2.0\015\012Tags: default, float, full, editor, video, browser, terms\015\012Views: web (default, browser), [dev] (editor, terms), work (video, browser, terms)\015\012Clients: xterm (terms), xterm (terms)\015\012
\015\012\015\012More examples are in the tarball in dist/scripts. Currently there is the example from above (example.rb), an example for a web interface with Sinatra (web.rb) and an interface with Ruby-Gtk (gtk.rb).\015\012\015\012top