Manjaro i3 Editionインストールから僕おすすめカスタマイズまで

2020/03/08 内容を整理して、余計な(だと思う）ものを省きました。
順番もあべこべで読みにくい記事だったと思います。ごめんなさい。
ようやく修正しました。
前verは[ここ](https://qiita.com/Hiroya_W/items/99c73dd29e88762b2d5c/revisions/85?type=preview)

# リスペクト
[Linuxに移行した話](http://crocus7724.hatenablog.jp/entry/2018/01/04/045559)

こちらのサイトにあったこのデスクトップ、かっこよすぎるんですよ...。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/84405f59-38f7-3403-43ed-a03586a3d686.png)

**リスペクトしかない**
いろいろな方の設定ファイルをお借りして、私も透明でかっこよいデスクトップに仕上がっちゃいました

![2019-08-03-142127_1920x1080_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/76db898b-4249-bc70-ba1c-6403ba8f80fe.png)



# Cinnamonがばぐった
アップデートでCinnamonがバグってしまわれました
アプレットやデスクレットを使おうとするとCinnamonがクラッシュしてしまうんです...。

一旦、全部(homeも)消して、i3 Editionを入れてやろうと思ってます
また、環境を整えるためのメモ書きとして残します


# 環境
Windows10 + Manjaro Linuxのデュアルブート

```
OS : Manjaro 18.0.4 Illyria
Kernel : x86_64 Linux 4.19.60-1-MANJARO
```

# 大事なデータの避難
とりあえず列挙

## ドットファイル

- .bashrc
- .zshrc
- .vimrc
- .Xmodmap
- .ssh

## ドキュメント
- 卒研
- レポート

## Githubリポジトリ
pushしておく

## 画像
## シェルスクリプト
## パーティション情報のメモ

## VSCode
VSCode拡張[Setting Sync](https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync)を用いてファイルをGithub gistへアップロードする。
Setting Syncなら環境作り直すのも超楽。
内訳はこんな感じ。

- Setting File
- Keybinding File
- Launch File
- Snippets Folder
- VSCode Extensions & Extensions Configurations
- Workspaces Folder

忘れてたら怖いけど、まあこれくらいでしょう
後は無くても自力で設定しなおせるレベル

どうでもいい細かいものまでコピーしちゃって、圧縮しておけばよかったと後悔。

# Manjaro i3 Editionのダウンロード
[ここ](https://manjaro.org/download/i3/)からダウンロード

# Live USBの作成
いったんWindowsへ。後でLinuxのパーティションを消す作業もするので。

なので、とりあえず[Rufus](https://rufus.ie/)を用意する
説明は[ここ](https://linuxfan.info/make-linux-install-usb-on-windows)

FAT32でフォーマットしてから書き込み。1回目は失敗したけど2回目は成功した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/9ddffa0a-b4cf-05f2-651c-378c094b2796.png)

# Linuxのパーティションを消す
![Screenshot from 2019-07-26 22-03-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/8b1365d9-c74d-0f54-6131-d43bc8127bd9.png)

こんな感じだったので。
確認しつつ、sda5~sda8を消す。

ここはWindowsでの作業。
消したいのを選んで、ボリュームの削除。
消したらこんな感じになった
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/6e08d3a4-0ed1-b603-8e15-4437f0213792.png)

# Live USBから起動
私の環境ではF2でBIOS入ってSave & ExitからBoot Overrideの中のUSB Flash Diskを選択
NVIDIA GPU積んでるならdriverはnonfreeにしておかないといけないかも

- tz = Asia/Tokyo
- keytable = jp
- lang = ja_JP
- driver = nonfree

変更してBoot
![2019-07-27-091351_1920x1080_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/03f15087-f84c-0287-768e-bcc81ee80d1d.png)
起動した

# Manjaro i3 Editionのインストール
画像貼っておきますが、長くなるので畳んでおきます

<details><summary>インストール作業</summary><div>
## Wi-Fi
右下のアイコンからWi-Fiアクセスポイントを選んで接続しておく。

## インストーラーの起動
Manjaro Helloから`インストーラーを起動`を選択

![2019-07-27-093000_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/77d6dd75-8cf3-63f0-8389-0ec6230d0a95.png)
`次へ`

## ロケーション
![2019-07-27-100211_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/e6360f89-7e91-ea77-9cc9-cc7e6dfb80db.png)
`Tokyo`を選んで`次へ`

## キーボード
![2019-07-27-101045_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/1636c857-fbeb-251a-bb1f-9071b96ead9a.png)
キーボードはそのまま`次へ`

## パーティションの作成
![2019-07-27-101100_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/a25131cd-4d0e-8d4e-2f3d-e8f8b1a0305c.png)
`手動パーティション`を選んで`次へ`

![2019-07-27-101115_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/b5065e72-0264-750d-d31e-5748796c8cb8.png)
予め作っておいた空き領域を選んで`作成`

## /boot/efi
![2019-07-27-101603_763x689_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/8b1980b7-9169-f2e8-d043-7fd255b93125.png)
まずは`/boot/efi`の作成 
`100MiB`ほどで十分。
ファイルシステムは`FAT32`
マウントポイントを`/boot/efi`にする
フラグは`boot`と`esp`にチェックをつける

## linux swap
![2019-07-27-101810_763x689_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/84c12f8c-49f5-d3f7-ad8c-b0f0462bcdbb.png)
`4096MiB`で十分。
ファイルシステムは`linuxswap`
フラグは`swap`にチェックをつける

## root
![2019-07-27-102055_763x689_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/c761c780-49c4-633d-82b4-f4ee10922208.png)
ここは大きめにとって`80GiB`ほど割り当てた
ファイルシステムは`ext4`
マウントポイントを`/`にする
フラグはなし

## home
![2019-07-27-102137_763x689_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/0a8789bb-0427-0691-d1de-fafeef6edfb1.png)
残り全部を割り当てて`90GiB`ほど
ファイルシステムは`ext4`
マウントポイントを`/home`にする
フラグはなし

## 作成したパーティション
こんな感じ。
![2019-07-27-102245_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/c8537155-94bc-37e1-c647-766ea49aa33a.png)

## ユーザ情報
管理者アカウントと同じパスワードを使用するにチェック入れておく
![2019-07-27-102331_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/d6cf638a-e840-011e-0f80-a99e751af3e4.png)

## 要約
確認して問題なければ`インストール`
![2019-07-27-102437_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/e2293adb-a1b4-6797-8975-11989911d0cf.png)

## しばらく放置
![2019-07-27-102459_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/d5c49179-498b-7920-f719-43c46d5a16c7.png)

## 再起動
`今すぐ再起動`にチェックいれて`実行`
![2019-07-27-103256_1024x520_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/820b89b0-4419-4aaf-90b3-cbf1973a42d4.png)


</div></details>

# Modキー
i3 window managerでは、`mod`キーと組み合わせたキーショートカットが用意されています。
デフォルトでは、`Alt`キーが設定されていると思います。


# ネットワーク設定
基本的には、右下のアプレットからやる
他の細かい設定は`Advanced Network Configuration(高度なネットワーク設定)`からできる

もしくは、`Ctrl + mod + b`で`bmenu`が起動できるのだが、
その中からネットワーク設定を実行することもできる。
`mod`はデフォルトで`Alt`キーが設定されている。
`mod + Enter`でターミナルを起動し、

```
$ nmtui
```

のコマンドから起動できるものと同じ。
この`bmenu`がなかなか使えるので覚えておくといいかも。

# Pacmanのミラーサーバーの変更 

```
$ sudo pacman-mirrors --geoip
```

IPアドレスから国を特定して、その国にミラーがあればその中から最速を選ぶ感じ。
日本にあるので、それを選んでくれる。

# アップデート
pacmanのコマンド叩く

```
$ sudo pacman -Syu
```
右下のパッケージマネージャからアップデートもできるので好きな方で。

![2019-07-27-104511_955x539_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/bb0fc140-fec2-cdf2-2075-982417173bba.png)

# i3wmのmodキーをSuperキーに変える
デフォルトでは、`mod`キーは`Alt`キーに設定されています。
その代わりに、`Super`キー(`Windows`キーや`Command`キーのこと)を使われることが多いそうです。

ここでも、`Alt`キーを`Super`キーに変えてみることにします。
ここでは、エディタとしてVimをインストールします。
使い方は分かりやすく書いてある記事が多くありますので、そちらを参考にしてください。

`mod + Enter`でターミナルを起動して、

```
$ sudo pacman -S vim
$ vim .i3/config
```

書き換える。

```.i3/config
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
set $mod Mod4
```

`mod+Shift+C`でコンフィグをリロードしてOK。

以下、`Mod`キーは`Super`キー(`Windows`キーや`Command`キーのこと)と置き換えて読んでください。


# WindowsとLinuxで時間がズレる
ArchWikiの[Windows で UTC を使う](https://wiki.archlinux.jp/index.php/%E6%99%82%E5%88%BB#Windows_.E3.81.A7_UTC_.E3.82.92.E4.BD.BF.E3.81.86)を参考にWindowsにUTCを使わせる。

[Linux_Windowsデュアルブート環境時における時刻ずれの解決](https://gin135.hatenadiary.org/entry/20140304/1393943319)もわかりやすかった。

とりあえず、レジストリの設定をした。
Windowsのインターネット時刻をOFFにしろって書いてあったので、OFFにして再起動したらWindowsもLinuxも時間が+9hされてしまってた...。

でも、Windows側で時刻の自動設定をON→OFFをしてみれば直った。

Linuxをブートしなおしても、ちゃんとした時間が表示されるようになったので、OK。

で、Windows側では自動設定をOFFにしたので、時刻のズレは、Linux側のntpで修正させる。

ntpはデフォルトでインストールされていますが、一応確認。

```
$ sudo pacman -S ntp
警告: ntp-4.2.8.p13-2 は最新です -- 再インストール
...
```

最新だった。

```
$ timedatectl status
               Local time: 水 2019-12-25 11:12:05 JST
           Universal time: 水 2019-12-25 02:12:05 UTC
                 RTC time: 水 2019-12-25 02:12:04
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no
```

`NTP service`が`inactive`、`System clock synchronized`が`no`になってたので、

```
$ sudo timedatectl set-ntp true
$ timedatectl status
               Local time: 水 2019-12-25 11:12:45 JST
           Universal time: 水 2019-12-25 02:12:45 UTC
                 RTC time: 水 2019-12-25 02:12:45
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
```

これでOK。

# homeのサブディレクトリを英語にする
[Manjaro Fluxbox 15.12の日本語ディレクトリ名を英語名に戻した](https://haiju.hatenablog.com/entry/2016/10/01/110920)

僕もコマンドがなかったので参考サイト同様にやった。

```
$ sudo pacman -S xdg-user-dirs-gtk
$ LANG=C xdg-user-dirs-gtk-update
```
再起動する

# Google Chrome
ブラウザはこいつ。
Googleアカウントに紐づけて全部同期できるのが強すぎる
以下記事を読んでvivaldiに乗り換え検討中。
[chromeからvivaldiにメインブラウザを移行しました](https://qiita.com/gurume029/items/70795b88ddb25ad49385)

## インストール

```
$ yay google-chrome-stable
```

## Chromeをデフォルトブラウザに設定する

```
$ xdg-mime default google-chrome.desktop x-scheme-handler/http
$ xdg-mime default google-chrome.desktop x-scheme-handler/https
```

.bashrc、.zshrcに以下を書き、環境変数を変更するようにしておく。

```
export BROWSER="/usr/bin/google-chrome-stable"
```


## i3のMod + F2をChromeにする

通常は`palemoon`というブラウザが起動するショートカットです。  
これをChromeで置き換えます。

```
$ vim .i3/config
```
コメントアウトして、Chromeに書き換える

```config:config
# Start Appications
# bindsym $mod+F2 exec palemoon
bindsym $mod+F2 exec google-chrome-stable
```

# プロキシ
学校で使おうと思ったらプロキシの設定をしていなかった...。

## 方法1:Proxyman
プロキシの設定を自動で設定してくれるやつです。
僕は普段これを使ってプロキシ設定を切り替えています。

[himanshub16/ProxyMan](https://github.com/himanshub16/ProxyMan)

### インストール
Cloneしてフォルダ内にある`install`を実行

```
$ sh ProxyMan-master/install
```

これでパスが通る。

### 設定
まずは設定。

```
$ proxyman set
```

### 適用
設定でつけたプロファイルの名前でloadする

```
$ proxyman load PROFILE_NAME
```

### 解除

```
$ proxyman unset
```

## 方法2:/etc/profile.d/にプロキシ設定用シェルスクリプトを書いて置く
先輩はこれでプロキシを通しているとお話を聞いた。
念のため、`.bashrc`にも書いているそうだが、これを置くことでsudoでもプロキシが有効になる。
`/etc/profile.d/`のディレクトリの役割について調べると面白い。

```sh:/etc/profile.d/set_proxy.sh
#!/bin/sh
export http_proxy="http://username:password@proxy:8080/"
export https_proxy=$http_proxy
```

実行権限を与えて、再起動すればプロキシが有効になる。

```
$ sudo a+x set_proxy.sh
```

## Chrome用 Proxy設定 

Proxymanでプロキシを通しても、Chromeではプロキシが通らなくて悩みました。

### 方法1:オプション指定して起動させる
[How to make Chrome user proxy server on ArchLinux](https://superuser.com/questions/1207067/how-to-make-chrome-user-proxy-server-on-archlinux)
これが使えるので、プロキシ環境下用Google Chromeの起動スクリプトを書く。

`~/.local/bin/`にスクリプトを配置すればコマンドパスが通る。
なので、ここに`google-chrome-enable-proxy`を作成して、実行権限を与えておけばOK

```shell:google-chrome-enable-proxy
#!/bin/bash
/usr/bin/google-chrome-stable --http-proxy=xxxx.net:8080 --https-proxy=xxxxx.net:8080 %U
```

後は、Proxymanでプロキシを通した上で、ターミナルからスクリプトを実行すれば、
プロキシ設定が適用されたChromeが**一応**起動できる。

### SwitchySharp
拡張機能でプロキシを通すという方法もある。

[Proxy SwitchySharp](https://chrome.google.com/webstore/detail/proxy-switchysharp/dpplabbmogkhghncfbfdeeokoefdjegm?hl=ja)


## pacmanにプロキシ設定を渡す
`-E`オプションを使用する。アップデートするなら以下のようになる。
**やらなくても、/etc/sudoersに記述する方法でいけることがわかった**
[yayにプロキシ設定を渡す](https://qiita.com/Hiroya_W/items/99c73dd29e88762b2d5c#yay%E3%81%AB%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7%E8%A8%AD%E5%AE%9A%E3%82%92%E6%B8%A1%E3%81%99)を読んでください。

```
$ sudo -E pacman -Syu
```

## yayにプロキシ設定を渡す
yayはpacmanのように`sudo -E`が使えない

~~デフォルトで書き換えの権限がなかったので、一時的に権限を与えた後で書き換えました。~~
~~(大丈夫なのかな...？)~~

`/etc/sudoers`を編集する場合は、`/etc/sudoers`を修正するために用意されている`visudo`コマンドを使うべきである。
>visudo は sudoers ファイルをロックし、一時ファイルに編集内容を保存して、それを /etc/sudoers にコピーする前にファイルの構文をチェックします。

環境変数の`EDITOR`に指定されているエディタが使用されるため、以下のように実行すればvimで`/etc/sudoers`を修正できる。

```
$ sudo su
# EDITOR=vim visudo
```

```text:/etc/sudoers
Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"
```


これで、pacmanも`-E`なしでプロキシが通るようになる。


# nihongo入力の設定
mada nihongo utenai

```
# sudo pacman -S fcitx-im fcitx-configtool fcitx-mozc fcitx-gtk2 fcitx-gtk3 fcitx-qt5
```

```~/.xprofile
export LANG="ja_JP.UTF-8"
export XMODIFIERS="@im=fcitx"
export XMODIFIER="@im=fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export DefaultIMModule=fcitx
```

自動で起動するようにする

```~/.i3/config
# Autostart applications
exec --no-startup-id fcitx
```
再起動すれば日本語が打てるようになる

# 日本語フォントの適用
adobe-source-han-sans-jp-fontsを使います

```
$ sudo pacman -S adobe-source-han-sans-jp-fonts
```

ファイル書き換えでやる方法がわからなかったので、設定ツール`bmenu`から。

1. Ctrl + Mod + b
1. 4 Appeearance
1. 3 Set font
1. Source Han Sans JP Normalを選ぶ

再起動する

# 絵文字を入力、表示したい
[Linux とかでも Unicode 絵文字を表示するためのフォント](https://qiita.com/polamjag/items/7295a15fca6a9eeb5d84)

>余談ですが、mozc は簡単に単語から絵文字へ変換できます (例: すし で変換して :sushi: を出せる)

やりたいでしょ？

```
$ sudo pacman -S noto-fonts-emoji
```

して再起動。


# 音が出ない
Youtubeで動画を見ようとしたら音が出なかった...。

## PulseAudioのインストール

```
$ sudo pacman -S pulseaudio
```

再起動

## 右下のアイコンから操作できない
音は鳴ったのに調節できない...。

アイコンを右クリックしPreferences
ChannelsからAlsa Deviceを`HDA Intel PCH`に変更。

## ミキサー
### pavucontrol
PulseAudioのフロントエンド GUI ミキサーがあるので、それを入れる。

```
$ sudo pacman -S pavucontrol
```

### TUIのミキサーもある

```
$ alsamixer
```
F6を押してサウンドカード`HDA Intel PCH`を選択


# conky
いわゆるウィジェットを追加するやつ。
日付を表示しているものとショートカットを表示しているやつもコレです。

## 右上の文字化けしてるやつ
### 方法1:日本語フォントに対応させる
インストールした日本語フォント`Source Han Sans JP Normal`を指定して、
フォントを書き換える。以下サイトを参考に。

[Linux - Manjaro - 18.0 - i3wm - 基本操作 - conky 設定](https://freebsd.sing.ne.jp/linux/10/03/08/02/12.html)

### 方法2:日本語フォントを含まない表示にする
または、起動スクリプト内のコマンドの前に`LC_ALL=C`をつけて
localeを変えることで対策もできる。

起動スクリプトは`/usr/bin/start_conky_maia`でこいつを

```bash
#!/bin/bash

LC_ALL=C conky -c /usr/share/conky/conky1.10_shortcuts_maia &&
LC_ALL=C conky -c /usr/share/conky/conky_maia &&

exit 0
```

こう書き換える。この場合はフォントは書き換えなくていい。後は再起動。

### 方法3:いっそのこと表示から消してしまう
僕はこれです。代わりに別の好きなやつを表示したかったので。
`~/.i3/config`に起動スクリプトを実行する記述があるので、それをコメントアウトする。

```~/.i3/config
# exec --no-startup-id start_conky_maia
# exec --no-startup-id start_conky_green
```

## lua + nvidiaサポート付きconky
プリインストールされてるのは通常のconkyなので、luaやnvidiaサポートのついたものを入れなおす。

```
$ yay -S conky-lua-nv
$ conky -v

...
 Lua bindings:
  * Cairo
...
```

conky -v でluaの一覧が表示されること、その中にcairoが入ってることを確認する。
基本的にこれが必要になってくる。


## 自分で追加する
[Browse conky](https://www.deviantart.com/tag/conky?order=popular-all-time)

かっこいいのがいっぱいある。今はログインしないとダウンロードできないっぽい？

[Linux Mint 18.3 : Conky をインストール・自動起動・変数リスト](http://baker-street.jugem.jp/?eid=85)

僕は[Conky Rings - Revamped](https://www.deviantart.com/trollpunny/art/Conky-Rings-Revamped-591137228)ってのを使ってます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/327cc035-4870-e323-ca48-015e142fd36e.png)


conkyrc(今回なら`rings`,`cpu`というファイルがこれに当たる)を実行すればOKなので、
`~/.i3/config`などに書く。

``` ~/.i3/config
exec --no-startup-id LC_ALL=C conky -c ~/.conky/conky_rings/rings
exec --no-startup-id LC_ALL=C conky -c ~/.conky/conky_rings/cpu
exec --no-startup-id LC_ALL=C conky -c ~/.conky/conky_rings/mem
exec --no-startup-id LC_ALL=C conky -c ~/.conky/conky_rings/notes
```

追加したいウィジェットは、conkyrcファイルを直接編集して、

```
own_window_type override
```

に書き換えておかないと、表示位置を変更することができないかも。
とりあえず、書き換えておこう。
[参考:Conky manager with i3wm](https://www.reddit.com/r/unixporn/comments/51m9ll/conky_manager_with_i3wm/)

## ウィジェットに影がついてるな？
影がついてしまうので、つかないように設定したい。
影や透明化を行う`compton`の仕業です。
compton.confにshadow-excludeに追加する

```~/.config/compton.conf
shadow-exclude = {
    "i:e:Conky",
    "class_g = 'Conky'",
    "override_redirect",
}
```

一度`Mod + t`でcomptonを無効にしてから
`Ctrl + Mod + t`で有効にすれば適用される。

## conky-manager
簡単にconkyウィジェットを追加できるやつ。

```
$ conky-manager
```

で起動できる。


# 壁紙の設定
`feh`を使う方法がいっぱい書いてある。

`nitrogen`っていうGUIのツールもある。

時間で変わるようにするとかは`nitrogen`は無理っぽいけど、変えられればOKなのでこれで。

```
$ sudo pacman -S nitrogen
$ nitrogen
```

起動したら、`preference`から、`Directories`に画像が入っているフォルダを追加する。
例えば、`/home/User/Pictures/backgrounds`など。
後は、画像を選んで、`Apply`でOK。


## ログイン画面の壁紙
[LightDM](https://wiki.archlinux.jp/index.php/LightDM)というデスクトップマネージャーがデフォルトで入っている。
また、それ用の設定GUIは以下コマンドで起動できる。

```
$ lightdm-settings
```

後は、背景画像を変更するだけ。

他の細かい設定をしたいときは、以下の設定ツールを入れるといいかも。

```
$ sudo pacman -S lightdm-gtk-greeter-settings 
```

## 悩む...。
どのconkyを配置しようかな...。
今こんな感じに、とりあえず配置してみて眺めてます。
![2019-07-31-172959_1920x1080_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/c966649e-4399-e720-024d-d09c2661e33d.png)


# Polybar
i3 barをかっこよくしたいんじゃ！

[GTK+のAdapta-Noktoが気に入りすぎてPolybarテーマを作った](https://qiita.com/matoruru/items/ab491eac6b2b74e3ce3b)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/3eeaaa37-3999-1cc7-8834-f7c1bf52eaaf.png)

めっちゃすごい（語彙力）

## フォントのインストール
フォント入ってないので、そのままだと表示が崩れると思う。

```
$ sudo pacman -S ttf-fantasque-sans-mono
$ yay -S nerd-fonts-iosevka
```

## インストール
まずは本体。

```
$ yay -S polybar
```

次に、先ほどのありがたいPolybarテーマを入れていく。

この記事の手順で進めてきたならgitの設定していないので、[ここ](https://github.com/matoruru/polybar-adapta-theme)から、
`Download ZIP`してもOK。
zipファイル展開して、`polybar`フォルダを`~/.config/`にコピーする作業をする。

gitが使える状態なら以下のコマンドで。

```
$ cd ~/Downloads
$ git clone git@github.com:matoruru/polybar-adapta-theme.git
$ cd polybar-adapta-theme
$ cp -r polybar ~/.config/
```

起動用スクリプトを修正。

```sh:~/.config/polybar/launch.sh
#!/bin/bash

# Terminate already running bar instances
killall -q polybar

# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 0.1; done

# Launch bar
polybar main -c $HOME/.config/polybar/config &

echo "Bars launched..."
```

この起動用スクリプトに実行権限与えておく必要があったかも。

```
$ chmod +x $HOME/.config/polybar/launch.sh
```

自動で起動するように`~/.i3/config`に書いておく。

```~/.i3/config
exec_always --no-startup-id LC_ALL=C bash $HOME/.config/polybar/launch.sh
```

同時に、`i3 bar`の表示を無効にしておく。

```~/.i3/config
# 以下をコメントアウト
# bar {
#     i3bar_command i3bar
# ...
# }
```

再起動すれば

一部のモジュールでエラーが表示されていたので、僕の場合はこんな感じに修正。

```config:config
[module/volume]
type = internal/pulseaudio

[module/battery]
battery = BAT0
adapter = AC
```

電源メニューが機能していなかったので
[module/powermenu question](https://github.com/polybar/polybar/issues/655)
ここを参考に、メニューを作成。

現在のワークスペースの番号を表示するのも追加。
[polybar/polybar Home](https://github.com/polybar/polybar/wiki)

僕はこんな感じ[(config - Github Gist)](https://gist.github.com/Hiroya-W/908725886d8d7af8d4ee26edb8032e84)にして使わせていただいています。
記事トップに出てきたSSの状態がこのconfigになる。

# rofi
`Mod + d`で起動する`dmenu`というランチャーが入ってます。
polybarでも使えるけど、どうせなら使いやすいランチャーがほしい。
ということで、`rofi`を導入。

```
$ sudo pacman -S rofi
```

ユーザのテーマは[davatorium/rofi-themes](https://github.com/davatorium/rofi-themes)にある

この中のsidetabが良い。とても良い。あとは透明にしておけばOK。採用。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/11a24953-b6a5-71ca-fa0d-8888b8688c76.png)

rofiのテーマファイル`sidetab.rosi`
起動用スクリプト`rofi_launch.sh`を作成し、
`~/.config/rofi/`に配置する。
中身はこんな感じに記述。

```shell:~/.config/rofi_launch.sh
#!/bin/bash

rofi -modi "window,run,ssh,drun" -show drun -disable-history -theme ~/.config/rofi/sidetab
```

スクリプトには実行権限与えておく。

```
$ chmod +x ~/.config/rofi/rofi_launch.sh
```

ショートカットを`dmenu`から`rofi`を起動するように変更する。
先ほどの起動用スクリプトを起動するようにすればOK。

```~/.i3/config
bindsym $mod+d exec --no-startup-id ~/.config/rofi/rofi_launch.sh 
```

透明化したいので、色を少し変更する。
rgbaで書けば、透明度が指定できる。

```~/.config/rofi/sidetab
background-color:            #08080888;
actbg:                       #50505088;
normal-background:           #00000000;
```

# Comptonでスケスケデスクトップを作ろう
[Linuxに移行した話](http://crocus7724.hatenablog.jp/entry/2018/01/04/045559)
[Comptonの設定を晒す](https://qiita.com/ssh0/items/3d335808b52b7018a1dc)

ターミナルとかの透明度を変更できるようになる。
画面遷移のときにフェードがかかるような設定にもできるみたい！！すっげぇ！
参考記事から`compton.conf`をお借りして`~/.config/compton.conf`に書き込みます。

この設定そのままに、`shade-excludes`や`opacity-rules`に
ウィンドウクラスを追加していく感じで使ってます。

`Mod + Ctrl + t`でcomptonの起動
`Mod + t`でcomptonの終了
が既に用意されています。

## ウィンドウクラス名の取得
`xprop`コマンドを叩き、

```
$ xprop
```

ウィンドウをクリックすると、情報を取得してくれます。
あとは、ウィンドウクラスの名前を`opacity-rule`に追加すれば透明化できちゃう

# Grubテーマ
[vinceliuice/grub2-themes](https://github.com/vinceliuice/grub2-themes)

こちらのTela grub themeを試してみます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/da96b0f8-a239-b5be-619a-e8c35ef2dd31.png)

Gitでリポジトリをcloneしてインストールスクリプトを実行する。
`-t`で`Tela`テーマが有効になるらしい。

```
$ git clone git@github.com:vinceliuice/grub2-themes.git
$ cd grub-themes
$ sudo ./install -t
```

めっちゃかっこいい！！

# 起動時にBoot Logの表示
Linuxにするならこれはやらないといかん。

```
$ sudo vim /etc/default/grub
```

GRUB_CMDLINE_LINUX_DEFAULTからquietを削除

```text:grub
GRUB_CMDLINE_LINUX_DEFAULT="resume=~"
```

```
$ sudo update-grub
```

# ターミナル
デフォルトで`rxvt-unicode`が入っています。
超軽量で爆速起動が出来るのですが、Color Schemeの対応が必要です。
(VimはTrue Colorでテーマが組まれているが、`rxvt-unicode`は256 Colorにしか対応していないので、表現できない色があるからテーマが崩れる。)
ので、一旦別のターミナルを使用することにします。

## terminator
ってことで`terminator`を入れる

```
$ sudo pacman -S terminator
```

```config:~/.i3/config
# start a terminal
bindsym $mod+Return exec terminator
```

最後に`Shift + Mod + c`でコンフィグをリロードする。

環境変数の`terminal`を見てるっぽいので、そちらを変えてもいけるはず。

### terminatorの赤い枠の主張が激しい
terminatorを起動して、右クリックから`設定`を開く。
ターミナルタイトルバーの背景の赤を変更する
もしくは、プロファイルから`タイトルバー表示`のチェックを外す

タイトルバーなくすとスッキリしたので私はこれ。

## terminatorの透過
設定、プロファイル、背景から
背景を透過にチェック。私は0.60くらい。

comptonが起動してないと有効にならない。

# かっこいいターミナル
[お前らのターミナルはダサい](https://qiita.com/kinchiki/items/57e9391128d07819c321)
これを読んで気が付かされた。よく見たらダサかった...。

## 方法1:zsh + Powerlevel9k
まずは`bash`から`zsh`に切り替える。

[Ubuntuのシェルをzshに変更する](https://qiita.com/sayama0402/items/ac9e078b024c3287f99f)
お手軽変更！

```
$ chsh -s $(which zsh)
```
起動したら初期設定のウィザードが表示されると思うけど、
.zshrcを自分で書き換えるのでblankで作成。

Powerlevel9kによる素晴らしい`.zshrc`をお借りする
[Show Off Your Config](https://github.com/Powerlevel9k/powerlevel9k/wiki/Show-Off-Your-Config)
感謝しかない。

これを借りました。
[tonylambiris/dotfiles](https://github.com/tonylambiris/dotfiles)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/99f8b611-2e91-8b13-58ae-7b26858d6846.png)

かっこよすぎる！！！！

## 方法2:bash + Starship
[Bashのプロンプトを超絶おしゃれにする Starship を紹介](https://qiita.com/unhappychoice/items/3b774310d95e2124eb77)

インストール方法はReadmeにも書いてある。
[Starship README.md](https://github.com/starship/starship/blob/master/docs/ja-JP/guide/README.md)

- インストール用シェルスクリプトを使う方法
- `cargo`を使う方法
- `yay`を使ってAUR経由でインストールする方法

どれでも手軽なのが良き。
後はReadme見ながら、初期化のためのスクリプトをシェルの設定ファイルに追加する。

また、`Nerd Fonts`フォントが必要になるので、インストールしておきましょう。例えば`yay`でも入れられる。

```
$ yay -S nerd-fonts-iosevka
```

## おまけ
Rust製のおしゃれなコマンド達があるので、おすすめ。
[ls よりも exa を使おう！モダンな Linux コマンド達を紹介](https://qiita.com/navitime_tech/items/c249269a3b47666c784b)

# 回復ポイントの作成
`Timeshift`というのがあるので、それを使う。

```
$ yay -S timeshift
```

起動して、初期設定のウィザードだけ済ませておきます。

僕は、設定は何も変えていません。
ルートのパーティションに作成したので、`/timeshift`というフォルダが用意されて管理されます。

放置すれば、1日1回バックアップされます。

# スクリーンショット
`Shutter`が使いやすかった

```
$ yay -S shutter
```

## フローティングウィンドウで起動させる
i3wmのタイル管理が良いのですが、このアプリに限っては、
フローティングウィンドウの方が使い勝手がいいと思うので、変更します。

```
$ xprop
```

でウィンドウのクラスを取得して、設定に書き込む。

```~/.i3/config
for_window [class="Shutter"] floating enable
```

最後に`Mod+Shift+C`で設定を再読込。


# キーレイアウト
[ホームポジションを崩さないタイピングがしたくて3週間Colemak配列を触ってみた](https://qiita.com/Hiroya_W/items/28c2a44520e8bf17ac65)
こんな記事書いて、今は`Colemak配列`じゃなくて`Eucalyn配列`っていうのを使ってます。
設定も記事に記載してますが、こちらにも。

キーコードと現在割り当てられているキーの情報を表示

```
$ xmodmap -pke | less
```
変更前の状態(~/.Xmodmap_old)と変更後の状態(~/.Xmodmap)を記載するファイルを作成し、
ファイルに以下のように書き込む。

``` :~/.Xmodmap
!Eucalyn

keycode 24 = q Q q Q
keycode 25 = w W w W
keycode 26 = comma less comma less
keycode 27 = period greater period greater
keycode 28 = semicolon plus semicolon plus
keycode 29 = m M m M
keycode 30 = r R r R
keycode 31 = d D d D
keycode 32 = y Y y Y
keycode 33 = p P p P
...
```
適用させる。

```
$ xmodmap ~/.Xmodmap
```
再起動しても設定は維持されます。

# ショートカットキーの調整
## Shift + Mod + qで指がつる
[i3 Window Manager を使ってみて分かったおすすめ設定集](https://qiita.com/gyu-don/items/d61b03e0222a7f1ce9f7)

>Alt+F4がベストかは諸説あるかもしれませんが、デフォルトのウィンドウを閉じるキーバインドはMod+Shift+Qと、手がつりそうになるキーバインドのため、デフォルトとは別で使いやすいものを設定した方がいいような気がしています。

`Alt + F4`で無事、定着した。

```
bindsym Mod1+F4 kill
```

設定ファイルの再読込
`Mod + Shift + c`

## focusの切り替え
通常は

```
Mod + j focus left
Mod + k focus down 
Mod + l focus up
Mod + ; focus right
```

となっていて、Vimよりも左に一つずれて配置されています。
というのも、

```
Mod + h split horizontally
```

が割り当てられているからです。

僕の場合は、Vimの配置で使いたいので、変えます。
(変えなくてもいいなら別に変えなくても問題は無いので読み飛ばしてほしい)

```~/.i3/config
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+h focus left
bindsym $mod+l focus right

bindsym $mod+semicolon split h;exec notify-send 'tile horizontally'

bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+h move left
bindsym $mod+Shift+l move right

bindsym $mod+Ctrl+Shift+h exec xdg-open /usr/share/doc/manjaro/i3_help.pdf
```

---
今まで雑に書いて放置していたのに、多くの方にいいね、ストックしていただきました。
ありがとうございます。
1年経って、ようやく余計なものを省いて読みやすく修正したつもりです。
よろしくお願いします。