O HAI THIS BLOG PURPZIEZ 2 B UZED AZ MAH PLESIOUS MEM. :)

2008/01/24

wmii.karma++;

matsuuさんがタイル型ウィンドウマネージャのまとめをしているので,反応.もちろん,wmiiしか使ってないがな!!1 :p

2008/01/24 00:30 JSTではmatsuuさんのwmiiのまとめはこんなんになっとる.
  • 特徴: 柔軟なウィンドウ制御
  • 開発言語: C
  • 設定ファイルの有無: ×
  • キーバインドの変更: ○
  • floating機能: ?
  • 仮想デスクトップ: ○
  • タブ機能: ×
  • Compositeサポート: ×
  • フォントの扱い: Xlib
  • マルチディスプレイ制御: ×
  • XRandRサポート: ×
  • 機能拡張: ×
  • Xを再起動せず設定ファイル反映: ○
  • ライセンス: MIT

matsuuさんは既にawesomeに浮気してしまったし,使った事が無い人には色々誤解しそうな点をwmiiユーザーとして説明する.

特徴
一言で言えば,non-WIMPyで9ishだと言う事.良く分からんと思うので,dev達が書いプロパガンダやガイドを見ると良い.「日本語訳は無ぇーのかよ?」と言う方は,随分前に暇潰しに訳していたプロパガンダガイドを晒し上げておいた.尚、当該ガイドの翻訳は途中までしか無い上に,最新版のwmii-3.6やhg tipとは設定や動作に整合性が無かったりするけれど,コンセプトは変わっていないので問題無いと思う. :P

開発言語
C言語.それからデフォルトではPlan 9 rcかPOSIX shサブセット.コアはC言語で記述されているけれど,後二者はユーザーへの配慮があまりにも柔軟"過ぎる"為,FILE I/Oのあるモノなら何でも良い.但し,FILE I/Oが有っても9pを直接喋る事が出来なければ,libixp付属のixpcを介すか,Linuxなら9p2000でマウントして,wmiiが使用する9ishなファイルシステムを使える必要が有る.実際,「RubyやらPythonででっち上げました!」みたいな投稿がMLを漁れば有るはず.

設定ファイルの有無
*nixアプリに付き物の${HOME}/.*rcとかに該当する静的な設定ファイルは無い.hg tipでは,ビルド時に決まる${ETC}/wmii-${VERSION}/{rc.wmii,wmiirc}かユーザー毎の${HOME}/wmii-${VERSION}/{rc.wmii,wmiirc}が設定をwmii起動時,あるいはユーザーの指示に応じて,wmiiが使用する9ishなファイルシステムに動的に書き込む.

キーバインドの変更
キーバインドについても同上.また,ユーザーへの配慮があまりにも柔軟"過ぎる"為,MODKEYと呼ばれるキーイベントを捕まえる為の特別なキー以外はほぼ何でも有り.MODKEY自体もCtrlキー, Shiftキー, Altキー, Windowsキー, Appleキーなどが使える.例えば,rc.wmiiやwmiircをシコシコ書いて,「Alt+Iを押してAlt+R押してAlt+Cを押す」と言うキーバインドコンビーネーションで「IRCクライアントを起動する」とかも出来る.

floating機能
wmiiはWIMPyなクライアントもnon-WIMPyなクライアントもをfloatingさせる事が出来る.デフォルトではクライアントにフォーカスして,Mod1-Shift-Spaceでfloating状態とfloatingさせない状態を切り替える.floatingさせるクライアントには~と言うタグを付ける.rc.wmiiやwmiircをシコシコ書いて,タグルールを生成する事で起動時に自動的にfloatingさせる事も出来る.が,タグルール自体はfloatingさせる事が目的では無く,「起動時にデフォルトのタグを割り当てる事が出来る」と言う事実の副産物. :P

仮想デスクトップ
wmiiではタグとヴューを使用すれば,仮想デスクトップを作る事が出来るが,タグとヴューによる管理は仮想デスクトップ以上のモノを提供する.例えば,xterm上のvimとxterm上のtopを起動して,それぞれ
coding+tasks, tasksとタグをつけてcoding, tasksと言うヴューを生成すれば,同一のxterm上のvimを異なるヴューで共有出来る.

