i3(LARBS)を使ってみる

# 動機
[この動画](https://www.youtube.com/watch?v=2U3vRbF7v5A)を見てからneomuttを使い始めたんだけど、ウィンドウの挙動が気になった。
どうやらi3という「タイル型ウィンドウマネージャ」を使っているらしい。ちょっと使ってみたら「めちゃめちゃ良さげやんけ・・・！！」となったので導入したときのメモ。

# 環境  
- ArcoLinux v19.03.3
- ThinkPad X1 Carbon 2018(USキーボード)
- マルチモニタ
- i3

# ArcoLinuxのインストール
[この記事](https://www.linux-setting.tokyo/2019/01/arcolinux-18127archxfce4.html)を参考にした。

ArcoLinuxは結構最初からイイ感じにしてくれてるので最高。

# i3環境の構築
muttの動画を紹介してるLuke Smithがスーパー便利なものを教えてくれる。
その名も[LARBS](https://github.com/LukeSmithxyz/LARBS)。
実行するのは↓だけ。

```
$ su 
# curl -LO larbs.xyz/larbs.sh
# bash larbs.sh
```

あとはユーザ名とパスワードを決めるだけで

- 必要なパッケージのインストール
- i3の見た目をイイ感じに

したユーザが作れるよ！！最高！
ユーザ名とパスワード入れればすべての設定をやってくれる。
今回はユーザ名testで作成。

## i3環境のカスタマイズ
i3環境の構築が終わったらログアウト->右上のxfをクリック->i3を選択 ですぐにイケてるi3環境を使うことができるけど、その前に個人的な設定を入れていく。

### ModをSuper->Altに  
i3ではMod(LARBSのデフォルトはSuperキー)+なにか で操作していくことになるが、個人的に押しにくかったのでAltにしたい。


```console:testユーザにスイッチ
# su - test 
[test@arcolinux ~]$ 
```
はい！この時点でなんかイケてる！

```console:~/.config/i3/configを編集
[test@arcolinux ~]$ cd .config/i3
[test@arcolinux i3]$ vim config 
```
はい！vimもなんかすげぇカスタマイズされてる！！カスタマイズされすぎて面白い！！！
実際に使ってるのは `~/.profile` のEDITERで指定してるnvim。なので使いたいエディタをここに書けば簡単に変えられる。BROWSERとかTERMINALもお好きなものに。

編集するのは15行目



```vim:~/.config/i3/config(before)
set $mod Mod4
```

```vim:~/.config/i3/config(after)
set $mod Mod1
```
これでAltキーでいろいろ操作できる。

### fcitxの設定

日本語設定はインストールのときにやったじゃん・・？って感じだけど、i3のために改めて設定しなきゃいけない。日本語入力ができなくて悲しい思いをするので先に設定しておく。

#### fcitxをi3でも起動する

 編集するのはさっきと同じ`~/.config/i3/config` 。

```bash
$ vim config
```
どこに書いてもいいらしい。
けど、`Starting External Scripts` のあたりに書いとくとわかりやすい気がする。
ということで47行目とかにfcitxを起動する設定を入れる。

```vim:~/.config/i3/config
# Run fcitx
exec --no-startup-id fcitx
```

#### ↑で日本語入力できるとおもいきや

多分できない。
ちょっと調べると`~/.xinitrc`にGTK_IM_MODULE=fcitxとか書くんだよ！的なのがヒットするけど、
ここはあえて`~/.xprofile`に書いていく。

ちなみに、LARBSで`~/.xprofile` は`~/.profile` のシンボリックリンクとして作成されているので、直接`~/.profile`を編集してもOK。
27〜31行目に書いておくとイイ感じ？

```vim:~/.xprofile
# Use fcitx
export DefaultImModule=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
```
多分これでi3にログインしても日本語入力ができるようになっているはず。

#### Caps->Super(+Esc)->Ctrl
LARBSでCapsLockはSuper(とEsc)になっている。
というのもデフォルトでModにSuperが使われていて、ここにあると便利だからだと思う。　
ModにはAltを当ててこの設定は意味が半減している+CtrlがCapsにないと無理なので
設定を変更していく。

まず、CapsLockをSuperにしている設定ファイルを確認。

```console:~/.scripts/tools/remaps
[test@arcolinux ~]$ cat .scripts/tools/remaps 
#!/bin/sh
# This script is called by i3 on startup to remap keys.
# Increase key speed via a rate change
xset r rate 300 50
# Map the caps lock key to super...
setxkbmap -option caps:super  <-CapsLockをSuperに
# But when it is pressed only once, treat it as escape.
killall xcape 2>/dev/null ; xcape -e 'Super_L=Escape' <-一瞬だけCapsLockを押したら左Superに
# Map the menu button to right super as well.
xmodmap -e 'keycode 135 = Super_R'
```
正直よくわかんない。
多分全部書き換えちゃえば大丈夫じゃね？という乱暴な発想で消す。
でもちょっと勉強になりそうなのでとっておく。

```cosole:~/.scripts/tools
[test@arcolinux tools]$ cp -ip remaps .remaps 
[test@arcolinux tools]$ diff remaps .remaps 
[test@arcolinux tools]$ 
[test@arcolinux tools]$ echo "" > remaps
[test@arcolinux tools]$ vim remaps 
```

```vim:remaps
setxkbmap -option ctrl:swapcaps
```
これで日本語入力はいい感じになるはず。

## i3でログイン
ログアウト+i3選択(多分右上？)してログイン

## マルチモニター
モニターに接続して使用する場合、どっかで設定を保存・読み込む必要がある。

Mod+F3(or terminalでarandrうつ) でモニタの設定をいい感じに。

autorandrをインストール。
autorandrは現在のモニタ設定を保存・復元してくれるやつ。

```
# pacman -S autorandr
# su - test 
$ autorandr -s default
```
これで現在の設定が保存される。
あとは↓をi3のconfigにかいておけばOKなはず

```console:~/.config/i3/config
exec --no-startup-id autorandr -c
```

### おまけ
ホームディレクトリは英語にしたい

```
LANG=C xdg-user-dirs-update --force
ls | grep -v ^[A-Z].* | xargs rmdir
```