i3 (ウィンドウマネージャ)
i3 (i3 Window Manager; i3と呼ばれる他の語と区別する為に“i3-wm”と表記されることもある) はX上で動作する動的タイル型ウィンドウマネージャの一つ。 wmiiの修正かつ後継を念頭に置き、“Do What I Mean. Good Docs. Clean Code. Sounds good?(直感的な操作。優良な手引き。簡潔なソースコード。魅力的だろ?)”という理念を掲げている。 i3はGNU/Linux及び*BSD向けのフリー/オープンソースソフトウェアである。
作者 | Michael Stapelberg |
---|---|
初版 | 2009年3月15日[1] |
最新版 | |
リポジトリ | |
プログラミング 言語 | C |
対応OS | Unix系 |
サイズ | 1.3MiB[3] |
種別 | ウィンドウマネージャ |
ライセンス | BSDライセンス[4] |
公式サイト | i3wm.org |
概要
編集i3-wmは2017年現在も活発に開発が行なわれているタイル型ウィンドウマネージャの一つである。
開発はGitHubのリポジトリi3 - GitHubで進められている。
“Mod Key”(通常は⊞ Winもしくは⎇ Alt)と他のキーを押下することでウィンドウの配置や生成・消去等を操作する。
ホームディレクトリ下にあるテキストファイル(通常~/.i3/config
、~/.config/i3/config
等)を編集することで様々な設定を変更出来、設定を適用するのにOSやXを再起動する必要がない。
Vimに似た“モード”を持ち、また、利用者は先の設定ファイルを適切に変更することで実行するプログラム毎にウィンドウの挙動を変更することも可能である。
木構造やXCBを採用し、9Pを取り除くことでプログラムとの調和が取れた、迅速な配置を実現している。
また、UTF-8に完全に対応している。
開発言語
編集i3-wmはほとんど完全にC言語で記述されている。 ソースコード単体は計900 KiB弱程の大きさである[5](最新4.13版では896 KiB)。
特徴
編集i3-wmには次のような特徴がある[6]。
- 読み易く、文書化されたソースコード
- それに加え、ソースコードの原則(例えば引数がどう解釈されるか等)を理解しているがX11に関する詳細な規則には明るくない人間に対してi3-wm内部の動作を説明する、より噛み砕いた文書がある。i3-wmの初回起動時には、「設定ファイルを作成するか」という旨の問い掛けが提示され、承諾すると非常に丁寧な解説が併記された設定ファイルが作成される。これは設定項目を当該WMのWebサイトやその他のWiki、ブログで闇雲に調べるより遥かに効率的で正確であろう。
- XCBの使用
- Xlibの代りにXCB(より新しいX規約の抽象化参照群。Xlibに比べ迅速な動作が期待できると言われている)を利用している。これはdwmからの名残りであるから“i3の特徴”とは言い難いが、i3の公式サイトには「特徴」として記載されている。
- 木構造の採用
- ウィンドウの管理に木構造を採用することで、列指向の他のウィンドウマネージャに比べてより柔軟な配置が可能となっている。“stacking”という配置規則は、画面の上部に各ウィンドウのタイトルバーを集約し、スタック型ウィンドウマネージャの様にウィンドウを重複させ、現行のウィンドウを全画面の状態で表示する。この際タイトルバーは元の配置を忠実に再現しようと努め、複数行に渡ることもある。利用者はこの配列を見て目的のウィンドウに切り替える事が出来る。また“tabbing”という配列規則は、上述の“stacking”に類似したウィンドウの重複を許すものだが、タイトルバーがTDIを模した表示になり一行に収まる。この配列規則はUzblの様な、「ウィンドウのタブ化はウィンドウマネージャの仕事」という、(かなり厳密な)UNIX哲学を採用したプログラムの実行時に有意義である。どの様な配列規則を採っても利用者は共通したキーボード操作でウィンドウの状態を管理できる。
- “モード”という概念
- Vimに似た複数の“モード”を持つ。例えば利用者は$mod+r(標準)という操作によって「大きさの変更」という“モード”に移行する。
- 軽量で爽快。
- コンポジット型ウィンドウマネージャと比べて機敏な動作が期待できる。
参考
編集- ^ releases?after=tree-pr1 - GitHub
- ^ https://github.com/i3/i3/releases/tag/4.24; 出版日: 2024年11月6日.
- ^ i3-wm公式サイト/ダウンロード
- ^ i3 home page
- ^ src - GitHub
- ^ 公式サイト
外部リンク
編集- i3 - improved tiling wm - i3の公式サイト
- i3 - ArchWikiの当該ページ