書式
lbxproxy [:<display>] [option]説明
X の低バンド幅拡張(Low Bandwidth extension, LBX)を利用しようとするアプ リケーションは lbxproxy に接続しなければならない。アプリケーションは LBX について何も知る必要はなく、単に通常のサーバのように接続すればよい。 lbxproxy はクライアントから接続(複数)を受け付け、これらの接続を X サーバへの 1 つの接続の上で多重化し、 さらに X プロトコルの様々な最適化を行って、バンド幅が小さかったり 遅延が大きかったりする接続上での高速な通信を行う。許可/認証に関しては、lbxproxy はクライアントから受け取った認証情報をそ のままにサーバに渡すだけである。X クライアントは lbxproxy に接続するの で、プロキシのネットワーク ID に対応する有効なキーを持つエントリが ユーザの .Xauthority ファイルに書かれていることが重要となる。 これらのエントリを .Xauthority ファイルに加える設定作業と lbxproxy 自体は無関係である。 この設定はユーザ自身が行わなければならない。
lbxproxy にはいろいろなオプションがあるが、いずれも省略可能である。
:<display> が指定された場合、接続を待つ際にプロキシは与えられたディスプレイポート 番号を使用する。ディスプレイポート番号はポート6000番からのオフセットで あり、通常の X のディスプレイ接続の指定方法と全く同じである。 コマンド行でポート番号が指定されなければ、lbxproxy はデフォルト値 の63番ポートを使う。プロキシが接続待ちに使おうとしたポートが既に使われ ている場合には、プロキシは他のポート番号を使おうとする。 プロキシがプロキシマネージャを使っておらず、かつデフォルトの ポート番号が使えなければ、実際に使われたポート番号が 標準エラー出力に出力される。
他のコマンド行オプションは以下のように指定する:
- -help
- コマンド行オプションに関する簡単なヘルプメッセージを出力する。
- -display dpy
- LBX 拡張をサポートしているX サーバのアドレスを指定する。 このオプションが指定されていない場合には、ディスプレイは DISPLAY 環境 変数から取得される。
- -motion count
- サーバとプロキシの間では、指定された数の限られたポインタ移動イベントし か伝送されない。伝送される移動イベントの最大数はこのオプションを使って 指定する。
- -maxservers number
- デフォルトの動作では、lbxproxy はサーバを 1 つだけ動かそうとする。 しかし、lbxproxy は複数個のサーバも管理できる。 サーバの最大個数のデフォルト値は 20 である。 このサーバ数は環境変数 LBXPROXY_MAXSERVERS に希望の値を設定することに より上書きできる。 指定の優先順位を優先度の高い方から並べると、コマンド行、環境変数、 デフォルト値である。
- -[terminate|reset]
- デフォルトの挙動では、最後のクライアントが終了しても lbxproxy は普通に 動作し続ける。 -terminate オプションを指定すると、最後のクライアントが終了したときに lbxproxy は 終了する。 -reset オプションを指定すると、最後のクライアントが終了したときに lbxproxy は 自身をリセットする。リセットを行うと、lbxproxy は状態をクリアしてサー バに再接続する。
- -reconnect
- デフォルトの挙動では、lbxproxy はサーバへの接続が切れたときに終了する。 -reconnect オプションを指定すると、lbxproxy は終了しないでリセットだけを行い(前述 の -reset オプションを参照)、サーバへの再接続を試みる。
- -I
- 残っている全ての引き数を無視する。
- -nolbx
- LBX の最適化を無効にする。
- -nocomp
- ストリーム圧縮を無効にする。
- -nodelta
- delta request substitution を無効にする。
- -notags
- タグの利用を無効にする。
- -nogfx
- グラフィックスリクエストの再エンコードを無効にする(イメージ関係のリク エストは含まない)。
- -noimage
- イメージ圧縮を無効にする。
- -nosquish
- X イベントの圧縮を無効にする。
- -nointernsc
- InternAtom リクエストの短絡を無効にする。
- -noatomsfile
- アトム制御ファイルの読み込みを無効にする。詳しくは "アトム制御" のセク ションを参照すること。
- -atomsfile file
- デフォルトの AtomControl ファイルを上書きする。詳しくは "アトム制御" のセクションを参照すること。
- -nowinattr
- GetWindowAttributes/GetGeometry を1往復の通信にまとめる動作を無効にす る。
- -nograbcmap
- カラーマップのグラブを無効にする。
- -norgbfile
- 色名の RGB 値への解決をプロキシ内部で行わないようにする。
- -rgbfile path
- 色名の RGB 値への解決に使う RGB データベースに別のファイルを指定する。
- -tagcachesize
- プロキシのタグキャッシュのサイズ(バイト数)を設定する。
- -zlevel level
-
Zlib の圧縮レベルを設定する(ストリーム圧縮に使用する)。
デフォルト値は 6 である。
1 = 圧縮率は最悪で、速度は最も速い
9 = 圧縮率は最も良く、速度は最も遅い - -compstats
- プロキシがリセットされるか SIGHUP シグナルを受け取るたびに、ストリーム の圧縮状態を出力する。
- -nozeropad
- X リクエスト、応答、イベントにおいて、 隙間埋めのための未使用のバイト値を 0 にしない。
- -cheaterrors
- 性能を向上させるために X プロトコルに違反することを認める。 X プロトコルにおいては、前のリクエストによって生成される応答、イベント、 エラーは、後のリクエストによって生成されるものよりも先に届くことが保証 されている。この動作は、lbxproxy がリクエストを短絡するときには本質的 な制限となる。-cheaterrors オプションを指定すると、lbxproxy がエラーに ついて X プロトコルの規約に違反することが許される。このオプションは、 ユーザ自身の責任で使用すること。
- -cheatevents
- -cheatevents オプションを使うと、lbxproxy はエラーに加えて応答について も X プロトコルの規約に違反することが許される。このオプションは、ユー ザ自身の責任で使用すること。
アトム制御
lbxproxy は起動時に、設定可能なアトムのリストを「先に取り込む」操作を 行う。これにより、lbxproxy は1往復の通信でアトムのグループを取り込む ことができ、その結果を即座にキャッシュすることができる。
lbxproxy が動作している際、 サーバへのウィンドウプロパティデータの送信をいつまで遅延させるのかは、 ヒューリスティックを用いて決める。 このヒューリスティックは、データのサイズ、プロパティの名前、 ウィンドウマネージャが同じ lbxproxy 経由で動作しているかどうかに基づい て動作する。
アトム制御は、lbxproxy のインストール時に設定される "AtomControl" ファ イルで指定されるが、コマンド行で上書きできる。
このファイルは簡単なテキストファイルである。このファイルには3つの形式の行 (コメント、長さ制御、名前制御)がある。'!' で始まる行はコメント行として 扱われる。
z length
という形式の行は、プロパティデータが遅延される前の最短の長さをバイト数 で示す。
options atomname
という形式の行は、指定されたアトムを制御する。ここで options は 以下の文字の任意の組合せである: 'i' はアトムはあらかじめ取り込んでいな ければならないことを示し、'n' はこの名前を持つプロパティに対するデータ は遅延させてはならないことを示す。また、'w' はこの名前を持つプロパティ に関するデータは、ウィンドウマネージャも同じプロキシ経由で動いている場 合に限り遅延させるべきであることを示す。
バグ
認証プロトコルとして XDM-AUTHORIZATION-1 を使う場合:
クライアントがサーバへの接続を許可されるためには、 クライアントは lbxproxy と同じホスト上で動作していなければならない。
クライアントが lbxproxy と同じホスト上で動作していない場合は、 クライアントはサーバへの接続を許可されない。