タブ機能
タブ機能はタブの数が増えるとタイトルバーが見えなくなると言う問題が有る為,wmiiにタブ機能は無い.その代わりにレイアウトと呼ばれるモノの一つでスタッキングと言うモノが有る.タブは,
+--------+--------+
| title1 | title2 |
+--------+--------+
|                 |
|     window1     |
|       or        |
|     window2     |
+-----------------+
となるのに対して,スタッキングレイアウトは
+-----------------+
| title1          |
+-----------------+
| title2          |
+-----------------+
|                 |
|     window2     | <--- window1 hides under client2
|                 |
+-----------------+
となる. デフォルトではMod1-jとMod1-kでそれぞれ上下方向にクライアントが切り替わる.
+-----------------+
| title1          |
+-----------------+
|                 |
|     window1     | <--- window2 hides under client1
|                 |
+-----------------+
| title2          |
+-----------------+
「タイトルバーが上と下に出てウザいよ?」と言う方はボトムスタックやら トップスタックやらパッチが転がっていたハズなので好みで使えば良い. 「クライアントは横に並べるだろ?」と言う人はカラム分割すれば良い. クライアント1にフォーカスしてMod1+Shift+l.
+--------+--------+
| title2 | title1 |
+--------+--------+
|        |        |
|window2 | window1|
|        |        |
+--------+--------+
右カラムを動的に生成,分割比もrc.wmiiやwmiircで設定. 因みに,それぞれのカラムは別のレイアウトに出来る.「フォーカスしていないクライアントのタイトルバー要らね」と言う人は マキシマムレイアウトすれば,問題無し.クライアント1にフォーカスして Mod1+Shift+hで元に戻せば右カラムは動的に破棄されて,更にMod1+m.
+-----------------+
| title1          | <- title2 hides under title1
+-----------------+
|                 | 
|    window1      | <- window2 hides under window1
|                 |
+-----------------+
mplayer何かでmplayer自身のタイトルもウザい場合にはフルスクリーンにすれば,問題無し.Mod1+fで.
+-----------------+ <--- title 1 is gone
|                 | 
|    window1      | <--- client2 hides under client1
|                 |
+-----------------+
但し,フルスクリーンはレイアウトじゃないので注意.

Compositeサポート
wmiiはネイティブCompositeはサポートしていない.因みにdev達はサポート する気が無い様なので,xcompmgrでも使って下さい.スケスケが見た目ちょっと 格好良いのは百歩譲って認めるとしても「透明度がアレで背景が透けて見える 所為で読み難くなったターミナルなんか要らない」と言うのが理由の 一つみたい.個人的にもCompositeサポート要らねぇ派. :P

フォントの扱い
フォントの設定はX論理フォント記述なXLFD,UTF-8な適当なフォントが 用意できればタイトルもステータスもそのフォントで表示出来る.勿論, 日本語も問題無い.

マルチディスプレイ制御
と言うか,「どデカいディスプレイを何個も並べて,同時に何個もディスプレイ を見てるんか?」と言うそもそもの疑問が個人的には有る.wmiiはレイアウト とカラムを保存しつつ,タグとヴューを使用する事が出来るのでマルチディスプレイ 制御の必要性は低い.一応,${DISPLAY}による制御は可能.元々,X11が マルチディスプレイ制御に設計上向いていなかったと言うのは禁句な!!1 :P

XRandRサポート
XRandR,はじめました. :)

機能拡張
「特徴」で書いた様に,FILE I/O + 9pで何でもありなので拡張自体に縛りが無い.

Xを再起動せず設定ファイル反映
「設定ファイルの有無」で書いた様に,元々設定自体が動的なのでXの再起動は必要無い.

ライセンス
短いライセンスでmoronic coder向きですね. :P

久しぶりに結構書いたので,面倒臭いからEng'r'ish無しにしておこう. :P

更新: TYPO修正.

0 件のコメント: