Comparison of tiling window managers (日本語) - ArchWiki

# Comparison of tiling window managers (日本語)

この記事では (フロート型ウィンドウマネージャと対立する) 人気のあるタイル型ウィンドウマネージャを公平に比較しています。

## 比較表

以下の表では人気のタイル型ウィンドウマネージャとその特徴を並べて、素早く比較できるようにしています。

タイル型ウィンドウマネージャの比較
ウィンドウマネージャ | 開発言語 | 設定方法 | 管理方式 | システムトレイのサポート | 実行中のリロード | 情報バー | コンポジット | デフォルトレイアウト | ピクセルの使用量 | 外部コントロール | ライブラリ | マルチモニター | ICCCM/EWMH 対応 | 開発
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
alopex | C | C (リコンパイル) | ハイブリッド | なし | いいえ | 内蔵、第一引数でスクリプト/プログラムを呼び出し | 外部 | max, h-stack, v-stack, h-tab | 可変のボーダー、ステータスバーにタイトル |  | Xlib | six tags, two views available by default |  | 継続中
Awesome | C | Lua | ダイナミック | 内蔵 | はい | 内蔵、画像とテキスト | 外部 | max, nh-stack (と invert), nv-stack (と invert), free | 可変のボーダー、任意で h-tab タイトル | dbus (有効の場合) | XCB | n-tags (workspaces). Per default 9 are enabled. Example | はい | 継続中
bspwm | C | 何でも | ハイブリッド | なし | はい | 内部状態を FIFO に書き出し可能 | 外部 | v-split, h-split | 可変のボーダー | `bspc` による | XCB | Monitors hold Desktops | はい | 継続中
catwm | C | C (リコンパイル) | ダイナミック | なし | いいえ | なし | いいえ | v-stack, max | 1ピクセルのボーダー |  | Xlib |  |  | 開発終了
dswm | Lisp | Lisp | マニュアル | なし | はい | はい | いいえ |  |  |  |  |  |  | 継続中
dwm | C | C (リコンパイル) | ダイナミック | 任意のパッチ | 任意 | 内蔵、ルートウィンドウの名前から読み込み | 外部 | v-stack, max |  |  | Xlib | n regions, 9 workspaces fixed to each region |  | 継続中
echinus | C | テキスト | ダイナミック | なし | はい | ourico | 外部 | v-stack, b-stack, max | 可変のボーダー & 任意のタイトル |  | Xlib |  | はい | 不明
euclid-wm | C | テキスト | ハイブリッド | なし | はい | 外部 (dzen) |  | rows, columns | 1ピクセルのボーダー |  | Xlib |  |  | 休止中
frankenwm | C | C (リコンパイル) | ダイナミック | なし | いいえ | いいえ、標準出力に出力された情報は外部のモニターやパネルで簡単にパースしたり表示できます (`dzen2`, `conky` など) | 外部 | v-stack (と invert), h-stack (と invert), dual-v/h-stack, grid, fibonacci (vh-stack), rows, columns, max, free | 可変のボーダー |  | XCB |  |  | 継続中
herbstluftwm | C | テキスト | マニュアル | なし | はい |  |  | rows, columns | 1ピクセルのボーダー | herbstclient によるコマンド | Xlib と Glib | n regions, 9 workspaces visible in any region |  | 継続中
i3 | C | テキスト | ダイナミック | i3bar | はい (レイアウトは保存されます) | i3bar にパイプで渡されたテキスト (`i3status`/`conky` なども使用可能) | 外部 | tree, v-split, h-split, stacked, tabbed, max, can be nested infinitely | なし、1ピクセルまたは2ピクセル、任意のタイトルバー、境界ボーダーは隠せます | ipc によるコマンド (または ipc を使用する i3-msg) | XCB | n regions | はい | 継続中
Ion3 | C | Lua | マニュアル | trayion | はい | 設定可能 | ? | h-tab, max |  |  |  |  |  | 開発終了
monsterwm | C | C (リコンパイル) | ダイナミック | なし | 任意、ただしウィンドウは消失 | いいえ、標準出力に出力された情報は外部のモニターやパネルで簡単にパースしたり表示できます (`dzen2`, `conky` など) | 外部 | h-stack, v-stack, grid, max |  | `_NET_ACTIVE_WINDOW` をサポートしているので、`xdotool` などのツールによる外部コントロールが可能 | Xlib primary and XCB fork | n workspaces per monitor |  | 継続中
Musca | C | テキスト、独自のコマンドセット、C (リコンパイル) | マニュアル | なし | いいえ、ただし即座に適用される musca コマンドの実行は可能 | なし | いいえ | h-split, v-split, max |  | コマンド、フック | Xlib |  |  | 開発終了
Notion | C, Lua | Lua, Ion3 の設定と互換性あり | マニュアル | trayion, stalonetray | はい | 設定可能 | ? | h-tab, max | 設定可能なボーダーとタイトルバー/タブ | EWMH, リッチな内部 API にアクセスできる任意の Lua スクリプト | Xlib | n workspaces on each monitor. Supports on-the-fly changes in topology |  | 継続中
qtile | Python | Python | ダイナミック | はい | はい | はい | 外部 | tree, v-split, h-split, stacked, tabbed, max | ボーダーなし、カスタマイズ可能 | フック、サーバーモード | XCB |  |  | 継続中
Ratpoison | C | テキスト | マニュアル | なし | はい | はい | 外部 | max |  |  |  |  | いいえ | 継続中
Snapwm | C | テキスト | ダイナミック | なし | はい | 内蔵、ルートウィンドウの名前から読み込み | 外部 | nVertical, Fullscreen, nHorizontal, Grid, Center Stacking | 可変のボーダー、タイトルなし |  | Xlib | Number of desktops distributed evenly between monitors |  | 継続中
Spectrwm | C | テキスト | ダイナミック | なし | はい | 内蔵、ルートウィンドウの名前から読み込み | いいえ | nv-stack, nh-stack, max | 1ピクセルのボーダー、タイトルなし |  | XCB | n regions, 10 workspaces visible in any region | はい | 継続中
Stumpwm | Lisp | Lisp | マニュアル | なし | はい | はい | いいえ |  |  |  |  |  | いいえ | 継続中
subtle | C | Ruby | マニュアル | 内蔵 | はい | 内蔵 (Ruby), 外部のプログラムも使用可能 | 外部 | 可変 grid | 可変のボーダー、タイトルなし | Hooks (Ruby), subtler (CLI), subtlext (Ruby extension) | Xlib | One workspace (view) per monitor (screen), placement on views via tags and per runtime | はい | 継続中
Wingo | Go | テキスト | ダイナミック | なし | はい | いいえ | 外部 | floating, nv-stack, nh-stack, max | floating ではタイトルバー、tiling では細いボーダー | wingo-cmd またはプログラミング言語の UNIX ソケットによる | X Go Binding | n regions, workspaces visible in any region | はい | 継続中
WMFS | C | テキスト | ダイナミック | 内蔵 | はい | 内蔵, コマンドで設定, カラーテキスト, 画像 | 外部 | nh-stack (と invert), nv-stack (と invert), mirror-v, mirror-h, grid, free, max | 可変のボーダー・タイトルまたはタイトルなし | コマンド | Xlib | 画面ごとに36タグ (ワークスペース) まで | はい | 継続中
wmii | C | 何でも | マニュアル | witray | はい | 内蔵 | 外部 | columns, max, v-tab | タイトル | 9P ファイルシステム |  | one big region | はい | 継続中
xmonad | Haskell | Haskell | ダイナミック | なし | はい | いいえ | はい、xmonad-contrib と外部のマネージャによる | nv-stack, nh-stack, max | 可変のボーダー、タイトルなし | XMonad-Hooks-ServerMode による | Xlib | n regions, 9 workspaces visible in any region | はい / ? | 継続中
ウィンドウマネージャ | 開発言語 | 設定方法 | 管理方式 | システムトレイのサポート | 実行中のリロード | 情報バー | コンポジット | デフォルトレイアウト | ピクセルの使用量 | 外部コントロール | ライブラリ | マルチモニター | ICCCM/EWMH 対応 | 開発

