X環境構築時に忘れてはいけない i3 のワナ集

ArchlinuxでX環境を構築。ウィンドウマネージャに i3 を使用。設定時に気をつけなければいけないことがたくさんあるのでまとめます。

Xをインストール

$ yay -S xorg-server xorg-apps xorg-xinit

この時点でstartxを打つとXが立ち上がり,即座に終了する。

i3をインストール

$ yay -S i3

ランチャー(ここではrofi),ターミナル(ここではterminator),フォント(ここではotf-ipafont)をインストール。フォントを扱うために必要なパッケージも依存で入る

$ yay -S rofi terminator otf-ipafont

xinitrcのコピー

$ cp /etc/X11/xinit/xinitrc .xinitrc

最後を消して exec i3 に書き換える。

ここからが問題。i3の設定ファイルを作る。

$ cd ~/.config/i3
$ vim config

最初に必ず

set $mod Mod4
bindsym $mod+Shift+e mode "exit"
mode "exit" {
    bindsym e exit
    bindsym Return mode "default"
}
mode "phony" {
    bindsym a workspace 1
}

と書く。exit するコマンドが無いとXを起動した後終了できなくなる。しかし bindsym $mod+Shift+e exit としてしまうと間違えてXを終了してしまうことがある。そのため mode "exit" を作ってミスを防ぐ。この場合 workspace に関する操作を含むコマンドを何か1つ書かないとi3-migrate-config-to-v4が実行されてエラーが出る。そのため mode "phony" の中にダミーのコマンドを書く。

ランチャーとして使う場合 rofi は次のように引数をつけて呼び出す。

$ rofi -show run

よって config には以下のように書く。

bindsym $mod+space exec rofi -show run

引数が無いと何も起こらない

modeを作る際の注意点。

set $resize resize [h:shrink width] [t:grow height] [n:shrink height] [s:grow width]
bindsym $mod+r mode "$resize"
mode "$resize" {
	bindsym Return mode "default"

	bindsym h resize shrink width 10 px or 10 ppt
	bindsym t resize grow height 10 px or 10 ppt
	bindsym n resize shrink height 10 px or 10 ppt
	bindsym s resize grow width 10 px or 10 ppt
}

必ず mode "default" に戻るためのコマンド(bindsym Return mode "default")を書き忘れないこと。これを忘れると mode "default" で定義されている exit コマンドが呼び出せず,終了できなくなる

workspace を作る際の注意点。例えば起動時にデフォルトとして workspace "1" が開かれる場合,workspace "1" へ移るコマンドを書き忘れないこと。これが無いと workspace "1" でアプリケーションを開いた後に他の workspace に移ると workspace "1" に戻れなくなる

デフォルトの config を使っているうちは問題無いが,書き換える人は以上のことに注意しなければいけない。