Subtlext » History » Version 83
« Previous -
Version 83/95
(diff) -
Next » -
Current version
Anonymous, 09/02/2009 09:21 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. Attributes\015\012\015\012*id**, win*, name*, flags*, gravity, x*, y*, width*, height*\015\012\015\012_(* read-only)_\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. 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. 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. is_full?\015\012\015\012Check if a client is fullscreen\015\012\015\012client.is_full?\015\012=> true\015\012\015\012client.is_full?\015\012=> false\015\012
\015\012\015\012top\015\012\015\012h3. is_float?\015\012\015\012Check if a client is floating\015\012\015\012client.is_float?\015\012=> true\015\012\015\012client.is_float?\015\012=> false\015\012
\015\012\015\012top\015\012\015\012h3. is_stick?\015\012\015\012Check if a client is sticky\015\012\015\012client.is_stick?\015\012=> true\015\012\015\012client.is_stick?\015\012=> false\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. 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. 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. 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. 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. 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. to_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. screen\015\012\015\012Get client screen\015\012\015\012client.screen\015\012=> #<Subtlext::Screen:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. screen=\015\012\015\012Set client size\015\012\015\012client.screen = 0\015\012=> 0\015\012\015\012client.screen = subtle.find_screen(0)\015\012=> #<Subtlext::Screen:xxx>\015\012
\015\012\015\012top\015\012\015\012h3. size\015\012\015\012Get client size\015\012\015\012client.size\015\012=> [ 0, 0, 100, 100 ]\015\012
\015\012\015\012top\015\012\015\012h3. size=\015\012\015\012Set client size\015\012\015\012client.size = [ 0, 0, 100, 100 ]\015\012=> [ 0, 0, 100, 100 ]\015\012
\015\012\015\012top\015\012\015\012h3. update()\015\012\015\012Update client properties\015\012\015\012client.update\015\012=> nil\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. Gravity\015\012\015\012h3. Constants\015\012\015\012\015\012TopLeft = 7\015\012Top = 8\015\012TopRight = 9\015\012Left = 4\015\012Center = 5\015\012Right = 6\015\012BottomLeft = 1\015\012Bottom = 2\015\012BottomRight = 3\015\012
\015\012\015\012h2. Screen\015\012\015\012h3. Attributes\015\012\015\012*x**, y*, width*, height*\015\012\015\012_(* read-only)_\015\012\015\012h3. clients()\015\012\015\012Get clients on screen\015\012\015\012screen.clients\015\012=> [ #<Subtlext::Client:xxx>, #<Subtlext::Client:xxx> ]\015\012\015\012screen.clients\015\012=> []\015\012
\015\012\015\012top\015\012\015\012h3. to_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\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. screens()\015\012\015\012Get array of screens\015\012\015\012subtle.clients\015\012=> [#<Subtlext::Screen:xxx>, #<Subtlext::Screen:xxx>]\015\012\015\012subtle.screens\015\012=> []\015\012
\015\012\015\012top\015\012\015\012h3. sublets()\015\012\015\012Get array of sublets\015\012\015\012subtle.sublets\015\012=> [#<Subtlext::Sublet:xxx>, #<Subtlext::Sublet:xxx>]\015\012\015\012subtle.sublets\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 client 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. find_screen(id)\015\012\015\012Find screen by given id\015\012\015\012subtle.find_screen(0)\015\012=> #<Subtlext::Screen:xxx>\015\012\015\012subtle.find_sublet(0)\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. find_sublet(name)\015\012\015\012Find sublet by given name\015\012\015\012subtle.find_sublet("subtle")\015\012=> #<Subtlext::Sublet:xxx>\015\012\015\012subtle.find_sublet("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. 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. 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_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. del_sublet(name)\015\012\015\012Delete sublet by given name\015\012\015\012subtle.del_sublet("subtle")\015\012=> nil\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. 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\012h3. reload()\015\012\015\012Reload config of subtle\015\012\015\012subtle.reload\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. quit()\015\012\015\012Quit subtle\015\012\015\012subtle.reload\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. to_s()\015\012\015\012Convert subtle object to string\015\012\015\012puts subtle\015\012=> subtle (0.8.1113) on :2.0 (800x600)\015\012
\015\012\015\012top\015\012\015\012h2. Sublet\015\012\015\012h3. update()\015\012\015\012Update data of sublet\015\012\015\012sublet.update\015\012=> nil\015\012
\015\012\015\012top\015\012\015\012h3. to_s()\015\012\015\012Convert sublet object to string\015\012\015\012puts sublet\015\012=> sublet\015\012
\015\012\015\012top\015\012\015\012h2. Tag\015\012\015\012h3. Attributes\015\012\015\012*id**, name*\015\012\015\012_(* read-only)_\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. Attributes\015\012\015\012*id**, win*, name*\015\012\015\012_(* read-only)_\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. 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. 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. 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\012subtle 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¶
\015\012client.views\015\012=> [#<Subtlext::View:xxx>, #<Subtlext::View:xxx>]\015\012\015\012client.views\015\012=> nil\015\012
\015\012client.tags\015\012=> [#<Subtlext::Tag:xxx>, #<Subtlext::Tag:xxx>]\015\012\015\012client.tags\015\012=> []\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\012client.untag("subtle")\015\012=> nil\015\012\015\012client.untag(subtle.find_tag("subtle"))\015\012=> nil\015\012
\015\012client.is_full?\015\012=> true\015\012\015\012client.is_full?\015\012=> false\015\012
\015\012client.is_float?\015\012=> true\015\012\015\012client.is_float?\015\012=> false\015\012
\015\012client.is_stick?\015\012=> true\015\012\015\012client.is_stick?\015\012=> false\015\012
\015\012client.toggle_full\015\012=> nil\015\012
\015\012client.toggle_float\015\012=> nil\015\012
\015\012client.toggle_float\015\012=> nil\015\012
\015\012client.raise\015\012=> nil\015\012
\015\012client.lower\015\012=> nil\015\012
\015\012client.up\015\012=> #<Subtlext::Client:xxx>\015\012\015\012client.up\015\012=> nil\015\012
\015\012client.left\015\012=> #<Subtlext::Client:xxx>\015\012\015\012client.left\015\012=> nil\015\012
\015\012client.right\015\012=> #<Subtlext::Client:xxx>\015\012\015\012client.right\015\012=> nil\015\012
\015\012client.down\015\012=> #<Subtlext::Client:xxx>\015\012\015\012client.down\015\012=> nil\015\012
\015\012client.focus\015\012=> nil\015\012
\015\012client.focus?\015\012=> true\015\012\015\012client.focus?\015\012=> false\015\012
\015\012puts client\015\012=> "subtle"\015\012
\015\012client.screen\015\012=> #<Subtlext::Screen:xxx>\015\012
\015\012client.screen = 0\015\012=> 0\015\012\015\012client.screen = subtle.find_screen(0)\015\012=> #<Subtlext::Screen:xxx>\015\012
\015\012client.size\015\012=> [ 0, 0, 100, 100 ]\015\012
\015\012client.size = [ 0, 0, 100, 100 ]\015\012=> [ 0, 0, 100, 100 ]\015\012
\015\012client.update\015\012=> nil\015\012
\015\012client + tag\015\012=> nil\015\012\015\012client + "subtle"\015\012=> true\015\012
\015\012client - tag\015\012=> nil\015\012\015\012client - "subtle"\015\012=> nil\015\012
\015\012TopLeft = 7\015\012Top = 8\015\012TopRight = 9\015\012Left = 4\015\012Center = 5\015\012Right = 6\015\012BottomLeft = 1\015\012Bottom = 2\015\012BottomRight = 3\015\012
\015\012screen.clients\015\012=> [ #<Subtlext::Client:xxx>, #<Subtlext::Client:xxx> ]\015\012\015\012screen.clients\015\012=> []\015\012
\015\012puts client\015\012=> "subtle"\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\012subtle = Subtlext::Subtle.new(display)\015\012=> #<Subtlext::Subtle:xxx>\015\012\015\012
\015\012puts subtle.version \015\012=> 0.8\015\012
\015\012subtle.display\015\012=> :0\015\012
\015\012subtle.views\015\012=> [#<Subtlext::View:xxx>, #<Subtlext::View:xxx>]\015\012
\015\012subtle.tags\015\012=> [#<Subtlext::Tag:xxx>, #<Subtlext::Tag:xxx>]\015\012\015\012subtle.tags\015\012=> []\015\012
\015\012subtle.clients\015\012=> [#<Subtlext::Screen:xxx>, #<Subtlext::Screen:xxx>]\015\012\015\012subtle.screens\015\012=> []\015\012
\015\012subtle.sublets\015\012=> [#<Subtlext::Sublet:xxx>, #<Subtlext::Sublet:xxx>]\015\012\015\012subtle.sublets\015\012=> []\015\012
\015\012subtle.clients\015\012=> [#<Subtlext::Client:xxx>, #<Subtlext::Client:xxx>]\015\012\015\012subtle.clients\015\012=> []\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\012subtle.find_tag("subtle")\015\012=> #<Subtlext::Tag:xxx>\015\012\015\012subtle.find_tag("subtle")\015\012=> nil\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\012subtle.find_screen(0)\015\012=> #<Subtlext::Screen:xxx>\015\012\015\012subtle.find_sublet(0)\015\012=> nil\015\012
\015\012subtle.find_sublet("subtle")\015\012=> #<Subtlext::Sublet:xxx>\015\012\015\012subtle.find_sublet("subtle")\015\012=> nil\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\012subtle.focus_left\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_left\015\012=> nil\015\012
\015\012subtle.focus_down\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_down\015\012=> nil\015\012
\015\012subtle.focus_up\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_up\015\012=> nil\015\012
\015\012subtle.focus_right\015\012=> #<Subtlext::Client:xxx>\015\012\015\012subtle.focus_right\015\012=> nil\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\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\012subtle.del_client("subtle")\015\012=> nil\015\012\015\012subtle.del_client(subtle.find_client("subtle"))\015\012=> nil\015\012
\015\012subtle.del_sublet("subtle")\015\012=> nil\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\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\012subtle.current_view\015\012=> #<Subtlext::View:xxx>\015\012
\015\012subtle.current_client\015\012=> #<Subtlext::Client:xxx>\015\012
\015\012subtle.running?\015\012=> true\015\012
\015\012subtle.reload\015\012=> nil\015\012
\015\012subtle.reload\015\012=> nil\015\012
\015\012puts subtle\015\012=> subtle (0.8.1113) on :2.0 (800x600)\015\012
\015\012sublet.update\015\012=> nil\015\012
\015\012puts sublet\015\012=> sublet\015\012
\015\012tag = Tag.new("subtle")\015\012=> #<Subtlext::Tag:xxx>\015\012
\015\012tag.taggings()\015\012=> [#<Subtlext::View:xxx>, #<Client:xxx>]\015\012\015\012tag.taggings()\015\012=> nil\015\012
\015\012tag.save\015\012=> #<Subtlext::Tag:xxx>\015\012
\015\012puts tag\015\012=> "subtle"\015\012
\015\012view = Subtlext::View.new("subtle")\015\012=> #<Subtlext::View:xxx>\015\012
\015\012view.clients\015\012=> [#<Subtlext::Client:xxx>, #<Subtlext::Client:xxx>]\015\012\015\012view.clients\015\012=> nil\015\012
\015\012view.tags\015\012=> [#<Subtlext::Tag:xxx>, #<Subtlext::Tag:xxx>]\015\012\015\012view.tags\015\012=> []\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\012view.untag("subtle")\015\012=> nil\015\012\015\012view.untag(subtle.find_tag("subtle"))\015\012=> nil\015\012
\015\012view.jump()\015\012=> nil\015\012
\015\012view.current?\015\012=> true\015\012\015\012view.current?\015\012=> false\015\012
\015\012view.save\015\012=> #<Subtlext::View:xxx>\015\012
\015\012puts view\015\012=> "subtle"\015\012
\015\012view + tag\015\012=> true\015\012\015\012view + "subtle"\015\012=> true\015\012
\015\012view - tag\015\012=> true\015\012\015\012view - "subtle"\015\012=> true\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
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