Project

General

Profile

unexist.dev

Assorted tidbits and projects

Subtlext » History » Version 50

Version 49 (Anonymous, 01/21/2009 09:08 PM) → Version 50/95 (Anonymous, 01/21/2009 09:09 PM)

h1. Subtlext\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<pre><code class="ruby">\015\012client.tag("subtle")\015\012=> #<Tag:xxx>\015\012\015\012client.tag(Tag.new("subtle"))\015\012=> #<Tag:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. views()\015\012\015\012Get array of views client is on\015\012<pre><code class="ruby">\015\012client.views\015\012=> [#<View:xxx>, #<View:xxx>]\015\012\015\012client.views\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. tags()\015\012\015\012Get array of defined tags\015\012<pre><code class="ruby">\015\012client.tags\015\012=> [#<Tag:xxx>, #<Tag:xxx>]\015\012\015\012client.tags\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. untag(name)\015\012\015\012Untag client with given name or tag object\015\012<pre><code class="ruby">\015\012client.untag("subtle")\015\012=> nil\015\012\015\012client.untag(subtle.find_tag("subtle"))\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. focus()\015\012\015\012Set focus to client\015\012<pre><code class="ruby">\015\012client.focus\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. toggle_full()\015\012\015\012Toggle fullscreen state\015\012<pre><code class="ruby">\015\012client.toggle_full\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. toggle_float()\015\012\015\012Toggle floating state\015\012<pre><code class="ruby">\015\012client.toggle_float\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. toggle_stick()\015\012\015\012Toggle urgent state\015\012<pre><code class="ruby">\015\012client.toggle_float\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. focus?\015\012\015\012Check if client is focussed\015\012<pre><code class="ruby">\015\012client.focus?\015\012=> true\015\012\015\012client.focus?\015\012=> false\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. to_s()\015\012\015\012Convert client object to string\015\012<pre><code class="ruby">\015\012puts client\015\012=> "subtle"\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. &#43;\015\012\015\012Add tag to client\015\012<pre><code class="ruby">\015\012client + tag\015\012=> true\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. &#45;\015\012\015\012Remove &#8211;\015\012\015\012Remove tag from client\015\012<pre><code class="ruby">\015\012client - tag\015\012=> true\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h2. Subtle\015\012\015\012h3. new(display, debug)\015\012\015\012Create a new [[Subtle|subtle]] object and open connection to X server\015\012<pre><code class="ruby">\015\012subtle = Subtle.new(":0")\015\012=> #<Subtle:xxx>\015\012\015\012subtle = Subtle.new(":0", true)\015\012<DEBUG> src/subtlext/subtlext.c:165: Connection opened (:2)\015\012=> #<Subtle:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. version()\015\012\015\012Get the version of [[Subtlext|subtlext]]\015\012<pre><code class="ruby">\015\012puts subtle.version \015\012=> 0.8\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. display()\015\012\015\012Get the display name\015\012<pre><code class="ruby">\015\012subtle.display\015\012=> :0\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. views()\015\012\015\012Get array of defined views\015\012<pre><code class="ruby">\015\012subtle.views\015\012=> [#<View:xxx>, #<View:xxx>]\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. tags()\015\012\015\012Get array of defined tags\015\012<pre><code class="ruby">\015\012subtle.tags\015\012=> [#<Tag:xxx>, #<Tag:xxx>]\015\012\015\012subtle.tags\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. clients()\015\012\015\012Get array of clients\015\012<pre><code class="ruby">\015\012subtle.clients\015\012=> [#<Client:xxx>, #<Client:xxx>]\015\012\015\012subtle.clients\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. find_view(name)\015\012\015\012Find view by given name\015\012<pre><code class="ruby">\015\012subtle.find_view("subtle")\015\012=> #<View:xxx>\015\012\015\012subtle.find_view("subtle")\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. find_tag(name)\015\012\015\012Find tag by given name\015\012<pre><code class="ruby">\015\012subtle.find_tag("subtle")\015\012=> #<Tag:xxx>\015\012\015\012subtle.find_tag("subtle")\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. find_client(name)\015\012\015\012Find tag by given name\015\012<pre><code class="ruby">\015\012subtle.find_client("subtle")\015\012=> #<Client:xxx>\015\012\015\012subtle.find_client("subtle")\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. focus_client(name)\015\012\015\012Find tag by given name\015\012<pre><code class="ruby">\015\012subtle.focus_client("subtle")\015\012=> #<Client:xxx>\015\012\015\012subtle.focus_client("subtle")\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. del_client(name)\015\012\015\012Delete client by given name or client object\015\012<pre><code class="ruby">\015\012subtle.del_client("subtle")\015\012=> nil\015\012\015\012subtle.del_client(subtle.find_client("subtle"))\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. add_tag(name)\015\012\015\012Add tag with given name or tag object\015\012<pre><code class="ruby">\015\012subtle.add_tag("subtle")\015\012=> #<Tag:xxx>\015\012\015\012subtle.add_tag(Tag.new("subtle"))\015\012=> #<Tag:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. del_tag(name)\015\012\015\012Delete tag by given name or tag object\015\012<pre><code class="ruby">\015\012subtle.del_tag("subtle")\015\012=> nil\015\012\015\012subtle.del_tag(subtle.find_tag("subtle"))\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. add_view(name)\015\012\015\012Add view with given name or view object\015\012<pre><code class="ruby">\015\012subtle.add_view("subtle")\015\012=> #<View:xxx>\015\012\015\012subtle.add_view(View.new("subtle"))\015\012=> #<View:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. del_view(name)\015\012\015\012Delete view by given name or view object\015\012<pre><code class="ruby">\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</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. current_view()\015\012\015\012Get current active view\015\012<pre><code class="ruby">\015\012subtle.current_view\015\012=> #<View:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. current_client()\015\012\015\012Get current active client\015\012<pre><code class="ruby">\015\012subtle.current_client\015\012=> #<Client:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. running?()\015\012\015\012Check if [[Subtle|subtle]] is running\015\012<pre><code class="ruby">\015\012subtle.running?\015\012=> true\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h2. Tag\015\012\015\012h3. new(name)\015\012\015\012Create new tag object\015\012<pre><code class="ruby">\015\012tag = Tag.new("subtle")\015\012=> #<Tag:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. taggings()\015\012\015\012Get array of clients and views that are tagged with this\015\012<pre><code class="ruby">\015\012tag.taggings()\015\012=> [#<View:xxx>, #<Client:xxx>]\015\012\015\012tag.taggings()\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. save()\015\012\015\012Saves the tag and sends it to [[subtle]]\015\012<pre><code class="ruby">\015\012tag.save\015\012=> #<Tag:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. to_s\015\012\015\012Convert tag object to string\015\012<pre><code class="ruby">\015\012puts tag\015\012=> "subtle"\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h2. View\015\012\015\012h3. new(name)\015\012\015\012Create a new view object\015\012<pre><code class="ruby">\015\012view = View.new("subtle")\015\012=> #<View:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. tag(name)\015\012\015\012Tag view with with given name or tag object\015\012<pre><code class="ruby">\015\012view.tag("subtle")\015\012=> #<Tag:xxx>\015\012\015\012view.tag(Tag.new("subtle"))\015\012=> #<Tag:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. untag(name)\015\012\015\012Untag view with with given name or tag object\015\012<pre><code class="ruby">\015\012view.untag("subtle")\015\012=> nil\015\012\015\012view.untag(subtle.find_tag("subtle"))\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. jump()\015\012\015\012Jump to this view\015\012<pre><code class="ruby">\015\012view.jump()\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. clients()\015\012\015\012Get array of clients on this view\015\012<pre><code class="ruby">\015\012view.clients\015\012=> [#<Client:xxx>, #<Client:xxx>]\015\012\015\012view.clients\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. tags()\015\012\015\012Get array of defined tags\015\012<pre><code class="ruby">\015\012view.tags\015\012=> [#<Tag:xxx>, #<Tag:xxx>]\015\012\015\012view.tags\015\012=> nil\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. current?\015\012\015\012Check if this view is the current active view\015\012<pre><code class="ruby">\015\012view.current?\015\012=> true\015\012\015\012view.current?\015\012=> false\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. save()\015\012\015\012Saves the view and sends it to [[subtle]]\015\012<pre><code class="ruby">\015\012view.save\015\012=> #<View:xxx>\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. to_s()\015\012\015\012Convert view object to string\015\012<pre><code class="ruby">\015\012puts view\015\012=> "subtle"\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. &#43;\015\012\015\012Add +\015\012\015\012Add tag to view\015\012<pre><code class="ruby">\015\012view + tag\015\012=> true\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\015\012\015\012h3. &#45;\015\012\015\012Remove true\015\012</code></pre>\015\012\015\012h3. -\015\012\015\012Remove tag from view\015\012<pre><code class="ruby">\015\012view - tag\015\012=> true\015\012</code></pre>\015\012\015\012[[Subtlext#1|top]]\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<pre><code class="ruby">\015\012require("subtle/subtlext")\015\012\015\012subtle = 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</code></pre>\015\012\015\012Output:\015\012<pre><code>subtle 0.8.717 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</code></pre>\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":http://sinatra.rubyforge.org/ (*web.rb*) and an interface with "Ruby-Gtk":http://ruby-gnome2.sourceforge.jp (*gtk.rb*).\015\012\015\012[[Subtlext#1|top]]