「I3」の版間の差分
細 |
細 (→ネットワークのダウンロード・アップロード速度をステータスバーに表示: リンクを更新) |
||
(9人の利用者による、間の56版が非表示) | |||
3行目: | 3行目: | ||
[[Category:動的ウィンドウマネージャ]] |
[[Category:動的ウィンドウマネージャ]] |
||
[[en:i3]] |
[[en:i3]] |
||
− | [[ko: |
+ | [[ko:I3]] |
− | [[ru: |
+ | [[ru:I3]] |
− | [[zh- |
+ | [[zh-hans:I3]] |
{{Related articles start}} |
{{Related articles start}} |
||
− | {{Related|デスクトップ環境}} |
||
− | {{Related|ディスプレイマネージャ}} |
||
− | {{Related|ファイルマネージャの機能}} |
||
− | {{Related|ウィンドウマネージャ}} |
||
{{Related|タイル型ウィンドウマネージャの比較}} |
{{Related|タイル型ウィンドウマネージャの比較}} |
||
− | {{Related| |
+ | {{Related|ウィンドウマネージャ}} |
− | {{Related|自動起動#グラフィカル}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | [ |
+ | [https://i3wm.org/ i3] は wmii にインスパイアされて開発された動的[[Wikipedia:ja:タイル型ウィンドウマネージャ|タイル型ウィンドウマネージャ]]で、主に開発者や上級ユーザーをターゲットにしています。 |
− | i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、[[ |
+ | i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、[[vim]] のような様々なモードなどです。 |
− | == |
+ | ==インストール== |
+ | i3 は、{{Pkg|i3-wm}} パッケージでインストールできます。 |
||
− | [[公式リポジトリ]]から {{Grp|i3}} [[Pacman#パッケージグループのインストール|パッケージグループ]]を[[インストール]]してください。このグループにはウィンドウマネージャの {{Pkg|i3-wm}} と、[[Wikipedia:ja:標準ストリーム#標準出力 (stdout)|標準出力]]によってステータスラインに書き込みを行う {{Pkg|i3status}}、そして画面ロッカーの {{Pkg|i3lock}} が含まれています。 |
||
+ | {{Grp|i3}} パッケージグループも利用可能です。これには、ウィンドウマネージャ、スクリーンロッカー、標準出力を介して i3bar にステータスラインを書き込む2つのプログラムが含まれています。 |
||
− | 開発版の {{AUR|i3-git}} など、他のパッケージは [[Arch User Repository|Arch User Repository]] からインストールできます。多くの場合、バグは開発版で修正されているため上流では開発版を使ってエラーが再現できるかどうか訊いてきます [http://i3wm.org/docs/debugging.html]。 |
||
+ | {{Note|{{Pkg|i3-wm}} は {{Pkg|i3-gaps}} (gapsなどの機能を持つ ''i3'' のフォーク) と競合し、デフォルトでは {{Pkg|i3-gaps}} がインストールされます。}} |
||
− | === ディスプレイマネージャ === |
||
+ | == 起動 == |
||
− | {{AUR|i3-gnome}} は [[GNOME]] と {{Grp|i3}} をウィンドウマネージャとする X-session を追加します。ウィンドウマネージャだけを起動する Xsession は {{Grp|i3}} に含まれています。[[ディスプレイマネージャ]]を参照してください。 |
||
− | === |
+ | === tty === |
+ | [[xinit]] で {{ic|i3}} を実行します |
||
− | [[Xinitrc|xinitrc]] を編集して、次の行を追加してください: |
||
+ | === ディスプレイマネージャー === |
||
− | exec i3 |
||
+ | {{Pkg|i3-wm}} にはウィンドウマネージャーを起動する [[Xsession]] として {{ic|i3.desktop}} が含まれています。{{ic|i3-with-shmlog.desktop}} はログを有効にします(デバッグに便利です)。{{AUR|i3-gnome}} は ''i3'' を [[GNOME]] に統合します。 |
||
− | i3 からの出力を記録したいときは (デバッグに役立ちます)、代わりに次の行を追加してください: |
||
+ | ==使用方法== |
||
− | exec i3 -V >> ~/.config/i3/i3log-$(date +'%F-%k-%M-%S') 2>&1 |
||
+ | 詳しい情報は [https://i3wm.org/docs 公式のドキュメント]、すなわち [https://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。 |
||
− | バージョン '''302.17''' 以前の Nvidia バイナリドライバーを使う場合は {{ic|--force-xinerama}} フラグが必要です。詳しい説明は [http://i3wm.org/docs/multi-monitor.html i3wm.org] にあります。 |
||
+ | ===キーバインド=== |
||
− | exec i3 --force-xinerama |
||
+ | i3 では修飾キー ({{ic|$mod}} と表記されます) を使ってコマンドを呼び出します。デフォルトでは {{ic|Alt}} (Mod1) ですが、{{ic|Super}} (Mod4) も良く使われます。大抵のキーボードでは Super は Windows アイコンが印されたキーになります。Apple キーボードなら Command キーです。 |
||
− | キーのマッピングに問題が起こるときは (例: セミコロンの {{ic|;}})、{{Pkg|xorg-xev}} を使うか、または [[Extra keyboard keys]] を見て下さい。 |
||
+ | デフォルトのキーバインドについては [https://i3wm.org/docs/refcard.html i3 リファレンスカード] や [https://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。新しくショートカットを追加する方法は [https://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] に載っています。 |
||
− | $ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p' |
||
+ | Qwerty 以外のキーボード配列を使っている場合は[[#設定ウィザードとキーボードレイアウト|設定ウィザードとキーボードレイアウト]]に書かれているように設定ウィザードを迂回すると良いでしょう。 |
||
− | == 使用方法 == |
||
+ | ===コンテナとレイアウト=== |
||
− | 詳しい情報は [http://i3wm.org/docs 公式のドキュメント]、すなわち [http://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。 |
||
+ | i3 はコンテナを基本単位としたツリー構造でウィンドウを管理します。この構造は縦や横に分岐していきます。デフォルトではコンテナはタイル状に並べられますが、タブでまとめたり積み重ねるレイアウトに設定したり、フロートさせることもできます (ダイアログウィンドウのように)。フローティングウィンドウは常に一番上に表示されます。 |
||
− | === アプリケーションランチャー === |
||
+ | 詳しくは [https://i3wm.org/docs/userguide.html#_tree i3 Tree] や [https://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。 |
||
− | i3 はアプリケーションランチャーとして [[dmenu|dmenu]] を使っており、デフォルトでは {{ic|$mod+d}} で呼び出せます。 |
||
+ | ===アプリケーションランチャー=== |
||
− | {{Pkg|i3-wm}} には ''dmenu'' の [[Wikipedia:ja:Perl|Perl]] ラッパーである ''i3-dmenu-desktop'' が含まれており、[[desktop entries|デスクトップエントリ]]を利用してインストールされている全てのアプリケーションのリストを作成します。また、{{AUR|j4-dmenu-desktop-git}} パッケージを使うこともできます。こちらは ''i3-dmenu-desktop'' とほぼ同様に使える上に、高速に動作します [https://github.com/enkore/j4-dmenu-desktop/blob/master/README.md]. |
||
+ | i3 はアプリケーションランチャーとして [[dmenu]] を使っており、デフォルトでは {{ic|$mod+d}} で呼び出せます。dmenu の代わりに、透過機能や xft フォントのサポートなどが搭載されている AUR の {{AUR|dmenu2}} を使うこともできます。 |
||
− | === キーバインド === |
||
+ | {{Pkg|i3-wm}} には ''dmenu'' の [[Wikipedia:ja:Perl|Perl]] ラッパーである ''i3-dmenu-desktop'' が含まれており、[[デスクトップエントリ]]を利用してインストールされている全てのアプリケーションのリストを作成します。また、{{AUR|j4-dmenu-desktop-git}} パッケージを使うこともできます。こちらは ''i3-dmenu-desktop'' とほぼ同様に使える上に、高速に動作します [https://github.com/enkore/j4-dmenu-desktop/blob/master/README.md]。 |
||
− | i3 では修飾キー ({{ic|$mod}} と表記されます) を使ってコマンドを呼び出します。デフォルトでは {{ic|Alt}} (Mod1) ですが、{{ic|Super}} (Mod4) も良く使われます。 |
||
+ | {{Pkg|rofi}} は人気のある dmenu の代替品であり、デスクトップエントリを一覧表示できます。 |
||
− | デフォルトのキーバインドについては [http://i3wm.org/docs/refcard.html i3 リファレンスカード] や [http://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。 |
||
+ | ==== KDE Plasma/i3 のアプリケーションランチャーとしての KRunner ==== |
||
− | === コンテナ === |
||
+ | ここに示すように、KDE Plasma といっしょにi3を実行することができます: [[KDE#KDE で別のウィンドウマネージャを使う]] |
||
− | i3 はコンテナを基本単位としたツリー構造でウィンドウを管理します。この構造は縦や横に分岐していきます。デフォルトではコンテナはタイル状に並べられますが、タブでまとめたり積み重ねるレイアウトに設定したり、フロートさせることもできます (ダイアログウィンドウのように)。フローティングウィンドウは常に一番上に表示されます。 |
||
+ | {{ic|1=KDEWM=/usr/bin/i3}} で Plasma を実行している場合、''i3'' の設定に以下を追加することで、[[KRunner]] を {{ic|$mod+d}} でアプリケーションランチャーとして代替することができます: |
||
− | 詳しくは [http://i3wm.org/docs/userguide.html#_tree i3 Tree] や [http://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。 |
||
+ | {{hc|~/.config/i3/config|2= |
||
− | == 設定 == |
||
+ | set $menu --no-startup-id qdbus org.kde.krunner /App display |
||
+ | bindsym $mod+d exec $menu |
||
+ | }} |
||
+ | |||
+ | ==設定== |
||
+ | |||
+ | 詳しくは [https://i3wm.org/docs/userguide.html#configuring Configuring i3] を参照。この記事では ''i3'' の設定ファイルは {{ic|~/.config}} に置くことにします (''i3-config-wizard'' では {{ic|~/.i3/config}} に作成されます)。 |
||
+ | |||
+ | ===設定ウィザードとキーボードレイアウト=== |
||
+ | |||
+ | ''i3'' を最初に起動したとき、設定ウィザードの ''i3-config-wizard'' が実行されます。このツールは {{ic|/etc/i3/config.keycodes}} にあるテンプレート設定ファイルを書き換えることで {{ic|~/.i3/config}} を作成します。デフォルトテンプレートには以下の2つの変更が加えられます: |
||
+ | |||
+ | #ウィザードはデフォルトの修飾キーを何にするかユーザーに尋ねます。{{ic|set $mod Mod1}} のような行がテンプレートに追加されます。 |
||
+ | #ユーザーの現在のキーボードレイアウトにあわせて ''bindcode'' 行をすべて ''bindsym'' 行で置き換えます。 |
||
+ | |||
+ | 後者が実行されることで、4つのナビゲーションショートカット {{ic|j}}, {{ic|k}}, {{ic|l}} と Qwerty キーボードの"セミコロン"が正しいキーシムにマッピングされます。例えば [[Dvorak]] キーボードなら {{ic|h}}, {{ic|t}}, {{ic|n}}, {{ic|s}} になります。ただし副作用として他のキーシムのマッピングが変更されるため Dvorak ユーザーはむしろ混乱してしまうかもしれません。"再起動"は {{ic|$mod1+r}} ではなく {{ic|$mod1+p}} に、"横に分割"は {{ic|$mod1+h}} ではなく {{ic|$mod1+d}} にバインドされます。チュートリアルに記載されているバインドと同じ、覚えやすいキーバインドを使いたい場合は {{ic|/etc/i3/config}} を {{ic|~/.config/i3/config}} (または {{ic|~/.i3/config}}) にコピーしてください。 |
||
+ | |||
+ | キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。 |
||
+ | |||
+ | === 自動起動 === |
||
+ | |||
+ | {{ic|~/.config/i3/config}} ファイルに {{ic|exec}} コマンドを追加します。例えば、以下のようになります。 |
||
+ | |||
+ | exec terminator |
||
+ | また、[[XDG Autostart]] を使用することもできます。 |
||
− | 詳しくは [http://i3wm.org/docs/userguide.html#configuring Configuring i3] を参照。 |
||
− | === |
+ | ===カラースキーム=== |
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。 |
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。 |
||
− | * {{App|i3-style|JSON オブジェクトで保存されたテーマによって所定の設定を変更します。テーマは何度もカラースキームを調整・修正できるように作られています。|https://github.com/acrisci/i3-style|{{Aur|nodejs-i3-style}}}} |
||
* {{App|j4-make-config|あなたの設定をテーマのコレクションや個人用の設定パーツ (たとえばホスト用の設定) と組み合わせます。テーマの簡単な変更や、柔軟でダイナミックな設定のカスタマイズを可能にします。|https://github.com/okraits/j4-make-config|{{Aur|j4-make-config-git}}}} |
* {{App|j4-make-config|あなたの設定をテーマのコレクションや個人用の設定パーツ (たとえばホスト用の設定) と組み合わせます。テーマの簡単な変更や、柔軟でダイナミックな設定のカスタマイズを可能にします。|https://github.com/okraits/j4-make-config|{{Aur|j4-make-config-git}}}} |
||
− | === |
+ | ===i3bar=== |
i3bar はワークスペースの情報を表示するほかに、次のセクションで説明している、i3status などに入力を行うこともできます。例: |
i3bar はワークスペースの情報を表示するほかに、次のセクションで説明している、i3status などに入力を行うこともできます。例: |
||
105行目: | 123行目: | ||
urgent_workspace #ffffff #900000 |
urgent_workspace #ffffff #900000 |
||
} |
} |
||
+ | <nowiki>}</nowiki> |
||
− | } |
||
}} |
}} |
||
− | 詳しくは [ |
+ | 詳しくは [https://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] を見て下さい。 |
− | ==== |
+ | ====i3bar の代替==== |
旧来の[[デスクトップ環境]]に入っているようなパネルを使いたいというユーザーもいるかもしれません。起動時に i3 の中でパネルアプリケーションを起動することで他のパネルを使うことができます。 |
旧来の[[デスクトップ環境]]に入っているようなパネルを使いたいというユーザーもいるかもしれません。起動時に i3 の中でパネルアプリケーションを起動することで他のパネルを使うことができます。 |
||
118行目: | 136行目: | ||
exec --no-startup-id xfce4-panel --disable-wm-check |
exec --no-startup-id xfce4-panel --disable-wm-check |
||
+ | {{Note|[[デスクトップ環境]]固有のパネル機能は基本的に動作しません (例: ワークスペースやセッションを管理するウィジェット)、ただし i3 の機能がそれによって影響を受けることはないはずです。}} |
||
− | もしくは {{ic|startx}} を使っている場合、[[xinitrc|xinitrc]] に追加します: |
||
+ | |||
+ | {{ic|~/.config/i3/config}} の {{ic|<nowiki>bar{ }</nowiki>}} セクションをコメントアウトすることで i3bar は無効にできます。もしくは以下を使ってください: |
||
− | {{hc|~/. |
+ | {{hc|~/.config/i3/config| |
+ | # bar toggle, hide or show |
||
− | xfce4-panel --disable-wm-check & |
||
+ | bindsym $mod+m bar mode toggle |
||
}} |
}} |
||
+ | この方法では好きなようにバーを表示したり隠したりできます。 |
||
− | {{Note|[[デスクトップ環境]]固有のパネル機能は基本的に動作しません (例: ワークスペースやセッションを管理するウィジェット)、ただし i3 の機能がそれによって影響を受けることはないはずです。}} |
||
+ | 以下はデスクトップ環境に依存しない置き換えです。 |
||
− | {{ic|~/.config/i3/config}} の {{ic|<nowiki>bar{ }</nowiki>}} セクションをコメントアウトすることで i3bar は無効にできます。 |
||
+ | * {{App|[[polybar]]|高速で使いやすく拡張性の高いステータスバー。一般的なサービスの情報を表示する機能が予め組み込まれています。|https://github.com/polybar/polybar|{{Pkg|polybar}}}} |
||
− | === i3status === |
||
+ | |||
+ | * {{App|excalibar|C言語で実装された軽量かつカスタマイズ可能なステータスバー。|https://github.com/nullgemm/excalibar|{{AUR|excalibar-git}}}} |
||
+ | |||
+ | ===i3status=== |
||
デフォルトの設定ファイルをホームディレクトリにコピーしてください: |
デフォルトの設定ファイルをホームディレクトリにコピーしてください: |
||
134行目: | 159行目: | ||
$ cp /etc/i3status.conf ~/.config/i3status/config |
$ cp /etc/i3status.conf ~/.config/i3status/config |
||
− | デフォルトの設定では定義されていないプラグインもあります |
+ | デフォルトの設定では定義されていないプラグインがあり、いくつかの設定はあなたのシステムでは無効かもしれません。そのためシステムに応じて設定を更新する必要があります。詳しくは {{ic|man 1 i3status}} を見て下さい。 |
+ | ====i3status の代替==== |
||
− | {{Note|サンプルの設定ファイルではインターフェイスの名前として {{ic|eth0}} や {{ic|wlan0}} を使っています、あなたの環境ではこれらを使っていない場合は[[Network Configuration#デバイス名|ネットワーク設定#デバイス名]]を見て下さい。バッテリーのパスなど、他にも食い違っているところがあったときは {{ic|man i3status}} を見て下さい。}} |
||
+ | * {{App|[[conky]]|拡張性の高いシステムモニター。i3bar で使用する場合は [https://i3wm.org/docs/user-contributed/conky-i3bar.html このチュートリアル] を見て下さい。|https://github.com/brndnmtthws/conky|{{Pkg|conky}}}} |
||
− | ==== i3status の代替 ==== |
||
+ | |||
+ | * {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{Pkg|i3blocks}}}} |
||
+ | |||
+ | * {{App|i3phtatus|PHP で書かれた i3status の代替。簡単に拡張できます。|https://github.com/mwgg/i3phtatus}} |
||
+ | |||
+ | * {{App|goi3bar|Go で書かれた i3status の代替。コンポーネントを自由にアップデートすることができます。|https://github.com/denbeigh2000/goi3bar|{{AUR|goi3bar-git}}}} |
||
− | * {{App|[[conky|conky]]|拡張性の高いシステムモニター。i3bar で使用する場合は [http://i3wm.org/docs/user-contributed/conky-i3bar.html このチュートリアル] を見て下さい。|http://conky.sourceforge.net/|{{Pkg|conky}}}} |
||
− | * {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{AUR|i3blocks}}}} |
||
* {{App|i3pystatus|デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。|https://github.com/enkore/i3pystatus i3pystatus|{{AUR|i3pystatus-git}}}} |
* {{App|i3pystatus|デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。|https://github.com/enkore/i3pystatus i3pystatus|{{AUR|i3pystatus-git}}}} |
||
+ | |||
* {{App|i3situation|もうひとつの Python 3 ステータスバージェネレータ。|https://github.com/HarveyHunt/i3situation|{{Aur|i3situation-git}}}} |
* {{App|i3situation|もうひとつの Python 3 ステータスバージェネレータ。|https://github.com/HarveyHunt/i3situation|{{Aur|i3situation-git}}}} |
||
− | * {{App|j4status|C で書かれており、プラグインで設定ができる、ステータスラインを提供します。|http://j4status.j4tools.org/|{{Aur|j4status-git}}}} |
||
+ | * {{App|j4status|C で書かれており、プラグインで設定ができる、ステータスラインを提供します。追加プラグインは {{Aur|j4status-plugins-git}} に入っています。|http://j4status.j4tools.org/|{{Aur|j4status-git}}}} |
||
− | ==== i3status のラッパー ==== |
||
+ | |||
+ | ====i3status のラッパー==== |
||
+ | |||
+ | * {{App|[[en2:h2status|h2status]]|i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。|https://wiki.archlinux.org/index.php/H2status|{{Aur|h2status}}{{Broken package link|{{aur-mirror|h2status}}}}}} |
||
− | * {{App|[[h2status]]|i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。|https://wiki.archlinux.org/index.php/H2status|{{Aur|h2status}}}} |
||
* {{App|i3cat|[[go]] ベースのラッパーで外部の複数のソースからの入力を繋げることができます。クリックイベントの処理、ユーザーが定義した信号を子プロセスに転送することが可能。|http://vincent-petithory.github.io/i3cat/|{{AUR|i3cat-git}}}} |
* {{App|i3cat|[[go]] ベースのラッパーで外部の複数のソースからの入力を繋げることができます。クリックイベントの処理、ユーザーが定義した信号を子プロセスに転送することが可能。|http://vincent-petithory.github.io/i3cat/|{{AUR|i3cat-git}}}} |
||
− | * {{App|py3status|Python による拡張可能な i3status ラッパー。|https://github.com/ultrabug/py3status|{{Aur|py3status}}}} |
||
+ | * {{App|py3status|Python による拡張可能な i3status ラッパー。|https://github.com/ultrabug/py3status|{{Pkg|py3status}}}} |
||
− | ==== ステータスバーにアイコンフォント ==== |
||
+ | |||
+ | ====ステータスバーにアイコンフォント==== |
||
''i3bar'' には XBM アイコンサポートの[[#パッチ|パッチ]]をあてることができますが、代わりにアイコンフォントを使うこともできます。 |
''i3bar'' には XBM アイコンサポートの[[#パッチ|パッチ]]をあてることができますが、代わりにアイコンフォントを使うこともできます。 |
||
− | * {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{ |
+ | * {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{Pkg|ttf-font-awesome}}}} |
+ | |||
− | * {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。|https://www.dropbox.com/s/9iysh2i0gadi4ic/icons.pdf|{{AUR|ttf-font-icons}}}}. |
||
+ | * {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。|http://kageurufu.net/icons.pdf|{{AUR|ttf-font-icons}}}} |
||
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります: |
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります: |
||
165行目: | 199行目: | ||
font pango:DejaVu Sans Mono, Icons 8 |
font pango:DejaVu Sans Mono, Icons 8 |
||
... |
... |
||
+ | <nowiki>}</nowiki> |
||
− | } |
||
}} |
}} |
||
− | カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。 |
+ | [https://developer.gnome.org/pango/stable/pango-Fonts.html#pango-font-description-from-string pango syntax] に従って、カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。各フォントにサイズを設定するのは最後のフォントを除いて無視される原因となります。 |
− | 最後に、アイコングラフをフォーマット文字列にして {{ic|~/.config/i3status/config}} に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。例えば |
+ | 最後に、アイコングラフをフォーマット文字列にして {{ic|~/.config/i3status/config}} に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。入力方法はテキストエディタによって異なります。例えば "ハート" アイコン (ユニコード番号 f004) を入力するには: |
+ | *様々な GUI のテキストエディタ (例: [[gedit]] や Leafpad) とターミナル (例: GNOME Terminal, xfce4-terminal): {{ic|ctrl+shift+u}}, {{ic|f004}}, {{ic|Enter}} |
||
− | [[urxvt]] では、{{ic|Ctrl+Shift}} を押して、適当な Unicode ポイントを記入します。 |
||
+ | *[[Emacs]]: {{ic|ctrl+x}}, {{ic|8}}, {{ic|Enter}}, {{ic|f004}}, {{ic|Enter}} |
||
+ | *[[Vim]] (挿入モード): {{ic|Ctrl+v}}, {{ic|uf004}} |
||
+ | *[[urxvt]]: {{ic|Ctrl+Shift}} を押して、{{ic|f004}} を入力 |
||
− | === |
+ | ===ターミナルエミュレータ=== |
デフォルトでは {{ic|$mod+Return}} を押すとターミナルを呼び出すスクリプトの {{ic|i3-sensible-terminal}} が起動します。ターミナルを呼び出す順番については {{ic|man i3-sensible-terminal}} を見て下さい。 |
デフォルトでは {{ic|$mod+Return}} を押すとターミナルを呼び出すスクリプトの {{ic|i3-sensible-terminal}} が起動します。ターミナルを呼び出す順番については {{ic|man i3-sensible-terminal}} を見て下さい。 |
||
182行目: | 219行目: | ||
bindsym $mod+Return exec i3-sensible-terminal |
bindsym $mod+Return exec i3-sensible-terminal |
||
− | または、{{ic|$TERMINAL}} 変数を[[ |
+ | または、{{ic|$TERMINAL}} 変数を[[環境変数#ユーザーごと|ローカルで定義]]してください: |
$ export TERMINAL=''yourterminal'' |
$ export TERMINAL=''yourterminal'' |
||
+ | === タイトルクリックを無効にする === |
||
− | == Tips and tricks == |
||
+ | タイトルフレームをクリックしたときにウィンドウを選択しないようにするための {{ic|bindsym button1 nop}} を追加します。デフォルトのレイアウトがタブになっていて、アプリケーション内で何かをクリックする代わりに i3 のタブをクリックしてしまうことが多い場合に便利です。 |
||
− | === 高度なウィンドウナビゲーション === |
||
+ | ==ヒントとテクニック== |
||
− | [http://www.slackword.net/?p=657 i3 window Navigation Tips] を見て下さい。 |
||
+ | ===開いているウィンドウにジャンプ=== |
||
− | === Jump to open window === |
||
+ | |||
+ | *{{App|quickswitch-i3|i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。|https://github.com/OliverUv/quickswitch-for-i3/|{{Aur|quickswitch-i3}}}} |
||
− | *{{App|quickswitch-i3|i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。|https://github.com/proxypoke/quickswitch-for-i3|{{Aur|quickswitch-i3}}}} |
||
*{{App|i3-wm-scripts|正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。|https://github.com/yiuin/i3-wm-scripts||}} |
*{{App|i3-wm-scripts|正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。|https://github.com/yiuin/i3-wm-scripts||}} |
||
+ | |||
*{{App|winmenupy|クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。|https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py||}} |
*{{App|winmenupy|クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。|https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py||}} |
||
− | *{{App|rofi|スクラッチパッドウィンドウを検索してジャンプして開く。|https://davedavenport.github.io/rofi/|{{Aur|rofi}}}} |
||
+ | *{{App|rofi|スクラッチパッドウィンドウを検索してジャンプして開く。|https://davedavenport.github.io/rofi/|{{Pkg|rofi}}}} |
||
− | === Jump to urgent window === |
||
+ | |||
+ | === 緊急ウィンドウにジャンプ === |
||
{{ic|.i3/config}} に次を追加: [https://faq.i3wm.org/question/853/how-to-jump-to-urgent-workspace/] |
{{ic|.i3/config}} に次を追加: [https://faq.i3wm.org/question/853/how-to-jump-to-urgent-workspace/] |
||
205行目: | 245行目: | ||
bindsym $mod+x [urgent=latest] focus |
bindsym $mod+x [urgent=latest] focus |
||
− | === |
+ | ===ウィンドウレイアウトの保存と復元=== |
+ | |||
+ | バージョン 4.8 から、''i3'' のワークスペースレイアウトの保存・復元が可能になっています。これを行うには、次のパッケージが必要です: [[公式リポジトリ]]の {{Pkg|perl-anyevent-i3}} と {{Pkg|perl-json-xs}}。 |
||
+ | |||
+ | {{note|このセクションではワークスペースの現在のウィンドウレイアウトを保存して後から復元する方法だけを説明します。詳細は [https://i3wm.org/docs/layout-saving.html 公式ドキュメント] を参照してください。}} |
||
+ | |||
+ | ====ワークスペースの現在のウィンドウレイアウトを保存==== |
||
+ | |||
+ | 現在のウィンドウレイアウトを保存するには、以下の手順を実行: |
||
+ | |||
+ | #まず、様々なコマンドを使ってワークスペースにウィンドウを開いて適当にリサイズしてください。それぞれのウィンドウを開くのに実行したコマンドを書き出します。 |
||
+ | #次に、新しいワークスペースで、ターミナルを開いて次を実行: {{bc|i3-save-tree --workspace N > ~/.i3/workspace_N.json}}N は保存したいワークスペースの番号に置き換えてください。これで N 番目のワークスペースのレイアウトが {{ic|~/.i3/workspace_N.json}} ファイルに保存されます。 |
||
+ | #作成したファイルを編集してください。次のコマンドで行うことができます: {{bc|<nowiki>tail -n +2 ~/.i3/workspace_N.json | fgrep -v '// splitv' | sed 's|//||g' > ~/.i3/workspace_N.json</nowiki>}} |
||
+ | |||
+ | ====ワークスペースのウィンドウレイアウトを復元==== |
||
+ | |||
+ | ワークスペースのレイアウトを復元する方法は2つ存在します: スクリプトを書くか、あるいは {{ic|~/.i3/config}} を編集して自動的にレイアウトをロードするかです。このセクションでは前者だけを説明します。後者については [https://i3wm.org/docs/layout-saving.html#_restoring_the_layout 公式ドキュメント] を参照。 |
||
+ | |||
+ | 前のセクションで保存したレイアウトを復元するには、以下の内容で {{ic|load_layout.sh}} というファイルを作成します: |
||
+ | |||
+ | *最初の行: |
||
+ | |||
+ | {{hc|head=~/load_layout.sh|output= |
||
+ | #!/bin/bash |
||
+ | i3-msg "workspace M; append_layout ~/.i3/workspace_N.json" |
||
+ | }} |
||
+ | |||
+ | M は保存したレイアウトをロードしたいワークスペースの番号に、N は前のセクションで保存したワークスペースの番号に置き換えてください。 |
||
+ | |||
+ | *前のセクションでウィンドウを開くのに使用したコマンド (コマンドは括弧で括り、閉じ括弧の前にアンパサンドを追加します)。 |
||
+ | |||
+ | 例えば、3つの {{ic|uxterm}} ウィンドウを開く場合: |
||
+ | |||
+ | {{hc|head=~/load_layout.sh|output= |
||
+ | #!/bin/bash |
||
+ | |||
+ | # First we append the saved layout of worspace N to workspace M |
||
+ | i3-msg "workspace M; append_layout ~/.i3/workspace_N.json" |
||
+ | |||
+ | # And finally we fill the containers with the programs they had |
||
+ | (uxterm &) |
||
+ | (uxterm &) |
||
+ | (uxterm &) |
||
+ | }} |
||
+ | |||
+ | それからファイルに実行可能属性を付与: |
||
+ | |||
+ | $ chmod u+x ~/load_layout.sh |
||
+ | |||
+ | 最後に、スクリプトを実行して N 番目のワークスペースのレイアウトを M 番目のワークスペースにロードします: |
||
+ | |||
+ | $ ~/load_layout.sh |
||
+ | {{tip|{{ic|~/.i3/config}} に {{ic|bindsym $mod+g exec ~/load_layout.sh}} を追加して i3 を再起動することで Mod+g で上記のスクリプトを実行できるようになります。}} |
||
− | バージョン 4.8 から、''i3'' はワークスペースレイアウトの保存・復元が可能になっています。詳しくは [http://i3wm.org/docs/layout-saving.html layout saving in i3] を見て下さい。 |
||
+ | {{note|上のスクリプトが上手く動作しない場合、[https://i3wm.org/docs/layout-saving.html#_editing_layout_files 公式ドキュメント] を参照してください。{{ic|~/.i3/workspace_N.json}} の ''swallows'' セクションを手動で編集する必要があります。}} |
||
− | 完全なセッションを保存・再起動するには、[[AUR|AUR]] から {{Aur|i3session-git}} をインストールしてください。 |
||
− | === |
+ | ===スクラッチパッドコンテナ=== |
− | デフォルトでは、[ |
+ | デフォルトでは、[https://i3wm.org/docs/userguide.html#_scratchpad スクラッチパッド] は一つのウィンドウしか含んでいません。しかしながら、コンテナをスクラッチパッドにすることが可能です。 |
新しいコンテナを作成して (例えば、{{ic|Mod+Enter}})、コンテナを分割し ({{ic|Mod+v}}) 別のコンテナを作成します。親にフォーカスして ({{ic|Mod+a}})、反対方向に分割し ({{ic|Mod+h}})、もう一度作成します。 |
新しいコンテナを作成して (例えば、{{ic|Mod+Enter}})、コンテナを分割し ({{ic|Mod+v}}) 別のコンテナを作成します。親にフォーカスして ({{ic|Mod+a}})、反対方向に分割し ({{ic|Mod+h}})、もう一度作成します。 |
||
221行目: | 312行目: | ||
{{Note|フロートしているウィンドウでコンテナのサイズを個別に変更することはできません。ウィンドウをフロートさせる前にコンテナのサイズを変えて下さい。}} |
{{Note|フロートしているウィンドウでコンテナのサイズを個別に変更することはできません。ウィンドウをフロートさせる前にコンテナのサイズを変えて下さい。}} |
||
− | {{Tip|ターミナルアプリケーションしか使わない場合は、代わりに [[ |
+ | {{Tip|ターミナルアプリケーションしか使わない場合は、代わりに [[tmux]] などのマルチプレクサを使っても良いでしょう。}} |
マルチスクラッチパッドについては [https://faq.i3wm.org/question/138/multiple-scratchpad/i3] も参照してください。 |
マルチスクラッチパッドについては [https://faq.i3wm.org/question/138/multiple-scratchpad/i3] も参照してください。 |
||
− | === |
+ | ===スクリーンセーバーと電源管理=== |
+ | [[電源管理#xss-lock|xss-lock]] を使うことで i3 セッションの画面ロッカーを登録することが可能です。 |
||
− | [[DPMS|DPMS]] を使って画面を消したりモニタをサスペンド・電源オフにすることができます。次の行を {{ic|~/.config/i3/config}} に追加すると10分後にモニターがサスペンド状態になります: |
||
+ | もしくは、''xautolock'' の {{ic|-lockaftersleep}} オプションを使って、スリープやハイバネーションから復帰した後に画面をロックすることができます。{{ic|-time}} オプションは指定時間後に画面をロックします。 |
||
− | exec --no-startup-id xset dpms 600 |
||
+ | xautolock -time 10 -locker "i3lock -i 'background_image.png'" -lockaftersleep & |
||
− | {{AUR|xss-lock-git}} を使うことで i3 セッションの画面ロッカーを登録することが可能です。xss-lock は systemd のイベント {{ic|suspend}}, {{ic|hibernate}}, {{ic|lock-session}}, {{ic|unlock-session}} に適当なアクションを設定します (ロッカーを起動してユーザーがロックを解除するかロッカーをキルするのを待つ)。また、[[Display Power Management Signaling#xset スクリーンセーバーコントロール|X screensaver]] に反応して x-server の信号に応じてロッカーを起動・終了します。以下のように xss-lock を起動するようにしてください: |
||
+ | [[DPMS]] も参照。 |
||
− | xss-lock -- i3lock -i ''background_image'' & |
||
+ | ===シャットダウン, 再起動, 画面ロック=== |
||
− | もしくは、{{Pkg|xautolock}} を使って指定時間後に画面をロックするように設定することもできます: |
||
+ | シャットダウン、再起動、画面ロックのキーコンビネーションを {{ic|~/.config/i3/config}} に追加することができます。以下の例では[[systemd#電源管理|電源管理]]コマンドを実行する権限がないユーザーに権限を与えるために {{Pkg|polkit}} をインストールする必要があります。 |
||
− | xautolock -time 10 -locker i3lock & |
||
+ | {{bc| |
||
− | [[#シャットダウン, 再起動, 画面ロック]] も参照。 |
||
+ | set $Locker i3lock && sleep 1 |
||
+ | set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown |
||
− | === シャットダウン, 再起動, 画面ロック === |
||
+ | mode "$mode_system" { |
||
+ | bindsym l exec --no-startup-id $Locker, mode "default" |
||
+ | bindsym e exec --no-startup-id i3-msg exit, mode "default" |
||
+ | bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default" |
||
+ | bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default" |
||
+ | bindsym r exec --no-startup-id systemctl reboot, mode "default" |
||
+ | bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default" |
||
+ | # back to normal: Enter or Escape |
||
− | シャットダウン、再起動、画面ロックのボタンは存在しないため、ホットキーのコンビネーションを追加することでそれらの操作を実現できます。まず以下のスクリプトを作成して {{ic|i3exit}} として保存してください。{{ic|chmod +x}} で忘れずに実行可能属性を付けて {{ic|$PATH}} が通っているところに配置します。このスクリプトでは[[systemd#電源管理|電源管理]]コマンドを実行する権限がないユーザーに権限を与えるために {{Pkg|polkit}} をインストールする必要があります。 |
||
+ | bindsym Return mode "default" |
||
− | |||
+ | bindsym Escape mode "default" |
||
− | {{bc|<nowiki> |
||
− | #!/bin/sh |
||
− | lock() { |
||
− | i3lock |
||
} |
} |
||
+ | bindsym $mod+Pause mode "$mode_system" |
||
− | case "$1" in |
||
+ | }} |
||
− | lock) |
||
− | lock |
||
− | ;; |
||
− | logout) |
||
− | i3-msg exit |
||
− | ;; |
||
− | suspend) |
||
− | lock && systemctl suspend |
||
− | ;; |
||
− | hibernate) |
||
− | lock && systemctl hibernate |
||
− | ;; |
||
− | reboot) |
||
− | systemctl reboot |
||
− | ;; |
||
− | shutdown) |
||
− | systemctl poweroff |
||
− | ;; |
||
− | *) |
||
− | echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}" |
||
− | exit 2 |
||
− | esac |
||
+ | 追加したら {{ic|$mod+pause}} を押すことでプロンプトが表示されます。より複雑な動作をさせたい場合は、スクリプトに分離し、mode の中で参照してください [https://gist.github.com/anonymous/c8cd0a59bf4acb273068]。 |
||
− | exit 0 |
||
− | </nowiki>}} |
||
− | {{Note| |
+ | {{Note|1=<br> |
+ | * {{ic|sleep 1}} で小さなディレイを追加することで、サスペンドにより起こりうる競合状態を防いでいます [https://bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/830348]。 |
||
− | * {{AUR|xss-lock-git}} を使う場合、{{ic|xset s activate}} を呼び出してロッカーを起動します。 |
||
+ | * {{ic|systemctl poweroff}} の {{ic|-i}} 引数は、たとえ他のユーザーがログインしていたり ({{Pkg|polkit}} を必要とします)、''logind'' が (誤って) そのように認識していてもシャットダウンを行います [https://bugs.freedesktop.org/show_bug.cgi?id=62676]。 |
||
− | * {{Pkg|xautolock}} を使う場合、コマンドは {{ic|xautolock -locknow}} です。 |
||
}} |
}} |
||
+ | 他の画面ロッカーについては、[[アプリケーション一覧/セキュリティ#スクリーンロック]]を参照。 |
||
− | そして以下の行を {{ic|~/.config/i3/config}} に追加してください。追加したら {{ic|$mod+pause}} を押すことでプロンプトが表示されます。 |
||
+ | === ターミナルウィンドウを飲み込む === |
||
− | set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown |
||
+ | |||
− | mode "$mode_system" { |
||
+ | [[dwm]] と同じように、i3は現在のターミナルウィンドウをそこから起動された新しいGUIウィンドウで「飲み込む」(置き換える)ことができます。これをするには {{AUR|i3-swallow-git}} パッケージを使います。 |
||
− | bindsym l exec --no-startup-id i3exit lock, mode "default" |
||
+ | |||
− | bindsym e exec --no-startup-id i3exit logout, mode "default" |
||
+ | 例えば、[[mpv]] のウィンドウが元のターミナルを飲み込むようにするには以下のようにします: |
||
− | bindsym s exec --no-startup-id i3exit suspend, mode "default" |
||
+ | |||
− | bindsym h exec --no-startup-id i3exit hibernate, mode "default" |
||
+ | $ swallow mpv ''video.mp4'' |
||
− | bindsym r exec --no-startup-id i3exit reboot, mode "default" |
||
+ | |||
− | bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" |
||
+ | あるいは、使用していないときにターミナルウィンドウを非表示にするために、[https://i3wm.org/docs/userguide.html#_layout_mode_for_new_containers タブ付きコンテナまたはスタックコンテナ]を使用してターミナルの飲み込みをシミュレートすることもできます。ただし、これには常にコンテナの上部にウィンドウリストが表示されるという欠点があります。 |
||
+ | |||
+ | ===外部ディスプレイの手動管理=== |
||
+ | |||
+ | [[xrandr]] を使うことで簡単にディスプレイを管理することができます。以下は i3 の設定ファイルを使って統合する例で、上記の電源管理セクションと同じように振る舞います。 |
||
+ | |||
+ | VGA と HDMI 出力が存在するノートパソコンでメニューを使ってオンオフを切り替えます: |
||
+ | |||
+ | ## Manual management of external displays |
||
+ | # Set the shortcuts and what they do |
||
+ | set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF |
||
+ | mode "$mode_display" { |
||
+ | bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode "default" |
||
+ | bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode "default" |
||
+ | bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode "default" |
||
+ | bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode "default" |
||
# back to normal: Enter or Escape |
# back to normal: Enter or Escape |
||
298行目: | 388行目: | ||
bindsym Escape mode "default" |
bindsym Escape mode "default" |
||
} |
} |
||
+ | # Declare here the shortcut to bring the display selection menu |
||
− | bindsym $mod+Pause mode "$mode_system" |
||
+ | bindsym $mod+x mode "$mode_display" |
||
+ | |||
+ | オフになったディスプレイで表示していたウィンドウは自動的に他のアクティブなディスプレイに移動されます。 |
||
+ | |||
+ | デバイスの名前を確認したいときは、使用したいデバイスを接続して次を実行してください: |
||
+ | $ xrandr --query |
||
− | 他の画面ロッカーについては、[[List of Applications/Security#スクリーンロック|アプリケーション一覧/セキュリティ#スクリーンロック]]を参照。 |
||
+ | 利用可能なオプションについては [[xrandr]] のページや man ページ、[https://i3wm.org/docs/userguide.html i3 ユーザーガイド] や [https://www.reddit.com/r/i3wm i3 reddit の FAQ] を見てください。 |
||
− | === タブまたはスタックによるウェブブラウジング === |
||
+ | ===タブまたはスタックによるウェブブラウジング=== |
||
− | {{Warning|Tabbed browsing is unstable when used with assigned workspaces. [http://bugs.i3wm.org/report/ticket/1338]}} |
||
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。 |
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。 |
||
318行目: | 413行目: | ||
for_window [class="Uzbl-core"] focus child, layout tabbed, focus |
for_window [class="Uzbl-core"] focus child, layout tabbed, focus |
||
− | === |
+ | ===ワークスペース変数=== |
i3 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [https://github.com/dkeg/bloat2.0/blob/master/i3config#L55]: |
i3 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [https://github.com/dkeg/bloat2.0/blob/master/i3config#L55]: |
||
334行目: | 429行目: | ||
bindsym $mod+Shift+1 move container to workspace $WS1 |
bindsym $mod+Shift+1 move container to workspace $WS1 |
||
− | 詳しくは [ |
+ | 詳しくは [https://i3wm.org/docs/userguide.html#_changing_named_workspaces_moving_to_workspaces Changing named workspaces] を見て下さい。 |
− | === |
+ | ===フロートするダイアログを正しく扱う=== |
− | デフォルトではダイアログはフロートモードで開かれることになっていますが [ |
+ | デフォルトではダイアログはフロートモードで開かれることになっていますが [https://i3wm.org/docs/userguide.html#_floating]、ダイアログはタイルモードで開いてしまうこともあります。この挙動を変更するには {{pkg|xorg-xprop}} でダイアログの {{ic|WM_WINDOW_ROLE}} をチェックして適切なルールを {{ic|~/.i3/config}} に追加してください: |
for_window [window_role="pop-up"] floating enable |
for_window [window_role="pop-up"] floating enable |
||
351行目: | 446行目: | ||
for_window [class="(?i)mplayer"] floating enable |
for_window [class="(?i)mplayer"] floating enable |
||
+ | ===ネットワークのダウンロード・アップロード速度をステータスバーに表示=== |
||
− | == パッチ == |
||
+ | 上流の [http://code.stapelberg.de/git/i3status/tree/contrib/net-speed.sh スクリプト] を編集して使うことができます。 |
||
− | 上流にマージされてないパッチがあてられたパッケージが [[AUR|AUR]] には存在します: |
||
+ | *システムに応じて両方のネットワークカードをリネームしてください ({{ic|ip addr}} を使ってください)。 |
||
− | * {{App|i3bar-icons-git|i3bar で XBM アイコンを表示|https://github.com/ashinkarov/i3-extras|{{AUR|i3bar-icons-git}}}} |
||
+ | *{{ic|/sys/devices}} でネットワークカードを検索して適切に置き換えます: |
||
− | * {{App|i3-mouse-close|中クリックによるクローズのサポート|https://faq.i3wm.org/question/550/manipulating-windows-with-the-mouse|{{AUR|i3-mouse-close}}}} |
||
− | * {{App|i3-smart-border|スマートボーダー|https://github.com/ashinkarov/i3-extras|{{AUR|i3-smart-border}}}} |
||
− | * {{App|i3-wm-iconpatch|タイトルバーアイコンのサポート|https://github.com/ashinkarov/i3-extras|{{AUR|i3-wm-iconpatch}}}} |
||
+ | $ find /sys/devices -name ''network_interface'' |
||
− | == トラブルシューティング == |
||
+ | {{Tip|{{ic|/sys/class/net/''interface''/statistics/}} を使うことで PCI の位置に依存しなくなります。}} |
||
− | === i3 メッセージバーのボタンが動作しない === |
||
+ | スクリプトを適切な場所 (例: {{ic|~/.config/i3}}) に保存して、ステータスプログラムから実行するように設定してください。 |
||
− | {{ic|i3-msg}} の "Edit config" などのボタンは {{ic|i3-sensible-terminal}} を呼び出します。[[#ターミナルエミュレータ|ターミナルエミュレータ]]が i3 によって認識されていることを確認してください。 |
||
+ | === ウィンドウの分割方向を自動的に水平/垂直に切り替える === |
||
− | === タイル化されたターミナルで行の折り返しがおかしい === |
||
+ | |||
+ | {{AUR|autotiling}} パッケージ は、ウィンドウの分割方向を自動的に水平/垂直に切り替えることができます。インストール後、{{ic|~/.config/i3/config}} に以下を追加し、i3 をリロードしてください。 |
||
+ | |||
+ | exec_always --no-startup-id ''autotiling'' |
||
+ | |||
+ | ==トラブルシューティング== |
||
+ | |||
+ | ===一般=== |
||
+ | |||
+ | 多くの場合、開発版である {{AUR|i3-git}} と {{AUR|i3status-git}} でバグは修正されているため、上流では開発版を使ってエラーが再現できるかどうか訊いてきます [https://i3wm.org/docs/debugging.html]。[[デバッグ - トレースを取得#一般]]も見てください。 |
||
+ | |||
+ | ===i3 メッセージバーのボタンが動作しない=== |
||
+ | |||
+ | {{ic|i3-nagbar}} の "Edit config" などのボタンは {{ic|i3-sensible-terminal}} を呼び出します。[[#ターミナルエミュレータ|ターミナルエミュレータ]]が i3 によって認識されていることを確認してください。 |
||
+ | |||
+ | ===タイル化されたターミナルで行の折り返しがおかしい=== |
||
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [https://www.mail-archive.com/i3-discuss@i3.zekjur.net/msg00709.html]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。 |
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [https://www.mail-archive.com/i3-discuss@i3.zekjur.net/msg00709.html]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。 |
||
− | === |
+ | ===マウスカーソルが待機状態のままになる=== |
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは60秒間の間、ビジー/砂時計状態になります。 |
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは60秒間の間、ビジー/砂時計状態になります。 |
||
378行目: | 487行目: | ||
bindsym $mod+d exec --no-startup-id dmenu_run |
bindsym $mod+d exec --no-startup-id dmenu_run |
||
− | このアニメーションを全てのアプリケーションで無効にするには、[[ |
+ | このアニメーションを全てのアプリケーションで無効にするには、[[カーソルテーマ]]を見て下さい。 |
− | === |
+ | ===キーバインドが反応しない=== |
− | 標準のキーバインド (キーを押して実行) を使っている場合、[[ |
+ | 標準のキーバインド (キーを押して実行) を使っている場合、[[スクリーンショットの取得#scrot|scrot]] などのツールが動作しないことがあります。そのようなときは、{{ic|--release}} でキーをリリースしてからコマンドを実行してください: |
bindsym --release Print exec --no-startup-id scrot '%Y-%m-%d$ |
bindsym --release Print exec --no-startup-id scrot '%Y-%m-%d$ |
||
bindsym --release Shift+Print exec --no-startup-id scrot '%Y$ |
bindsym --release Shift+Print exec --no-startup-id scrot '%Y$ |
||
− | [ |
+ | [https://i3wm.org/docs/userguide.html#keybindings] を参照。 |
− | === |
+ | ===ティアリング=== |
i3 は [http://bugs.i3wm.org/report/ticket/661 ダブルバッファをちゃんと実装していない] ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、[[Xorg#コンポジット|コンポジットマネージャ]]を使ってみて下さい。 |
i3 は [http://bugs.i3wm.org/report/ticket/661 ダブルバッファをちゃんと実装していない] ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、[[Xorg#コンポジット|コンポジットマネージャ]]を使ってみて下さい。 |
||
+ | ===トレイアイコンが表示されない=== |
||
− | == 参照 == |
||
+ | {{ic|tray_output primary}} ディレクティブでは、 ''xrandr'' でプライマリ出力を設定する必要があります。明示的に出力を指定するか、ディレクティブを削除してください [https://github.com/i3/i3/issues/1144]。詳しくは [[Xrandr]] を参照。i3 のバージョン 4.12 から、i3-config-wizard によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。 |
||
− | * [http://i3wm.org 公式ウェブサイト] |
||
+ | |||
− | * [http://www.funtoo.org/I3_Tiling_Window_Manager funtoo Wiki] |
||
+ | === Spotify のためのデフォルトのワークスペース === |
||
− | * [http://code.stapelberg.de/git/i3 i3 ソースコード] |
||
+ | |||
− | * [https://github.com/ashinkarov/i3-extras i3-extras] - Collection of scripts and patches |
||
+ | Spotify ウィンドウにデフォルトのワークスペースを割り当てるには、{{ic|assign}} で標準ルートを使用することはできず、次のような {{ic|for_window}} コマンドを使用する必要があります。 |
||
− | * [https://github.com/acrisci/i3ipc-glib i3ipc-glib] - A library for i3 extensions |
||
+ | |||
− | * [http://www.j4tools.org/ j4tools] - non-official tools designed to work with i3 |
||
+ | {{hc|~/.config/i3/config|2= |
||
+ | ... |
||
+ | for_window [class="Spotify"] move to workspace $ws10 |
||
+ | }} |
||
+ | |||
+ | {{ic|for_window}} がすでに {{ic|ws10}} にある場合にウィンドウを移動しないようにするには、代わりに {{ic|move --no-auto-back-and-forth}} を使用できます。 |
||
+ | |||
+ | ==参照== |
||
+ | |||
+ | *[http://i3wm.org 公式ウェブサイト] |
||
+ | *[http://www.funtoo.org/I3_Tiling_Window_Manager funtoo Wiki] |
||
+ | *[http://code.stapelberg.de/git/i3 i3 ソースコード] |
||
+ | *[https://github.com/ashinkarov/i3-extras i3-extras] - スクリプトとパッチのコレクション |
||
+ | *[https://github.com/acrisci/i3ipc-glib i3ipc-glib] - i3 拡張のためのライブラリ |
||
+ | *[https://github.com/veelenga/i3ipc-ruby i3ipc-ruby] - An improved library for i3 extensions in Ruby |
||
+ | *[http://www.j4tools.org/ j4tools] - non-official tools designed to work with i3 |
||
'''Arch Linux フォーラム''' |
'''Arch Linux フォーラム''' |
||
+ | |||
− | * [https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] - A general discussion about i3 |
||
− | * |
+ | *[https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] - A general discussion about i3 |
+ | *[https://bbs.archlinux.org/viewtopic.php?id=103369 i3 desktop screenshots and config sharing] |
||
'''スクリーンキャスト''' |
'''スクリーンキャスト''' |
||
+ | |||
− | * [http://www.youtube.com/watch?v=Wx0eNaGzAZU i3 window manager v4.1 screencast] |
||
+ | *[https://www.youtube.com/watch?v=Wx0eNaGzAZU i3 ウィンドウマネージャの v4.1 スクリーンキャスト] |
||
+ | *[https://www.youtube.com/watch?v=j1I63wGcvU4&index=1&list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf i3 window manager v4.1X screencasts] |
2023年8月9日 (水) 16:49時点における最新版
i3 は wmii にインスパイアされて開発された動的タイル型ウィンドウマネージャで、主に開発者や上級ユーザーをターゲットにしています。
i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、vim のような様々なモードなどです。
目次
- 1 インストール
- 2 起動
- 3 使用方法
- 4 設定
- 5 ヒントとテクニック
- 6 トラブルシューティング
- 7 参照
インストール
i3 は、i3-wm パッケージでインストールできます。
i3 パッケージグループも利用可能です。これには、ウィンドウマネージャ、スクリーンロッカー、標準出力を介して i3bar にステータスラインを書き込む2つのプログラムが含まれています。
起動
tty
xinit で i3
を実行します
ディスプレイマネージャー
i3-wm にはウィンドウマネージャーを起動する Xsession として i3.desktop
が含まれています。i3-with-shmlog.desktop
はログを有効にします(デバッグに便利です)。i3-gnomeAUR は i3 を GNOME に統合します。
使用方法
詳しい情報は 公式のドキュメント、すなわち i3 User’s Guide を見て下さい。
キーバインド
i3 では修飾キー ($mod
と表記されます) を使ってコマンドを呼び出します。デフォルトでは Alt
(Mod1) ですが、Super
(Mod4) も良く使われます。大抵のキーボードでは Super は Windows アイコンが印されたキーになります。Apple キーボードなら Command キーです。
デフォルトのキーバインドについては i3 リファレンスカード や Using i3 を見て下さい。新しくショートカットを追加する方法は Keyboard bindings に載っています。
Qwerty 以外のキーボード配列を使っている場合は設定ウィザードとキーボードレイアウトに書かれているように設定ウィザードを迂回すると良いでしょう。
コンテナとレイアウト
i3 はコンテナを基本単位としたツリー構造でウィンドウを管理します。この構造は縦や横に分岐していきます。デフォルトではコンテナはタイル状に並べられますが、タブでまとめたり積み重ねるレイアウトに設定したり、フロートさせることもできます (ダイアログウィンドウのように)。フローティングウィンドウは常に一番上に表示されます。
詳しくは i3 Tree や Containers and the tree data structure を見て下さい。
アプリケーションランチャー
i3 はアプリケーションランチャーとして dmenu を使っており、デフォルトでは $mod+d
で呼び出せます。dmenu の代わりに、透過機能や xft フォントのサポートなどが搭載されている AUR の dmenu2AUR を使うこともできます。
i3-wm には dmenu の Perl ラッパーである i3-dmenu-desktop が含まれており、デスクトップエントリを利用してインストールされている全てのアプリケーションのリストを作成します。また、j4-dmenu-desktop-gitAUR パッケージを使うこともできます。こちらは i3-dmenu-desktop とほぼ同様に使える上に、高速に動作します [1]。
rofi は人気のある dmenu の代替品であり、デスクトップエントリを一覧表示できます。
KDE Plasma/i3 のアプリケーションランチャーとしての KRunner
ここに示すように、KDE Plasma といっしょにi3を実行することができます: KDE#KDE で別のウィンドウマネージャを使う
KDEWM=/usr/bin/i3
で Plasma を実行している場合、i3 の設定に以下を追加することで、KRunner を $mod+d
でアプリケーションランチャーとして代替することができます:
~/.config/i3/config
set $menu --no-startup-id qdbus org.kde.krunner /App display bindsym $mod+d exec $menu
設定
詳しくは Configuring i3 を参照。この記事では i3 の設定ファイルは ~/.config
に置くことにします (i3-config-wizard では ~/.i3/config
に作成されます)。
設定ウィザードとキーボードレイアウト
i3 を最初に起動したとき、設定ウィザードの i3-config-wizard が実行されます。このツールは /etc/i3/config.keycodes
にあるテンプレート設定ファイルを書き換えることで ~/.i3/config
を作成します。デフォルトテンプレートには以下の2つの変更が加えられます:
- ウィザードはデフォルトの修飾キーを何にするかユーザーに尋ねます。
set $mod Mod1
のような行がテンプレートに追加されます。 - ユーザーの現在のキーボードレイアウトにあわせて bindcode 行をすべて bindsym 行で置き換えます。
後者が実行されることで、4つのナビゲーションショートカット j
, k
, l
と Qwerty キーボードの"セミコロン"が正しいキーシムにマッピングされます。例えば Dvorak キーボードなら h
, t
, n
, s
になります。ただし副作用として他のキーシムのマッピングが変更されるため Dvorak ユーザーはむしろ混乱してしまうかもしれません。"再起動"は $mod1+r
ではなく $mod1+p
に、"横に分割"は $mod1+h
ではなく $mod1+d
にバインドされます。チュートリアルに記載されているバインドと同じ、覚えやすいキーバインドを使いたい場合は /etc/i3/config
を ~/.config/i3/config
(または ~/.i3/config
) にコピーしてください。
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。
自動起動
~/.config/i3/config
ファイルに exec
コマンドを追加します。例えば、以下のようになります。
exec terminator
また、XDG Autostart を使用することもできます。
カラースキーム
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。
- j4-make-config — あなたの設定をテーマのコレクションや個人用の設定パーツ (たとえばホスト用の設定) と組み合わせます。テーマの簡単な変更や、柔軟でダイナミックな設定のカスタマイズを可能にします。
i3bar
i3bar はワークスペースの情報を表示するほかに、次のセクションで説明している、i3status などに入力を行うこともできます。例:
~/.config/i3/config
bar { output LVDS1 status_command i3status position top mode hide workspace_buttons yes tray_output none font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 colors { background #000000 statusline #ffffff focused_workspace #ffffff #285577 active_workspace #ffffff #333333 inactive_workspace #888888 #222222 urgent_workspace #ffffff #900000 } }
詳しくは Configuring i3bar を見て下さい。
i3bar の代替
旧来のデスクトップ環境に入っているようなパネルを使いたいというユーザーもいるかもしれません。起動時に i3 の中でパネルアプリケーションを起動することで他のパネルを使うことができます。
XFCE パネルの場合、次の行を ~/.config/i3/config
のどこかに追加してください:
exec --no-startup-id xfce4-panel --disable-wm-check
~/.config/i3/config
の bar{ }
セクションをコメントアウトすることで i3bar は無効にできます。もしくは以下を使ってください:
~/.config/i3/config
# bar toggle, hide or show bindsym $mod+m bar mode toggle
この方法では好きなようにバーを表示したり隠したりできます。
以下はデスクトップ環境に依存しない置き換えです。
- polybar — 高速で使いやすく拡張性の高いステータスバー。一般的なサービスの情報を表示する機能が予め組み込まれています。
- excalibar — C言語で実装された軽量かつカスタマイズ可能なステータスバー。
i3status
デフォルトの設定ファイルをホームディレクトリにコピーしてください:
$ cp /etc/i3status.conf ~/.config/i3status/config
デフォルトの設定では定義されていないプラグインがあり、いくつかの設定はあなたのシステムでは無効かもしれません。そのためシステムに応じて設定を更新する必要があります。詳しくは man 1 i3status
を見て下さい。
i3status の代替
- i3blocks — シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。
- i3phtatus — PHP で書かれた i3status の代替。簡単に拡張できます。
- https://github.com/mwgg/i3phtatus || パッケージが存在しないか AUR で検索
- goi3bar — Go で書かれた i3status の代替。コンポーネントを自由にアップデートすることができます。
- i3pystatus — デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。
- https://github.com/enkore/i3pystatus i3pystatus || i3pystatus-gitAUR
- i3situation — もうひとつの Python 3 ステータスバージェネレータ。
- j4status — C で書かれており、プラグインで設定ができる、ステータスラインを提供します。追加プラグインは j4status-plugins-gitAUR に入っています。
i3status のラッパー
- h2status — i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。
- https://wiki.archlinux.org/index.php/H2status || h2statusAUR[リンク切れ: アーカイブ: aur-mirror]
- i3cat — go ベースのラッパーで外部の複数のソースからの入力を繋げることができます。クリックイベントの処理、ユーザーが定義した信号を子プロセスに転送することが可能。
- py3status — Python による拡張可能な i3status ラッパー。
ステータスバーにアイコンフォント
i3bar には XBM アイコンサポートのパッチをあてることができますが、代わりにアイコンフォントを使うこともできます。
- ttf-font-awesome — CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した チートシート があります。
- ttf-font-icons — Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように ,
でフォントを区切ります:
~/.config/i3/config
bar { ... font pango:DejaVu Sans Mono, Icons 8 ... }
pango syntax に従って、カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。各フォントにサイズを設定するのは最後のフォントを除いて無視される原因となります。
最後に、アイコングラフをフォーマット文字列にして ~/.config/i3status/config
に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。入力方法はテキストエディタによって異なります。例えば "ハート" アイコン (ユニコード番号 f004) を入力するには:
- 様々な GUI のテキストエディタ (例: gedit や Leafpad) とターミナル (例: GNOME Terminal, xfce4-terminal):
ctrl+shift+u
,f004
,Enter
- Emacs:
ctrl+x
,8
,Enter
,f004
,Enter
- Vim (挿入モード):
Ctrl+v
,uf004
- urxvt:
Ctrl+Shift
を押して、f004
を入力
ターミナルエミュレータ
デフォルトでは $mod+Return
を押すとターミナルを呼び出すスクリプトの i3-sensible-terminal
が起動します。ターミナルを呼び出す順番については man i3-sensible-terminal
を見て下さい。
他のターミナルを起動するには、~/.config/i3/config
の次の行を変更してください:
bindsym $mod+Return exec i3-sensible-terminal
または、$TERMINAL
変数をローカルで定義してください:
$ export TERMINAL=yourterminal
タイトルクリックを無効にする
タイトルフレームをクリックしたときにウィンドウを選択しないようにするための bindsym button1 nop
を追加します。デフォルトのレイアウトがタブになっていて、アプリケーション内で何かをクリックする代わりに i3 のタブをクリックしてしまうことが多い場合に便利です。
ヒントとテクニック
開いているウィンドウにジャンプ
- quickswitch-i3 — i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。
- i3-wm-scripts — 正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。
- winmenupy — クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。
- rofi — スクラッチパッドウィンドウを検索してジャンプして開く。
緊急ウィンドウにジャンプ
.i3/config
に次を追加: [2]
bindsym $mod+x [urgent=latest] focus
ウィンドウレイアウトの保存と復元
バージョン 4.8 から、i3 のワークスペースレイアウトの保存・復元が可能になっています。これを行うには、次のパッケージが必要です: 公式リポジトリの perl-anyevent-i3 と perl-json-xs。
ワークスペースの現在のウィンドウレイアウトを保存
現在のウィンドウレイアウトを保存するには、以下の手順を実行:
- まず、様々なコマンドを使ってワークスペースにウィンドウを開いて適当にリサイズしてください。それぞれのウィンドウを開くのに実行したコマンドを書き出します。
- 次に、新しいワークスペースで、ターミナルを開いて次を実行:
i3-save-tree --workspace N > ~/.i3/workspace_N.json
N は保存したいワークスペースの番号に置き換えてください。これで N 番目のワークスペースのレイアウトが~/.i3/workspace_N.json
ファイルに保存されます。 - 作成したファイルを編集してください。次のコマンドで行うことができます:
tail -n +2 ~/.i3/workspace_N.json | fgrep -v '// splitv' | sed 's|//||g' > ~/.i3/workspace_N.json
ワークスペースのウィンドウレイアウトを復元
ワークスペースのレイアウトを復元する方法は2つ存在します: スクリプトを書くか、あるいは ~/.i3/config
を編集して自動的にレイアウトをロードするかです。このセクションでは前者だけを説明します。後者については 公式ドキュメント を参照。
前のセクションで保存したレイアウトを復元するには、以下の内容で load_layout.sh
というファイルを作成します:
- 最初の行:
~/load_layout.sh
#!/bin/bash i3-msg "workspace M; append_layout ~/.i3/workspace_N.json"
M は保存したレイアウトをロードしたいワークスペースの番号に、N は前のセクションで保存したワークスペースの番号に置き換えてください。
- 前のセクションでウィンドウを開くのに使用したコマンド (コマンドは括弧で括り、閉じ括弧の前にアンパサンドを追加します)。
例えば、3つの uxterm
ウィンドウを開く場合:
~/load_layout.sh
#!/bin/bash # First we append the saved layout of worspace N to workspace M i3-msg "workspace M; append_layout ~/.i3/workspace_N.json" # And finally we fill the containers with the programs they had (uxterm &) (uxterm &) (uxterm &)
それからファイルに実行可能属性を付与:
$ chmod u+x ~/load_layout.sh
最後に、スクリプトを実行して N 番目のワークスペースのレイアウトを M 番目のワークスペースにロードします:
$ ~/load_layout.sh
スクラッチパッドコンテナ
デフォルトでは、スクラッチパッド は一つのウィンドウしか含んでいません。しかしながら、コンテナをスクラッチパッドにすることが可能です。
新しいコンテナを作成して (例えば、Mod+Enter
)、コンテナを分割し (Mod+v
) 別のコンテナを作成します。親にフォーカスして (Mod+a
)、反対方向に分割し (Mod+h
)、もう一度作成します。
最初のコンテナにフォーカスして (必要なら親にもフォーカス)、ウィンドウをフロートさせ (Mod+Shift+Space
)、スクラッチパッドに移動します (Mod+Shift+-
)。これで自由にコンテナを分割できます。
マルチスクラッチパッドについては [3] も参照してください。
スクリーンセーバーと電源管理
xss-lock を使うことで i3 セッションの画面ロッカーを登録することが可能です。
もしくは、xautolock の -lockaftersleep
オプションを使って、スリープやハイバネーションから復帰した後に画面をロックすることができます。-time
オプションは指定時間後に画面をロックします。
xautolock -time 10 -locker "i3lock -i 'background_image.png'" -lockaftersleep &
DPMS も参照。
シャットダウン, 再起動, 画面ロック
シャットダウン、再起動、画面ロックのキーコンビネーションを ~/.config/i3/config
に追加することができます。以下の例では電源管理コマンドを実行する権限がないユーザーに権限を与えるために polkit をインストールする必要があります。
set $Locker i3lock && sleep 1 set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown mode "$mode_system" { bindsym l exec --no-startup-id $Locker, mode "default" bindsym e exec --no-startup-id i3-msg exit, mode "default" bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default" bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default" bindsym r exec --no-startup-id systemctl reboot, mode "default" bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default" # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+Pause mode "$mode_system"
追加したら $mod+pause
を押すことでプロンプトが表示されます。より複雑な動作をさせたい場合は、スクリプトに分離し、mode の中で参照してください [4]。
他の画面ロッカーについては、アプリケーション一覧/セキュリティ#スクリーンロックを参照。
ターミナルウィンドウを飲み込む
dwm と同じように、i3は現在のターミナルウィンドウをそこから起動された新しいGUIウィンドウで「飲み込む」(置き換える)ことができます。これをするには i3-swallow-gitAUR パッケージを使います。
例えば、mpv のウィンドウが元のターミナルを飲み込むようにするには以下のようにします:
$ swallow mpv video.mp4
あるいは、使用していないときにターミナルウィンドウを非表示にするために、タブ付きコンテナまたはスタックコンテナを使用してターミナルの飲み込みをシミュレートすることもできます。ただし、これには常にコンテナの上部にウィンドウリストが表示されるという欠点があります。
外部ディスプレイの手動管理
xrandr を使うことで簡単にディスプレイを管理することができます。以下は i3 の設定ファイルを使って統合する例で、上記の電源管理セクションと同じように振る舞います。
VGA と HDMI 出力が存在するノートパソコンでメニューを使ってオンオフを切り替えます:
## Manual management of external displays # Set the shortcuts and what they do set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF mode "$mode_display" { bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode "default" bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode "default" bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode "default" bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode "default" # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } # Declare here the shortcut to bring the display selection menu bindsym $mod+x mode "$mode_display"
オフになったディスプレイで表示していたウィンドウは自動的に他のアクティブなディスプレイに移動されます。
デバイスの名前を確認したいときは、使用したいデバイスを接続して次を実行してください:
$ xrandr --query
利用可能なオプションについては xrandr のページや man ページ、i3 ユーザーガイド や i3 reddit の FAQ を見てください。
タブまたはスタックによるウェブブラウジング
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。
uzbl など、タブのないウェブブラウザを i3 で管理するには、次の行を ~/.config/i3/config
に追加して下さい:
for_window [class="Uzbl-core"] focus child, layout stacking, focus
これはスタックのウェブブラウジング用で、ウィンドウは縦に表示されます。タブブラウジングと違って、たとえブラウザのウィンドウを大量に開いていても、ウィンドウのタイトルを全て見ることができます。
水平方向のタブブラウジングの方が良い場合は ('タブ')、次を使って下さい:
for_window [class="Uzbl-core"] focus child, layout tabbed, focus
ワークスペース変数
i3 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [7]:
set $WS1 term set $WS2 web set $WS3 misc set $WS4 media set $WS5 code
次にワークスペースの名前を対応する変数で置き換えます:
bindsym $mod+1 workspace $WS1 ... bindsym $mod+Shift+1 move container to workspace $WS1
詳しくは Changing named workspaces を見て下さい。
フロートするダイアログを正しく扱う
デフォルトではダイアログはフロートモードで開かれることになっていますが [8]、ダイアログはタイルモードで開いてしまうこともあります。この挙動を変更するには xorg-xprop でダイアログの WM_WINDOW_ROLE
をチェックして適切なルールを ~/.i3/config
に追加してください:
for_window [window_role="pop-up"] floating enable for_window [window_role="task_dialog"] floating enable
また、タイトルルールと正規表現を使うこともできます:
for_window [title="Preferences$"] floating enable
または WM_CLASS
:
for_window [class="(?i)mplayer"] floating enable
ネットワークのダウンロード・アップロード速度をステータスバーに表示
上流の スクリプト を編集して使うことができます。
- システムに応じて両方のネットワークカードをリネームしてください (
ip addr
を使ってください)。 /sys/devices
でネットワークカードを検索して適切に置き換えます:
$ find /sys/devices -name network_interface
スクリプトを適切な場所 (例: ~/.config/i3
) に保存して、ステータスプログラムから実行するように設定してください。
ウィンドウの分割方向を自動的に水平/垂直に切り替える
autotilingAUR パッケージ は、ウィンドウの分割方向を自動的に水平/垂直に切り替えることができます。インストール後、~/.config/i3/config
に以下を追加し、i3 をリロードしてください。
exec_always --no-startup-id autotiling
トラブルシューティング
一般
多くの場合、開発版である i3-gitAUR と i3status-gitAUR でバグは修正されているため、上流では開発版を使ってエラーが再現できるかどうか訊いてきます [9]。デバッグ - トレースを取得#一般も見てください。
i3 メッセージバーのボタンが動作しない
i3-nagbar
の "Edit config" などのボタンは i3-sensible-terminal
を呼び出します。ターミナルエミュレータが i3 によって認識されていることを確認してください。
タイル化されたターミナルで行の折り返しがおかしい
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [10]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。
マウスカーソルが待機状態のままになる
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは60秒間の間、ビジー/砂時計状態になります。
特定のアプリケーションでこの問題を解決するには、--no-startup-id
パラメータを使って下さい、例えば:
exec --no-startup-id ~/script bindsym $mod+d exec --no-startup-id dmenu_run
このアニメーションを全てのアプリケーションで無効にするには、カーソルテーマを見て下さい。
キーバインドが反応しない
標準のキーバインド (キーを押して実行) を使っている場合、scrot などのツールが動作しないことがあります。そのようなときは、--release
でキーをリリースしてからコマンドを実行してください:
bindsym --release Print exec --no-startup-id scrot '%Y-%m-%d$ bindsym --release Shift+Print exec --no-startup-id scrot '%Y$
[11] を参照。
ティアリング
i3 は ダブルバッファをちゃんと実装していない ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、コンポジットマネージャを使ってみて下さい。
トレイアイコンが表示されない
tray_output primary
ディレクティブでは、 xrandr でプライマリ出力を設定する必要があります。明示的に出力を指定するか、ディレクティブを削除してください [12]。詳しくは Xrandr を参照。i3 のバージョン 4.12 から、i3-config-wizard によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。
Spotify のためのデフォルトのワークスペース
Spotify ウィンドウにデフォルトのワークスペースを割り当てるには、assign
で標準ルートを使用することはできず、次のような for_window
コマンドを使用する必要があります。
~/.config/i3/config
... for_window [class="Spotify"] move to workspace $ws10
for_window
がすでに ws10
にある場合にウィンドウを移動しないようにするには、代わりに move --no-auto-back-and-forth
を使用できます。
参照
- 公式ウェブサイト
- funtoo Wiki
- i3 ソースコード
- i3-extras - スクリプトとパッチのコレクション
- i3ipc-glib - i3 拡張のためのライブラリ
- i3ipc-ruby - An improved library for i3 extensions in Ruby
- j4tools - non-official tools designed to work with i3
Arch Linux フォーラム
- The i3 thread - A general discussion about i3
- i3 desktop screenshots and config sharing
スクリーンキャスト