Primitives for the 9P2000 protocol.

See cm.bell-labs.com/sys/man/5/INDEX.html

See swtch.com/plan9port/man/man9/

Methods
C
F
G
N
P
T
V
Included Modules
Classes and Modules
Constants
IXP_SOCK_ADDR = ENV['WMII_ADDRESS'].sub(/.*!/, '') rescue
IXP_AGENT = IXP::Agent.new UNIXSocket.new(IXP_SOCK_ADDR)
 

We use a single, global connection to wmii’s IXP server.

IXP_FS_ROOT = Node.new('/')
FOCUSED_WIDGET_ID = 'sel'.freeze
FLOATING_AREA_ID = '~'.freeze
CLIENT_GROUPING_TAG = '@'.freeze
CLIENT_STICKY_TAG = '/./'.freeze
Instance Public methods
client_ids()

Returns the IDs of the current set of clients.

# File lib/rumai/wm.rb, line 911
      def client_ids
        ary = IXP_FS_ROOT.client.entries
        ary.delete FOCUSED_WIDGET_ID
        ary
      end
curr_area()
# File lib/rumai/wm.rb, line 921
    def curr_area   ; Area.curr         ; end
curr_client()
# File lib/rumai/wm.rb, line 917
    def curr_client ; Client.curr       ; end
curr_tag()
# File lib/rumai/wm.rb, line 929
    def curr_tag    ; curr_view.id      ; end
curr_view()
# File lib/rumai/wm.rb, line 925
    def curr_view   ; View.curr         ; end
focus_area(id)
# File lib/rumai/wm.rb, line 954
    def focus_area id
      Area.focus id
    end
focus_client(id)
# File lib/rumai/wm.rb, line 950
    def focus_client id
      Client.focus id
    end
focus_view(id)
# File lib/rumai/wm.rb, line 958
    def focus_view id
      View.focus id
    end
fs()

Returns the root of IXP file system hierarchy.

# File lib/rumai/wm.rb, line 886
    def fs
      IXP_FS_ROOT
    end
grouping()

Returns a list of all grouped clients in the currently focused view. If there are no grouped clients, then the currently focused client is returned in the list.

# File lib/rumai/wm.rb, line 939
    def grouping
      list = curr_view.clients.select {|c| c.group? }
      list << curr_client if list.empty? and curr_client.exist?
      list
    end
next_area()
# File lib/rumai/wm.rb, line 922
    def next_area   ; curr_area.next    ; end
next_client()
# File lib/rumai/wm.rb, line 918
    def next_client ; curr_client.next  ; end
next_tag()
# File lib/rumai/wm.rb, line 930
    def next_tag    ; next_view.id      ; end
next_view()
# File lib/rumai/wm.rb, line 926
    def next_view   ; curr_view.next    ; end
prev_area()
# File lib/rumai/wm.rb, line 923
    def prev_area   ; curr_area.prev    ; end
prev_client()
# File lib/rumai/wm.rb, line 919
    def prev_client ; curr_client.prev  ; end
prev_tag()
# File lib/rumai/wm.rb, line 931
    def prev_tag    ; prev_view.id      ; end
prev_view()
# File lib/rumai/wm.rb, line 927
    def prev_view   ; curr_view.prev    ; end
tags()

Returns the current set of tags.

# File lib/rumai/wm.rb, line 893
    def tags
      ary = IXP_FS_ROOT.tag.entries.sort
      ary.delete FOCUSED_WIDGET_ID
      ary
    end
views()

Returns the current set of views.

# File lib/rumai/wm.rb, line 902
    def views
      tags.map! {|t| View.new t }
    end