Mac の初期設定〜Python（pyenv）導入

# 目次
1. 目的
2. 環境
3. 各種設定・インストール<br>
    [3.1 トラックパッド設定](#31-トラックパッド設定)<br>
    [3.2 キーボード設定](#32-キーボード設定)<br>
    [3.3 dock 設定](#33-dock-設定)<br>
    [3.4 効果音設定](#34-効果音設定)<br>
    [3.5 ディスプレイ設定](#35-ディスプレイ設定)<br>
    [3.6 karaniner 導入](#36-karaniner-導入)<br>
    [3.7 clipy インストール](#37-clipy-インストール)<br>
    [3.8 chrome インストール](#38-chrome-インストール)<br>
    [3.9 iterm2 インストール・設定](#39-iterm2-インストール設定)<br>
    [3.10 Homebrew インストール](#310-homebrew-インストール)<br>
    [3.11 pyenv インストール](#311-pyenv-インストール)<br>
    [3.12 vscode インストール](#312-vscode-インストール)<br>
    [3.13 スクリーンショット保存先変更](#313-スクリーンショット保存先変更)<br>
    ~~~~~~~~~~~~ 2021/02/19 追加 ~~~~~~~~~~ <br>
    [3.14 Hotkey ダウンロード](#314-hotkey-ダウンロード)<br>
    [3.15 Magnet ダウンロード](#315-magnet-ダウンロード)<br>
    [3.16 google drive をローカルにマウント](#316-google-drive-をローカルにマウント)<br>
    [3.17 競技プログラミング環境(c++)作成](#317-競技プログラミング環境c作成)<br>
4. 終わりに

# 1. 目的
故障した Mac が初期化されて返ってきたので python 環境を構築しました。
同時にMac のデフォルト設定から変更も行いました。
その際に行った各種設定、インストール等の手順を備忘録として残します。

# 2. 環境
- MacOS Catalina(10.15.7)
- キーボード：USボード

# 3. 各種設定

## 3.1 トラックパッド設定
はじめに、ポインタの動きが遅くストレスフルなため、トラックパッドの設定を変更します。
「３本指でドラッグ」を有効にしたいので、スワイプ等は基本4本指で操作するよう設定します。

- トラックパッド設定（システム環境設定>トラックパッド）
    - ポインタとクリック
        - 起動の速さ：速い
        - 調べる＆データ検出：３本指でタップ
        - タップでクリック：１本指でタップ
    - その他のジェスチャ
        - ページ間をスワイプ：チェック外す
        - Mission Control：４本指で左右にスワイプ
        - アプリケーションExpose：4本指で下にスワイプ
- ３本指でドラッグの設定（システム環境設定>アクセシビリティ>ポインタコントロール）
    - ポインタコントロール>トラックパッドオプション
        - ドラッグを有効にする：３本指のドラッグ

## 3.2 キーボード設定
キーのリピートが遅いため短くします。
同時にキーボードの入力に日本語を追加します。

- キーボード設定（システム設定>キーボード）
    - キーボード
        - キーのリピート：速い
        - リピート入力認識までの時間：短い
    - 入力ソース
        - 日本語を追加

## 3.3 Dock 設定
Dock が常に表示されないよう変更します。
同時に初期設定で登録されているアプリはほぼ使わないので、finder 以外 dock から削除します。

- Dock 設定（システム環境設定>Dock）
    - Dockを自動的に表示/非表示：チェック
    - ウィンドウをアプリケーションアイコンにします：チェック外す

## 3.4 効果音設定
ファイル等を削除したときに逐一効果音が出てストレスフルなため、効果音を出さないようにします。

- 効果音設定（システム環境設定>サウンド）
    - サウンドエフェクト
        - ユーザインターフェイスのサウンドエフェクトを再生：チェック外す

また、次のコマンドで起動音を消します。

```
sudo nvram StartupMute=%01
```

## 3.5 ディスプレイ設定
初期状態ではディスプレイをオフにするまでの時間が短い（確か５分）ため伸ばします。
私は３０分に設定しています。

- ディスプレイ設定（システム設定>省エネルギー）
    - ディスプレイをオフにするまでの時間：20分
    - 可能な限りハードディスクをスリープさせる：チェック外す

## 3.6 karaniner 導入
USボードで日本語入力に切り替えるのは初期設定だと少しめんどくさいので早いうちにkarabinerをインストールします。
こちらのサイトを参考にしてください。

- [Mac で US キーボードを使用し日本語入力を「 Karabiner 」で切り替える方法](https://dyny001.net/install-karabiner/)

## 3.7 clipy インストール
clipy はクリップボードの履歴を残すことができる非常に使い勝手の良いアプリです。
使ってない方には非常におすすめです。
次のサイトを参考にインストールを行います。

- [【MAC】Clipyのダウンロードや使い方【作業の時短】](https://cocoro-re.com/it/clipy/)

## 3.8 Chrome インストール
こちらはお好みですが、Chrome を愛用しているのでインストールします。
https://www.google.com/chrome/

## 3.9 iterm2 インストール・設定
iterm2 の hotkey は至極便利で使いたいのでインストールします。
以下のサイトを参考にインストール・各種設定を行います。

- [iTerm2のおすすめ設定〜ターミナル作業を効率化する〜](https://qiita.com/ruwatana/items/8d9c174250061721ad11)
- [iTerm2のHotkeyを使わないなんてもったいない！！](https://qiita.com/okamu_/items/a5086d2d5ba405f35acb)


次に、シェルを zsh に変更します。Catalinaになってから??コマンド一つでzshに切り替えが可能になっています。

```
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
```

次に、プロンプトの設定をします。
好みですが、私は以下のように表示されるよう変更しています。

- コマンド実行後に改行を挟む
- 時間を表示
- カレントディレクトリを緑色
![スクリーンショット 2020-11-24 22.25.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349293/c80e1fd4-212e-8862-324e-370e19154f59.png)

.zshrc を作成し、以下を記述します。

```shell:.zshrc
# prompt
PROMPT='
%*
%F{green}[%~]%f %# '
```

また、個人的に cd をしたときに 同時に ls をしたいので 次のように関数を書いてエイリアスを貼ります。

```shell:.zshrc
# cdls
function cdls() {
  \cd "$@" && ls
}
alias cd=cdls
```

## 3.10 Homebrew インストール
Homebrew をインストールします。

```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```

## 3.11 pyenv インストール

pyenv をインストールします。

```
brew install pyenv
brew install xz # lzma
```

.zshrc に以下を記述します。

```shell:.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
```

pyenv を使ってpython をインストールします。

```
pyenv install 3.7.5
```

## 3.12 VScode インストール
python のインストールは時間がかかるので、その間に vscode をインストールします。
次のサイトを参考にしてください。

- [MacOSでVisual Studio Codeをインストールする手順](https://qiita.com/watamura/items/51c70fbb848e5f956fd6)
- 拡張機能については以下のものを入れます
    - C/C++ : c++の予測変換等
    - Code Runner ： c++ のコンパイル→実行のため
    - Prettier： コードのフォーマット
    - Pylance： linter. 秀逸。
    - Python： python の予測変換
    - Python Docstring Generator：docstring の自動生成
    - Trailing Spaces：不要なスペースの表示
    - zenkaku：全角スペースの表示
- その他設定
    - format on save　→　on

- python linter 設定
    - https://qiita.com/psychoroid/items/2c2acc06c900d2c0c8cb
- pylance 設定
    - https://qiita.com/simonritchie/items/33ca57cdb5cb2a12ae16

### 以下、便利と思ったもの追記(2021/02/19)
## 3.13 スクリーンショット保存先変更
スクリーンショットの保存先を変更します。保存先は「 /User/xxx/temp/ScreenShot/」とします。

```
$ mkdir ~/temp/ScreenShot
$ defaults write com.apple.screencapture location ~/temp/ScreenShot/;killall SystemUIServer
```

## 3.14 Hotkey ダウンロード
Hotkey を使用することで普段よく使うアプリをショートカットで呼び出せるようにします [参考](https://irilyuu.com/mac-ios/mac/app-hotkey-app/)

## 3.15 Magnet ダウンロード
Magnet はウィンドウをショートカットで左、右に寄せたり大きくしたりすることのできるアプリです。
500円かかりますが、買い切りで便利です。 [参考](https://misc-log.com/mac-magnet/)

## 3.16 google drive をローカルにマウント
google file stream をダウンロードします。ドライブをローカルファイルのように扱うことができるのでとても便利です。 [参考](https://support.google.com/a/answer/7491144?hl=ja#zippy=%2Cmac)

## 3.17 競技プログラミング環境(c++)作成
c++ でコードを書くのですが、vscode上でショートカットでコンパイル→実行をするようにします。
gccをダウンロードしたり、code runner の設定をします。　

- gcc のインストール

```
brew install gcc
```

- シンボリック作成

```
# g++-10の部分はインストールしたバージョンを確認する
ln -s /usr/local/bin/g++-10 /usr/local/bin/g++
```

[参考](https://qiita.com/EngTks/items/ffa2a7b4d264e7a052c6)

- code runner のショートカット変更方法<br>
```code → prefarence → keyboard shortcut → Run code```

# 4. 終わりに
これにて、python環境が整いました。環境にもよりますが、私は１時間掛からず終えました。
他にも AWS SDK, GCP SDKのインストール等行いましたが、とりあえず、最低限のpython環境のまとめということで、記述はしませんでした。
各種インストールの部分は他のサイトを存分に参考にさせていただきました。ありがとうございます。


# 参考
[Mac で US キーボードを使用し日本語入力を「 Karabiner 」で切り替える方法](https://dyny001.net/install-karabiner/)
[【MAC】Clipyのダウンロードや使い方【作業の時短】](https://cocoro-re.com/it/clipy/)
[iTerm2のおすすめ設定〜ターミナル作業を効率化する〜](https://qiita.com/ruwatana/items/8d9c174250061721ad11)
[iTerm2のHotkeyを使わないなんてもったいない！！](https://qiita.com/okamu_/items/a5086d2d5ba405f35acb)
[MacOSでVisual Studio Codeをインストールする手順](https://qiita.com/watamura/items/51c70fbb848e5f956fd6)