タイル型ウィンドウマネージャの比較

提供: ArchWiki
移動先: 案内検索

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

比較表

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

タイル型ウィンドウマネージャの比較
ウィンドウマネージャ 開発言語 設定方法 管理方式 システムトレイのサポート 実行中のリロード 情報バー コンポジット デフォルトレイアウト ピクセルの使用量 外部コントロール ライブラリ マルチモニター ICCCM/EWMH 対応 開発
alopex C C (リコンパイル) ハイブリッド なし いいえ 内蔵、第一引数でスクリプト/プログラムを呼び出し 外部 max, h-stack, v-stack, h-tab 可変のボーダー、ステータスバーにタイトル Xlib デフォルトで6つのタグ、2つのビューが使用可能 開発終了
Awesome C Lua ダイナミック 内蔵 はい 内蔵、画像とテキスト 外部 max, nh-stack (と invert), nv-stack (と invert), free 可変のボーダー、任意で h-tab タイトル dbus (有効の場合) XCB 任意の数のタグ (ワークスペース)。デフォルトでは9まで。サンプル はい 継続中
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 任意の数のリージョン、1つのリージョンにつき9つのワークスペース 継続中
echinus C テキスト ダイナミック なし はい ouricoAUR 外部 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 任意の数のリージョン、1つのリージョンにつき9つのワークスペース 継続中
i3 C テキスト ダイナミック i3bar はい (レイアウトは保存されます) i3bar にパイプで渡されたテキスト (i3status/conky なども使用可能) 外部 tree, v-split, h-split, stacked, tabbed, max, 無限にネスト可能 なし、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 と 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 拡張) Xlib One workspace (view) per monitor (screen), placement on views via tags and per runtime はい 継続中
sway C テキスト (i3 互換) ダイナミック swaybar はい (レイアウトは保存されます) swaybar にパイプでテキストを指定 (i3status/conky などが使えます) はい tree, v-split, h-split, stacked, tabbed, max, 無限にネスト可能 なし, 1・2ピクセル, 任意のタイトルバー, 縁を非表示にできます ipc によるコマンド (または ipc を使用する swaymsg) wlc (wayland) n regions いいえ 継続中
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 対応 開発
ヒント: 外部コントロールは 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 など)。

キーバインド

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

参照