最近の更新

2016-03-05
2015-09-16
2013-06-02
2013-04-12
2012-11-10
2010-11-07
2010-02-28
2009-10-08
2009-07-11

Latest File Release

LiveCD-2008.0 (RC3)2008-02-28 04:17

まだほとんど英語ナリよ :)

libixp-0.5 hg109のixpc.1より

名前

ixpc - ixpクライアント

書式

  • ixpc [-a address] action file
  • ixpc -v

説明

要旨

ixpcはコマンドラインやシェルスクリプトから9Pファイルサーバにアクセスする為のクライアントであり、wmiiの設定を行う為に使用する事が出来る。

オプション

  • -a address
    ixpcが接続を確立する先のアドレスを指定する。このオプションが与えられなかった場合、環境変数IXP_ADDRESSが設定されていれば、ixpcはこの値をアドレスとして使用する。今の所、unixソケットファイルかtcpソケットがこのアドレスになり得る。アドレスの文法的表現は、(その他多くの高尚なアイデアと共に)Plan 9オペレーティングシステムに倣い、unixソケットファイルはunix!/path/to/socket、tcpソケットはtcp!hostname!portである。
  • -v
    ヴァージョン情報を標準出力に表示し、終了する。

アクションの文法は以下の通り:

  • write
    標準入力から与えられたデータをファイルに書く。以前の如何なるデータも上書きされる。任意のデータを書く事が出来るが、wmiiによって解釈された時にのみ意味(と制約)を得る。下記、例を参照。
  • xwrite
    writeと殆ど同じだが、データは標準入力ではなく引数の残りの部分列から与えられる。
  • create
    ファイル若しくはディレクトリを作成する。既にファイルが存在する場合には、何もしない。
  • ls
    ファイルとディレクトリの一覧を表示する。
  • read
    ファイル若しくはディレクトリの内容を読む。
  • remove
    ファイル若しくはディレクトリツリーを削除する。

環境変数

  • IXP_ADDRESS
    上記を参照。

  • ixpc ls /
    IXP_ADDRESSがwmiiのモノに設定されていれば、wmiiのファイルシステムのルートディレクトリを表示する。このファイルシステムの内容についての更なる情報は、wmii(1)を参照。
  • ixpc xwrite /ctl quit
    wmiiのファイルシステムの主制御ファイルに'quit'を書く。wmiiの終了として効果が現れる。
  • ixpc write /keys < keys.txt
    /keysの内容をkeys.txtの内容に置き換える。

関連項目

wmii-3.6 hg2348のwmii.1より

名前

wmii - 改善された改善されたウィンドウマネージャ

書式

  • wmii [-a address] [-c wmiirc]
  • wmii -v

説明

要旨

wmiiはX11の為の動的ウィンドウマネージャである。静的ウィンドウ管理とは対照的に、どんな作業をやっていようと、同時に多くのアプリケーションを使おうと、ユーザーがウィンドウの整理を考える事は滅多にない。このウィンドウマネージャは、現行の環境に対して予め設定されたカタチを強制するのではなく、寧ろユーザーのニーズを満たす様に適応してレイアウトを調整する事で、全てのウィンドウとアプリケーションを巧く統治する。

wmiiは古典的ウィンドウ管理とキーボードとマウスによる制御で拡張されたタイル型ウィンドウ管理をサポートする。古典的ウィンドウ管理では、ウィンドウの移動とリサイズが自由に出来るフローティングレイヤにウィンドウを配置する。タイル型ウィンドウ管理では、スクリーンを水平方向に分割されたカラムを基本単位とする。各カラムは任意のウィンドウを治める事が出来、それらが重なり合わない様に垂直に配置する。これらのウィンドウは任意のカラム間及びカラム内で移動とリサイズが可能である。

wmiiは、Unixオペレーティングシステムのprocfsと良く似た内部状態を表現する仮想的なファイルシステムを提供する。 この仮想的なファイルシステムへの変更は、このウィンドウマネージャの状態の変化となる。 この仮想的なファイルシステムサービスへは、wmiir(1)の様な9Pを理解するクライアントプログラムでアクセスする事が出来る。 これはこのウィンドウマネージャのコアへの単純だが強力な遠隔制御を可能にしている。

wmiiは、用語の項で詳細が説明されるクライアント、カラム、ヴューそしてバーで主要な部分が構成される。

