I3 (ウィンドウマネージャ)

i3 (i3 Window Manager; i3と呼ばれる他の語と区別する為に“i3-wm”と表記されることもある) はX上で動作する動的タイル型ウィンドウマネージャの一つ。
wmiiの修正かつ後継を念頭に置き、“Do What I Mean. Good Docs. Clean Code. Sounds good?（直感的な操作。優良な手引き。簡潔なソースコード。魅力的だろ？）”という理念を掲げている。
i3はGNU/Linux及び*BSD向けのフリー/オープンソースソフトウェアである。

概要 

i3-wmは2017年現在も活発に開発が行なわれているタイル型ウィンドウマネージャの一つである。
開発はGitHubのリポジトリで進められている。
“Mod Key”（通常はもしくは）と他のキーを押下することでウィンドウの配置や生成・消去等を操作する。
ホームディレクトリ下にあるテキストファイル（通常~/.i3/config、~/.config/i3/config等）を編集することで様々な設定を変更出来、設定を適用するのにOSやXを再起動する必要がない。
Vimに似た“モード”を持ち、また、利用者は先の設定ファイルを適切に変更することで実行するプログラム毎にウィンドウの挙動を変更することも可能である。
木構造やXCBを採用し、9Pを取り除くことでプログラムとの調和が取れた、迅速な配置を実現している。
また、UTF-8に完全に対応している。

開発言語 

i3-wmはほとんど完全にC言語で記述されている。
ソースコード単体は計900 KiB弱程の大きさである（最新4.13版では896 KiB）。

特徴 

i3-wmには次のような特徴がある。

 読み易く、文書化されたソースコード
 それに加え、ソースコードの原則（例えば引数がどう解釈されるか等）を理解しているがX11に関する詳細な規則には明るくない人間に対してi3-wm内部の動作を説明する、より噛み砕いた文書がある。i3-wmの初回起動時には、「設定ファイルを作成するか」という旨の問い掛けが提示され、承諾すると非常に丁寧な解説が併記された設定ファイルが作成される。これは設定項目を当該WMのWebサイトやその他のWiki、ブログで闇雲に調べるより遥かに効率的で正確であろう。

 XCBの使用
 Xlibの代りにXCB（より新しいX規約の抽象化参照群。Xlibに比べ迅速な動作が期待できると言われている）を利用している。これはdwmからの名残りであるから“i3の特徴”とは言い難いが、i3の公式サイトには「特徴」として記載されている。

 現代における使用例への対応
 マルチモニターやプロジェクターへの（任意の）投影等、瞬時に画面を構成/解散する必要のある状況に堅牢な対応をしている。

 木構造の採用
 ウィンドウの管理に木構造を採用することで、列指向の他のウィンドウマネージャに比べてより柔軟な配置が可能となっている。“stacking”という配置規則は、画面の上部に各ウィンドウのタイトルバーを集約し、スタック型ウィンドウマネージャの様にウィンドウを重複させ、現行のウィンドウを全画面の状態で表示する。この際タイトルバーは元の配置を忠実に再現しようと努め、複数行に渡ることもある。利用者はこの配列を見て目的のウィンドウに切り替える事が出来る。また“tabbing”という配列規則は、上述の“stacking”に類似したウィンドウの重複を許すものだが、タイトルバーがTDIを模した表示になり一行に収まる。この配列規則はUzblの様な、「ウィンドウのタブ化はウィンドウマネージャの仕事」という、（かなり厳密な）UNIX哲学を採用したプログラムの実行時に有意義である。どの様な配列規則を採っても利用者は共通したキーボード操作でウィンドウの状態を管理できる。

 “モード”という概念
 Vimに似た複数の“モード”を持つ。例えば利用者は（標準）という操作によって「大きさの変更」という“モード”に移行する。

 9Pの不使用
 9Pを保持するwmiiより柔軟なプロセス間通信により、何らかの実行や命令の授受が喩えi3が読み込まれている最中でも容易に予約出来る。

 完全UTF-8対応。
 UTF-8に完全対応している。また、Pangoも採用しており、日本語のような膨大な字体情報が必要な文字言語の表示も特段の処置無く可能である。

 軽量で爽快。
 コンポジット型ウィンドウマネージャと比べて機敏な動作が期待できる。

参考

外部リンク 
 i3 - improved tiling wm - i3の公式サイト
 i3 - ArchWikiの当該ページ

Xウィンドウマネージャ
オープンソースソフトウェア