個人的 Linux 環境のセットアップ事項 (Pop!_os, fish, font, mozc, anyenv)

# 初めに

個人的に Linux環境を作るときに、必ずするセットアップ事項をまとめてみました。
USキーボードを利用しているため、日本語と英字切り替えをCapslockで操作するようにしたりしています。
備忘録です。

# 1. OS

[Pop!_os](https://pop.system76.com/) から、ISO をダウンロードする。

通常はLTS、NVIDIA系GPUを搭載している場合は、NVIDIAを選択する。raspberry pi の場合は、RAS PI を選択する。

<font color="Red">セキュアブートは無効にする</font>

| platform | version |
| --- | --- |
| default | LTS |
| NVIDIA GPU | NVIDIA |
| Raspberry PI | RAS PI |

また、[Rufuse](https://rufus.ie/ja/) 等を用いてUSBに焼いて、適当にインストールする。

言語を英語にしてインストールする。

Welcome Setting 事項

1. Dock dosen't extend to edges
1. Date & Time and Notifications Position -> Right
1. Time Zone -> Tokyo

# 2. Chrome

言わずもがな `Chrome` を入れます。
Pop os の場合は、`.deb` をクリックするだけでインストールできました。

https://www.google.com/chrome/

# 3. 日本語化

英語でセットアップした場合は、日本語化します。

1. Settings
1. Region & Language
1. Language -> Japanease
1. Formats -> Japan
1. Restart
1. フォルダー名の更新は、「次回から表示しない」にチェックを入れて、「古い名前のままにする」を選択する

<details><summary>3で、言語が選択できない場合</summary><div>

言語がインストールされていないので、インストールします。

1. Manage Installed Languages
1. The language support is not installed completely -> Install
1. Install / Remove Languages -> Japanease -> Apply

</div></details>

<details><summary>日本語で設定した場合</summary><div>

環境は日本語になっているが、各ディレクトリ名が日本語になっていてターミナルで操作しずらいので、英語に変えます。

```
LANG=C xdg-user-dirs-update --force
rm -r ダウンロード テンプレート デスクトップ ドキュメント ビデオ ピクチャ ミュージック 公開
reboot
```
フォルダー名の更新は、「次回から表示しない」にチェックを入れて、「古い名前のままにする」を選択する

</div></details>

# 4. fish

fish shell をインストールする。
bashよりも使いやすいのでこれを使います。

## fish

```bash:bash
$ sudo apt-add-repository ppa:fish-shell/release-3
$ sudo apt update
$ sudo apt install fish

$ which fish
/usr/bin/fish

$ chsh
    パスワード: 
    ------ のログインシェルを変更中
    新しい値を入力してください。標準設定値を使うならリターンを押してください
    ログインシェル [/bin/bash]: /usr/bin/fish

reboot
```

## fisher

fishのパッケージマネージャー

```bash:fish
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
```

## Theme

fish のテーマをインストール

```bash:fish
fisher install oh-my-fish/theme-bobthefish
git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh
cd ../
rm -rf ./fonts
```

Termail フォント を、powerline font に変更

例：Source Code for Powerline、黒地に灰文字


# 5. 7zip

次のステップで使うので 7zipを入れます。

```fish
sudo apt install -y p7zip-full
```

# 6. Font

1. [Apple Fonts](https://developer.apple.com/fonts/) から、SF Pro, SF Mono をダウンロード

 ```bash
cd path/to/downloaded_font_directory

mkdir font_tmp

7z x SF-Pro.dmg
cd SFProFonts
7z x SF\ Pro\ Fonts.pkg
7z x Payload\~
cp Library/Fonts/* ../font_tmp
cd ../
rm -rf SFProFonts

7z x SF-Mono.dmg
cd SFMonoFonts
7z x SF\ Mono\ Fonts.pkg
7z x Payload\~
cp Library/Fonts/* ../font_tmp
cd ../
rm -rf SFMonoFonts
 ```

```bash
sudo apt update; sudo apt install -y font-manager gnome-tweaks
```

2. フォントマネージャーから、展開したフォント類すべてをインポート `font_tmp`
3. tweaks の font から、
インターフェイスのテキスト：　SP Pro Regular
等幅テキスト：SF Mono Regular
に変更

3. 再起動で適応

# 7. mozc

日本語入力をインストール

```fish
sudo apt install -y ibus-mozc mozc-utils-gui vim
```

```m:vim ~/.Xmodmap
! CapsLock -> Zenkaku/Hankaku
remove Lock = Caps_Lock
keycode 66 = Zenkaku_Hankaku
```

上記のマッピングファイルを作成することで、`xmodmap ~/.Xmodmap` コマンドを実行することで、キーマップが適応され、`CapsLock` が `半角/全角|漢字` キーになる。

また、起動時に自動でこのキーマップを適応するために、以下の `xmodmap.desktop` に `xmodmap` を設定することで、できるらしい。
が、実行の順番的に適応されないことが多発したため、不格好な適応方法をとっている。

以下、強引に設定を適応するものなので、自己責任でお願いします。

```:vim ~/.config/autostart/xmodmap.desktop
[Desktop Entry]
Type=Application
Exec=/home/<USER_NAME>/.xmodmap.sh
Hidden=false
X-GNOME-Autostart-enabled=true
Name=xmodmap
Comment=xmodmap script
```

```bash:vim ~/.xmodmap.sh
#!/bin/bash

start_time=$(date +%s)

while [ $(($(date +%s) - $start_time)) -lt 10 ]; do
  xmodmap ~/.Xmodmap
  sleep 1
done
```

```
chmod +x ~/.xmodmap.sh
```

起動して10秒間適応コマンドを自動で叩きまくるスクリプト (;^ω^)

# 3. anyenv

多くのenv系を管理できるやつ

```bash:fish
git clone https://github.com/anyenv/anyenv ~/.anyenv

set -Ux fish_user_paths $HOME/.anyenv/bin $fish_user_paths
echo 'eval (anyenv init - | source)' >> ~/.config/fish/config.fish

anyenv install --init
```

# References

https://launchpad.net/~fish-shell/+archive/ubuntu/release-3

https://manpages.ubuntu.com/manpages/xenial/ja/man1/chsh.1.html

https://github.com/jorgebucaran/fisher

https://github.com/oh-my-fish/theme-bobthefish

https://qiita.com/koji9412/items/7e2a15c330c387fc5b3b

https://zenn.dev/sawao/articles/0b40e80d151d6a

https://zcky878.hatenablog.com/entry/2020/06/07/183723

https://qiita.com/mizuhof/items/df6d3ea2868f56a43960

https://copyprogramming.com/howto/file-xmodmap-is-not-sourced-on-startup-in-18-04