用語

  • ディスプレイ
    入力デバイスと(複数の)スクリーンで構成される実行中のXサーバインスタンス。
  • スクリーン
    Xディスプレイの物理的或いは仮想的(XineramaやXnest(1)による)表示領域。スクリーンはバー用のウィンドウとヴューを同時に表示する。
  • ウィンドウ
    スクリーン上に表示される描画可能な(矩形の)Xオブジェクト。大抵はアプリケーションのウィンドウ。
  • クライアント
    ボーダーとタイトルバーで包含されるフレームウィンドウで囲まれたアプリケーションのウィンドウ。
  • フローティングレイヤ
    wmiiのスクリーンレイヤの一つで、他のどのレイヤよりも手前に位置する。クライアントは古典的な(浮遊する)方法で配置される。このレイヤにあるクライアントはリサイズや移動が自由に行う事が出来る。
  • 管理レイヤ
    wmiiのスクリーンレイヤの一つで、フローティングレイヤの背後に位置する。クライアントは重なり合わない様に(管理されて)配置される。このレイヤでは、ウィンドウマネージャが動的に各クライアントのサイズと位置を割り当てる。管理レイヤは複数のカラムで構成される。
  • タグ
    クライアントに割り当てることの出来る英数字文字列。これは複数のクライアントをグループ化する仕組みを提供する。クライアントは一つのタグ(例えば、work)、もしくは複数のタグ(例えば、work+mail)を持つことが出来る。複数のタグは+で分割される。
  • ビュー
    特定のタグを持つ複数のクライアントの集合、他のウィンドウマネージャでのワークスペースに非常に良く似ている。フローティングレイヤと管理レイヤで構成される。
  • Column
    A column is a screen area which arranges clients vertically in a non-overlapping way. Columns provide three different modes, which arrange clients with equal size, stacked, or maximized respectively. Clients can be moved and resized between and within columns freely.
  • Bar
    The bar at the bottom of the screen displays a label for each view and allows the creation of arbitrary user-defined labels.
  • Event
    An event is a message which can be read from a special file in the filesystem of wmii, such as a mouse button press, a key press, or a message written by a different 9P-client.

Basic window management

Running a raw wmii process without a wmiirc(1) script provides basic window management capabilities already. However, to use it effectively, remote control through its filesystem interface is necessary. By default it is only usable with the mouse in conjunction with the Mod1 (Alt) modifier key. Other interactions, such as customizing the style, killing or retagging clients, and grabbing keys, cannot be achieved without accessing the filesystem.

The filesystem can be accessed by connecting to the address of wmii with any 9P-capable client, such as wmiir(1).

Actions

An action is a shell script in the default setup, but it can actually be any executable file. It is executed usually by selecting it from the actions menu. You can customize an action by copying it from the global action directory CONFPREFIX/wmii-hg to $HOME/.wmii-hg and then editing the copy to fit your needs. Of course you can also create your own actions there; make sure that they are executable. Here is a list of the default actions:

  • quit
    leave the window manager nicely
  • status
    periodically print date and load average to the bar
  • welcome
    display a welcome message that contains the wmii tutorial
  • wmiirc
    configure wmii

Default Key Bindings

  • Moving Around
    • Mod-h
      Move to a window to the left of the one currently focused
    • Mod-l
      Move to a window to the right of the one currently focused
    • Mod-j
      Move to the window below the one currently focused
    • Mod-k
      Move to a window above the one currently focused
    • Mod-space
      Toggle between the managed and floating layers
    • Mod-t tag
      Move to the view of the given tag
    • Mod-[0-9]
      Move to the view with the given number
  • Moving Things Around
    • Mod-Shift-h
      Move the current window to a column on the left
    • Mod-Shift-l
      Move the current window to a column on the right
    • Mod-Shift-j
      Move the current window below the window beneath it
    • Mod-Shift-k
      Move the current window above the window above it
    • Mod-Shift-space
      Toggle the current window between the managed and floating layer
    • Mod-Shift-t tag
      Move the current window to the view of the given tag
    • Mod-Shift-[0-9]
      Move to the current window to the view with the given number
  • Miscellaneous
    • Mod-m
      Switch the current column to max mode
    • Mod-s
      Switch the current column to stack mode
    • Mod-d
      Switch the current column to default mode
    • Mod-Shift-c
      Kill the selected client
    • Mod-p program
      Execute program
    • Mod-a action
      Execute the named action
    • Mod-Enter
      Execute an xterm

Configuration

If you feel the need to change the default configuration, then customize (as described above) the wmiirc action. This action is executed at the end of the \Prog{wmii} script and does all the work of setting up the window manager, the key bindings, the bar labels, etc.

Filesystem

Most aspects of wmii are controlled via the filesystem. It is usually accessed via the wmiir(1) command, but it can be accessed by any 9P client, including plan9port's 9P(1), and can be mounted natively on Linux via v9fs1, and on Inferno (which man run on top of Linux).

