「I3」の版間の差分
(同期) |
(同期) |
||
47行目: | 47行目: | ||
詳しい情報は [http://i3wm.org/docs 公式のドキュメント]、すなわち [http://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。 |
詳しい情報は [http://i3wm.org/docs 公式のドキュメント]、すなわち [http://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。 |
||
− | |||
− | === アプリケーションランチャー === |
||
− | |||
− | 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) も良く使われます。 |
+ | i3 では修飾キー ({{ic|$mod}} と表記されます) を使ってコマンドを呼び出します。デフォルトでは {{ic|Alt}} (Mod1) ですが、{{ic|Super}} (Mod4) も良く使われます。大抵のキーボードでは Super は Windows アイコンが印されたキーになります。Apple キーボードなら Command キーです。 |
デフォルトのキーバインドについては [http://i3wm.org/docs/refcard.html i3 リファレンスカード] や [http://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。新しくショートカットを追加する方法は [http://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] に載っています。 |
デフォルトのキーバインドについては [http://i3wm.org/docs/refcard.html i3 リファレンスカード] や [http://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。新しくショートカットを追加する方法は [http://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] に載っています。 |
||
+ | |||
+ | Qwerty 以外のキーボード配列を使っている場合は[[#設定ウィザードとキーボードレイアウト|設定ウィザードとキーボードレイアウト]]に書かれているように設定ウィザードを迂回すると良いでしょう。 |
||
=== コンテナ === |
=== コンテナ === |
||
65行目: | 61行目: | ||
詳しくは [http://i3wm.org/docs/userguide.html#_tree i3 Tree] や [http://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。 |
詳しくは [http://i3wm.org/docs/userguide.html#_tree i3 Tree] や [http://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。 |
||
+ | |||
+ | === アプリケーションランチャー === |
||
+ | |||
+ | 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]。 |
||
== 設定 == |
== 設定 == |
||
77行目: | 79行目: | ||
# ユーザーの現在のキーボードレイアウトにあわせて ''bindcode'' 行をすべて ''bindsym'' 行で置き換えます。 |
# ユーザーの現在のキーボードレイアウトにあわせて ''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}}) にコピーしてください。 |
+ | 後者が実行されることで、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}}) にコピーしてください。 |
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。 |
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。 |
||
148行目: | 150行目: | ||
* {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{AUR|i3blocks}}}} |
* {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{AUR|i3blocks}}}} |
||
* {{App|i3phtatus|PHP で書かれた i3status の代替。簡単に拡張できます。|https://github.com/mwgg/i3phtatus}} |
* {{App|i3phtatus|PHP で書かれた i3status の代替。簡単に拡張できます。|https://github.com/mwgg/i3phtatus}} |
||
+ | * {{App|goi3bar|Go で書かれた i3status の代替。コンポーネントを自由にアップデートすることができます。|https://github.com/denbeigh2000/goi3bar}} |
||
* {{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}}}} |
||
163行目: | 166行目: | ||
* {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{AUR|ttf-font-awesome}}}} |
* {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{AUR|ttf-font-awesome}}}} |
||
− | * {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。| |
+ | * {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。|http://kageurufu.net/icons.pdf|{{AUR|ttf-font-icons}}}} |
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります: |
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります: |
||
397行目: | 400行目: | ||
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 によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。 |
||
== 参照 == |
== 参照 == |
||
414行目: | 421行目: | ||
'''スクリーンキャスト''' |
'''スクリーンキャスト''' |
||
* [http://www.youtube.com/watch?v=Wx0eNaGzAZU i3 window manager v4.1 screencast] |
* [http://www.youtube.com/watch?v=Wx0eNaGzAZU i3 window manager v4.1 screencast] |
||
+ | * [https://www.youtube.com/watch?v=j1I63wGcvU4&index=1&list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf i3 window manager v4.1X screencasts] |
2016年5月28日 (土) 21:43時点における版
i3 は wmii にインスパイアされて開発された動的タイル型ウィンドウマネージャで、主に開発者や上級ユーザーをターゲットにしています。
i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、vim のような様々なモードなどです。
インストール
公式リポジトリから i3 パッケージグループをインストールしてください。このグループにはウィンドウマネージャの i3-wm と、標準出力によってステータスラインに書き込みを行う i3status、そして画面ロッカーの i3lock が含まれています。
開発版の i3-gitAUR など、他のパッケージは Arch User Repository からインストールできます。多くの場合、バグは開発版で修正されているため上流では開発版を使ってエラーが再現できるかどうか訊いてきます [1]。
ディスプレイマネージャ
i3-gnomeAUR は GNOME と i3 をウィンドウマネージャとする X-session を追加します。ウィンドウマネージャだけを起動する Xsession は i3 に含まれています。ディスプレイマネージャを参照してください。
xinitrc
xinitrc を編集して、次の行を追加してください:
exec i3
i3 からの出力を記録したいときは (デバッグに役立ちます)、代わりに次の行を追加してください:
exec i3 -V >> ~/.config/i3/i3log-$(date +'%F-%k-%M-%S') 2>&1
キーのマッピングに問題が起こるときは (例: セミコロンの ;
)、xorg-xev を使うか、または特別なキーボードキーを見て下さい。
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
使用方法
詳しい情報は 公式のドキュメント、すなわち 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 とほぼ同様に使える上に、高速に動作します [2]。
設定
詳しくは 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
) にコピーしてください。
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。
カラースキーム
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。
- i3-style — JSON オブジェクトで保存されたテーマによって所定の設定を変更します。テーマは何度もカラースキームを調整・修正できるように作られています。
- 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
lxqt-panel を使いたい場合、LXQt をインストールして、~/.config/lxqt/session.conf
で以下を設定してください:
window_manager=i3
~/.config/i3/config
の bar{ }
セクションをコメントアウトすることで i3bar は無効にできます。
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 の代替。コンポーネントを自由にアップデートすることができます。
- https://github.com/denbeigh2000/goi3bar || パッケージが存在しないか AUR で検索
- i3pystatus — デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。
- https://github.com/enkore/i3pystatus i3pystatus || i3pystatus-gitAUR
- i3situation — もうひとつの Python 3 ステータスバージェネレータ。
- j4status — C で書かれており、プラグインで設定ができる、ステータスラインを提供します。追加プラグインは j4status-plugins-gitAUR に入っています。
i3status のラッパー
- h2status — i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。
- 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 ... }
カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。(たとえ同じサイズだとしても)フォントファミリーごとにサイズを設定したり複数のフォントディレクティブを使って同じようなことをしようとはしないで下さい。i3bar の様々なコンポーネントの縦位置や高さが想定外に崩れることになるからです。正しい pango の記述子の構文は上で示した通りです。
最後に、アイコングラフをフォーマット文字列にして ~/.config/i3status/config
に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。例えば、vim を使っている場合、挿入モードで Ctrl+v
の後にグリフの十六進数のユニコード番号を入れます。
urxvt では、Ctrl+Shift
を押して、適当な Unicode ポイントを記入します。
ターミナルエミュレータ
デフォルトでは $mod+Return
を押すとターミナルを呼び出すスクリプトの i3-sensible-terminal
が起動します。ターミナルを呼び出す順番については man i3-sensible-terminal
を見て下さい。
他のターミナルを起動するには、~/.config/i3/config
の次の行を変更してください:
bindsym $mod+Return exec i3-sensible-terminal
または、$TERMINAL
変数をローカルで定義してください:
$ export TERMINAL=yourterminal
Tips and tricks
高度なウィンドウナビゲーション
i3 window Navigation Tips を見て下さい。
Jump to open window
- quickswitch-i3 — i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。
- i3-wm-scripts — 正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。
- winmenupy — クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。
- rofi — スクラッチパッドウィンドウを検索してジャンプして開く。
Jump to urgent window
.i3/config
に次を追加: [3]
bindsym $mod+x [urgent=latest] focus
現在のセッションを保存する
バージョン 4.8 から、i3 はワークスペースレイアウトの保存・復元が可能になっています。詳しくは layout saving in i3 を見て下さい。
完全なセッションを保存・再起動するには、AUR から i3session-gitAUR をインストールしてください。
スクラッチパッドコンテナ
デフォルトでは、スクラッチパッド は一つのウィンドウしか含んでいません。しかしながら、コンテナをスクラッチパッドにすることが可能です。
新しいコンテナを作成して (例えば、Mod+Enter
)、コンテナを分割し (Mod+v
) 別のコンテナを作成します。親にフォーカスして (Mod+a
)、反対方向に分割し (Mod+h
)、もう一度作成します。
最初のコンテナにフォーカスして (必要なら親にもフォーカス)、ウィンドウをフロートさせ (Mod+Shift+Space
)、スクラッチパッドに移動します (Mod+Shift+-
)。これで自由にコンテナを分割できます。
マルチスクラッチパッドについては [4] も参照してください。
スクリーンセーバーと電源管理
DPMS を使って画面を消したりモニタをサスペンド・電源オフにすることができます。次の行を ~/.config/i3/config
に追加すると10分後にモニターがサスペンド状態になります:
exec --no-startup-id xset dpms 600
xss-lock-gitAUR を使うことで i3 セッションの画面ロッカーを登録することが可能です。xss-lock は systemd のイベント suspend
, hibernate
, lock-session
, unlock-session
に適当なアクションを設定します (ロッカーを起動してユーザーがロックを解除するかロッカーをキルするのを待つ)。また、X screensaver に反応して x-server の信号に応じてロッカーを起動・終了します。以下のように xss-lock を起動するようにしてください:
xss-lock -- i3lock -n -i background_image.png &
もしくは、xautolock を使って指定時間後に画面をロックするように設定することもできます:
xautolock -time 10 -locker "i3lock -i 'background_image.png'" -lockaftersleep &
#シャットダウン, 再起動, 画面ロック も参照。
シャットダウン, 再起動, 画面ロック
シャットダウン、再起動、画面ロックのボタンは存在しないため、ホットキーのコンビネーションを追加することでそれらの操作を実現できます。まず以下のスクリプトを作成して i3exit
として保存してください。chmod +x
で忘れずに実行可能属性を付けて $PATH
が通っているところに配置します。このスクリプトでは電源管理コマンドを実行する権限がないユーザーに権限を与えるために polkit をインストールする必要があります。
#!/bin/sh lock() { i3lock } 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 exit 0
そして以下の行を ~/.config/i3/config
に追加してください。追加したら $mod+pause
を押すことでプロンプトが表示されます。
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 i3exit lock, mode "default" bindsym e exec --no-startup-id i3exit logout, mode "default" bindsym s exec --no-startup-id i3exit suspend, mode "default" bindsym h exec --no-startup-id i3exit hibernate, mode "default" bindsym r exec --no-startup-id i3exit reboot, mode "default" bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+Pause mode "$mode_system"
他の画面ロッカーについては、アプリケーション一覧/セキュリティ#スクリーンロックを参照。
タブまたはスタックによるウェブブラウジング
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。
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 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [6]:
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 を見て下さい。
フロートするダイアログを正しく扱う
デフォルトではダイアログはフロートモードで開かれることになっていますが [7]、ダイアログはタイルモードで開いてしまうこともあります。この挙動を変更するには 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
パッチ
上流にマージされてないパッチがあてられたパッケージが AUR には存在します:
- i3bar-icons-git — i3bar で XBM アイコンを表示
- i3-smart-border — スマートボーダー
- i3-wm-iconpatch — タイトルバーアイコンのサポート
トラブルシューティング
i3 メッセージバーのボタンが動作しない
i3-nagbar
の "Edit config" などのボタンは i3-sensible-terminal
を呼び出します。ターミナルエミュレータが i3 によって認識されていることを確認してください。
タイル化されたターミナルで行の折り返しがおかしい
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [8]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。
マウスカーソルが待機状態のままになる
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは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$
[9] を参照。
ティアリング
i3 は ダブルバッファをちゃんと実装していない ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、コンポジットマネージャを使ってみて下さい。
トレイアイコンが表示されない
デフォルトの tray_output primary
ディレクティブでは xrandr でプライマリ出力を設定する必要があります。明示的に出力を指定するか、ディレクティブを削除してください [10]。詳しくは Xrandr を参照。i3 のバージョン 4.12 から、i3-config-wizard によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。
参照
- 公式ウェブサイト
- funtoo Wiki
- i3 ソースコード
- i3-extras - Collection of scripts and patches
- 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
スクリーンキャスト