Tip: 外部コントロールは xdotool などのキーストロークをシミュレートするプログラムでも行えます。

### 管理方式

ダイナミック管理方式はウィンドウレイアウトを自動で管理して、スピードとシンプルに焦点を置いています。マニュアル管理方式はレイアウトやサイズを手動で調整して細かいコントロールができますが、ウィンドウの移動やサイズ変更に時間がかかります。

### レイアウト

タイル型 WM には共通のレイアウトタイプというのが存在します。ただし用語が変わることもままあります。

- max: フルスクリーンで表示される単一のウィンドウ (ステータスバーやタイトル、ボーダーはあったりなかったり)。別名: monocle (dwm, monsterwm)。
- h-stack: 上半分がマスターエリアで、他のウィンドウは下半分に水平に並べられます。マスターエリアのサイズは変更できます。上下を逆にすることも可能 (wmfs)。別名: bottom stack (dwm), bstack (monsterwm)。
- v-stack: 左半分がマスターエリアで、他のウィンドウは右半分に縦に並べられます。マスターエリアのサイズは変更できます。左右を逆にすることも可能 (wmfs)。別名: tile (dwm, monsterwm)。
- nh-stack: マスターエリアに複数のウィンドウを配置できる h-stack。別名: nbstack (dwm)
- nv-stack: マスターエリアに複数のウィンドウを配置できる v-stack。別名: ntile (dwm)
- mirror-h: マスターエリアの上下にスタックできる nh-stack
- mirror-v: マスターエリアの左右にスタックできる nv-stack
- h-tab: 単一のウィンドウをフルスクリーンで表示して全てのウィンドウのタイトルを (ブラウザのタブのように) 水平に表示
- v-tab: 単一のウィンドウをフルスクリーンで表示して全てのウィンドウのタイトルを垂直に表示。別名: stack (wmii)。
- h-split: キーバインドでカレントウィンドウを水平に分割して別のウィンドウのためのスペースを作成
- v-split: キーバインドでカレントウィンドウを垂直に分割して別のウィンドウのためのスペースを作成
- columns: ウィンドウを縦の列に属しているように扱う手動のレイアウトスタイル
- rows: ウィンドウを横の行に属しているように扱う手動のレイアウトスタイル
- grid: 規則正しい NxM グリッドでウィンドウの位置とサイズを調整。自動 (wmfs, monsterwm など) または手動 (Subtle など)。

### キーバインド

タイル型ウィンドウマネージャは基本的に全てをキーボードで操作するか、キーボードとマウスを組み合わせて使うように作られています。スピード (マウスに手を伸ばすのは面倒くさい) と使いやすさのためです。効率的かつ素早く作業を行うためにキーバインドはわかりやすくなくてはなりません。デフォルトのキーバインドが一番良いということもありますが、ユーザーが使いやすいようにキーを入れ替えるのが普通です。

## 参照

- Comparison of extensible window managers compares WMs "extensible" by scripting, like Xmonad and Sawfish.

Category:

- Tiling WMs (日本語)