The filesystem is, as are many other 9P filesystems, entirely synthetic. The files exist only in memory, and are not written to disk. They are generally initiated on wmii startup via a script such as rc.wmii or wmiirc. Several files read commands, others simply act as if they were ordinary files (their contents are updated and returned exactly as written), though writing them has side-effects (such as changing key bindings). A description of the filesystem layout and control commands follows.

Hierarchy

  • /
    Global control files
  • /client/*/
    Client control files
  • /tag/*/
    View control files
  • /lbar/, /rbar/
    Files representing the contents of the bottom bar

The / Hierarchy

  • colrules
    The colrules file contains a list of rules which affect the width of newly created columns. Rules have the form: /regex/ -> width[+width...] When a new column, n, is created on a view whose name matches regex, the nth given width percentage of the screen is given to it. If there is no nth width, 1/ncolth of the screen is given to it.
  • tagrules
    The tagrules file contains a list of rules similar to the colrules. These rules specify the tags a client is to be given when it is created. Rules are specified: /regex/ -> tag[+tag...] When a client's name:class:title matches regex, it is given the tagstring tag. There are two special tags. !, which is deprecated, and identical to sel, represents the current tag. ~ represents the floating layer.
  • keys
    The keys file contains a list of keys which wmii will grab. Whenever these key combinations are pressed, the string which represents them are written to /event as: Key string
  • event
    The event file never returns EOF while wmii is running. It stays open and reports events as they occur. Included among them are:
    • NotUrgent client Manager|Client
      client}'s urgent hint has been set or unset. The second arg is Client if it's been set by the client, and \emph{Manager} if it's been set by wmii via a control message.
    • NotUrgentTag tag Manager|Client
      A client on tag has had its urgent hint set, or the last urgent client has had its urgent hint unset.
    • ClientClick|ClientMouseDown client button
      A client's titlebar has either been clicked or has a button pressed over it.
    • Left|RightBarClick|{MouseDown button bar
      A left or right bar has been clicked or has a button pressed over it.
    • To be continued...
  • ctl
    The ctl file takes a number of messages to change global settings such as color and font, which can be viewed by reading it. It also takes the following commands:
    • quit
      Quit wmii
    • exec prog
      Replace wmii with prog

The /client/ Hierarchy

Each directory under /client/ represents an X11 client. Each directory is named for the X window id of the window the client represents, in the form that most X utilities recognize. The one exception is the special \File{sel} directory, which represents the currently selected client.

  • ctl
    When read, the ctl file returns the X window id of the client. The following commands may be written to it:
    • kill
      Close the client's window. This command will likely kill the X client in the future (including its other windows), while the close command will replace it.
    • NotUrgent
      Set or unset the client's urgent hint.
    • NotFullscreen
  • label
    Set or read a client's label (title).
  • props
    Returns a clients class and label as: name:class:label
  • tags
    Set or read a client's tags. Tags are separated by + or -. Tags beginning with + are added, while those beginning with - are removed. If the tag string written begins with + or -, the written tags are added to or removed from the client's set, otherwise, the set is overwritten.

The /tag/ Hierarchy

Each directory under /tag/ represents a view, containing all of the clients with the given tag applied. The special sel directory represents the currently selected tag.

  • ctl
    The ctl file can be read to retrieve the name of the tag the directory represents, or written with the following commands:
    • select
      Select a client:
      • select left|right|up|down
      • select row number|sel [frame number]
      • select client client
    • send
      Send a client somewhere:
      • send client|sel up|down|left|right
      • send client|sel area Send client to the nth area
      • send client|sel toggle Toggle client between the floating and managed layer.
      • swap
        Swap a client with another. Same syntax as send.
  • index
    Read for a description of the contents of a tag.

The /rbar/, /lbar/ Hierarchy

The files under /rbar/ and /lbar/ represent the items of the bar at the bottom of the screen. Files under /lbar/ appear on the left side of the bar, while those under /rbar/ appear on the right, with the leftmost item occupying all extra available space. The items are sorted lexicographically.

The files may be read to obtain the colors and text of the bars. The colors are at the beginning of the string, represented as a tuple of 3 hex color codes for the foreground, background, and border, respectively. When writing the bar files, the colors may be omitted if the text would not otherwise appear to contain them.

FILES

  • /tmp/ns.$USER.${DISPLAY%.0}/wmii
    The wmii socket file which provides a 9P service.
  • CONFPREFIX/wmii-hg
    Global action directory.
  • $HOME/.wmii-hg
    User-specific action directory. Actions are first searched here.

ENVIRONMENT

  • HOME, DISPLAY
    See the section FILES above.

The following variables are set and exported within wmii and thus can be used in actions:

  • WMII_ADDRESS
    Socket file of used by wmiir(1).

SEE ALSO