パソコンを買ったらまずすること (Windows10 & Manjaro)

# はじめに
自分用のメモですが、こんなツールあったら便利だよ等どしどし教えてください！

# 前提
Windowsでは開発は行なわない。
どちらでもできることは基本的にManjaroで行う。
普段使いはManjaro。
Manjaroは日本語入力には対応させるが、環境は英語環境を使用。

# ハード
- thinkpad x1 carbon 2018 (US配列)

また家では、
- FHD × 2　外付けディスプレイ
- thinkpad USB type-C ドック (純正)
という環境で使い、thinkpad本体はクラムシェルモードとする。

# 手順
## Windows側の設定
 1. `Chrome, Dropbox, kewswap, Google日本語入力, Strokers Plus, tpmiddle, rufus, iTunes`をインストール
 2. Storkers Plus, Google日本語入力は設定ファイルをDropboxから持ってきて上書きする
 3. ManjaroのisoをrufusでUSBに焼く(ddモードで成功)

## Biosの設定
 1. `Secure boot`をoffにする
 2. `CMS`をonにする
 3. 再起動

## Windowsの復旧
 1. 再起動するとBitlockerのキーを要求されるので、MSアカウントにログインして取得し入力して回復
 1. 無事起動できることを確認

## Manjaroのインストール
 1. `Arch Wiki`を参考にthinkpad固有の問題を解決(英語版をみること)
  
## Manjaro側の設定
 1. `imwheel`をインストール
 2. `.config/autostart`以下に`shellscript.desktop`を作り、`imwheel`等自動起動したいコマンドを記述
 3. `fcitx-mozc`をインストール。skinには`material`をAURから落としてきて適用(現在なぜかskinの選択ができない）　なおIMEの切り替えは`右Alt`と`Insert`に割当(あとでCtrlと入れ替える)
 4. `chsh -s /bin/zsh`でzshに変更
 6.  壁紙を設定。4k用の画像を拾ってきて、`tweak`の`appearance`で`span`モードとすれば2画面全体に表示されて綺麗。
 5. `.zshrc`をカスタマイズ

```zsh:.zshrc
# fcitx
# Created by newuser for 5.6.2
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx



# zgen
# load zgen
source "${HOME}/.zgen/zgen.zsh"

# if the init scipt doesn't exist
if ! zgen saved; then

  echo "Creating a zgen save"

  # prezto options
  zgen prezto prompt theme 'paradox'
  zgen prezto '*:*' color 'yes'

  # prezto and modules
  zgen prezto
  zgen prezto archive
  zgen prezto git
  zgen prezto history-substring-search
  zgen prezto syntax-highlighting
  zgen prezto environment
  zgen prezto fasd
  zgen prezto autosuggestions
  zgen prezto completion
  zgen prezto pacman
  zgen prezto docker
  zgen prezto directory
  zgen prezto editor
  zgen prezto ssh
  zgen prezto python
  zgen prezto terminal
  zgen load mollifier/cd-gitroot

  # generate the init script from plugins above
  zgen save
fi


# env
export EDITOR=code
export BROWSER=chromium

unsetopt promptcr

# alias
alias py='docker run --rm --name pyglobal -it  -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) -v "$PWD":/work -p 8888:8888 pyglobal'
alias cdu='cd-gitroot'
alias ks="$HOME/Codes/Scripts/xkbswap.sh"
alias udk='sudo systemctl start docker'

# anyenv
if [ -d $HOME/.anyenv ]
then
    export PATH="$HOME/.anyenv/bin:$PATH"
    eval "$(anyenv init -)"
fi

export PIPENV_VENV_IN_PROJECT=1

```

 6. `guake`をインストールする。showショートカットは`Ctrl + '`にした。
 7. `xsel`コマンドをインストール
 7. `xkb`でキーボードリマップ。~~自動起動用のスクリプトを書くときは`sleep 1`を入れることでだいたいうまく行った。**`X`の起動を待つスクリプトを書けば、よりうまく行くかも。**　頻繁に設定がリセットされるので1分ごとにリマップを再実行するように`gnome`の`scheduled-task`を使用する。~~
    [こちら](http://www.tsurukawa.org/~yendo/blog/computer/141222-xkb.html)と[こちら](https://www.beatworm.co.uk/blog/keyboards/gnome-wayland-xkb)の2つのブログを参考にする。これらのブログには本当に感謝。`Ctrl`キーを押すとポインターロケーションを表示するオプションは`Gnome tweak`にてオフにしておく
 8. `Gnome Shell Extension`の設定。`Dash to Panel・Clipboard Indicator・Pomodoro`をインストールした。
 9. `Dropbox`を`pamac build dropbox`でインストール。pamacはGUIのパッケージマネージャだがこのようにCLIでも使える。pacmanレポジトリからダウンロードする際は`pamac install hoge`とすればよい。
 10. `libinput-gesture`を導入して、マルチジェスチャーに対応させる。
 11. `libinput`の感度を変更する。（~~デフォルトだと、スクロールがぶれて使いにくい。~~本当の問題はタッチパッド使用時に`imwheel`が動いてることが原因と発覚）
 12. [Ricty Diminished with Icon](https://github.com/iij/fontmerger/tree/master/sample) ・Noto Sans CJK JPをインストール
 13. `Settings.Privacy.ScreenLock.LockScreenAfterBlankFor`を適切な時間に設定。
 14. 縦置きモニタのティアリングを治す。[InterHDのArchWiki](https://wiki.archlinux.org/index.php/Intel_graphics#Tearing)を参考に、パフォーマンスの低下を招く可能性があるのであまり気が進まないが、試行錯誤しても他の方法では無理だったので、Wikiのとおりにした。

## 開発環境の設定
全てManjaro上に構築する。
1. `git`の設定をする。globalのconfigは`~/.gitignore_global`に定義
2. 適宜AURを使いながら`Docker・JetBrainsToolBox・VSCode`をインストール
3. `anyenv→pyenv→pipenv`の順にインストール。
4. `JetBrains IDE`と競合するgnomeキーバインディングを適宜Disableする

## JetBrains IDEの設定
1. `Material UI`というthemeを採用。color schemeは`idea-one-dark-theme`をgithubからダウンロードしてきた。

## 再びWindows側の設定
Manjaro側でBluetoothマウスをペアリングしたことによりマウスが効かなくなっているはずなので、最ペアリングし`Pstool`を用いてレジストリからキーを見つけだし、Manjaro側の値を変更する。

#　問題
- `iTunes`がWindowsじゃないと使えない
- ~~外付けディスプレイを使う際にtearingがひどい~~
- ~~1分ごとにキーボードリマップしても、リセットされることがある。~~
- ~~クラムシェルモード時にスリープにすると、たまに勝手に復帰する(スリープ直後に多い)~~[この記事を参考に解決](https://wiki.archlinux.jp/index.php/サスペンドとハイバネート#.E3.82.B5.E3.82.B9.E3.83.9A.E3.83.B3.E3.83.89.E3.81.8B.E3.82.89.E3.81.99.E3.81.90.E3.81.AB.E5.BE.A9.E5.B8.B0.E3.81.99.E3.82.8B)
- thinkpad固有の問題がしっかり解決できているのか不明