Mac を買ったら必ずやっておきたい初期設定

# Mac 初期設定

## 対象読者

- 知り合いのエンジニアさん向け
- Mac初めて買った人
- Web系エンジニア向け

## 環境

- macOS Catalina 10.15.3
- MacBook Pro (13-inch)

## 前置き

- 導入ツールについては良く使うものに厳選してます。
- CLI ツールや GUI ツールは必要になってから入れた方がいいかも。
- zshの設定、tmuxの設定、vimの設定は別記事にする予定です。
  - 古いですがzsh設定の記事です。 https://qiita.com/ucan-lab/items/1794940a64882021dcb1
- 設定ファイルのインストール自動化は別記事にします。
  - 私とまったく同じ設定にしたい人はいないと思うので今回は個別インストール記事にしてます。

(一通り書き殴っただけなので、追記するかも)

## 最初にやること

- ソフトウェア・アップデート
  - (appleマーク) > このmacについて > ソフトウェアアップデート
- App Store
  - (appleマーク) > App Store > すべてアップデート

## ターミナル設定

- `Command` + `スペース` Spotlight検索ウィンドウに「ターミナル.app」
- ターミナル起動
- `Command` + `,` で設定画面を開く
- 一般 > プロファイル > 好きなプロファイルを選択する
  - おすすめは Pro をベースにプロファイルを複製する
- 一般 > プロファイル > テキスト
  - テキストをアンチエイリアス処理 をチェックする
- 一般 > プロファイル > テキスト > フォント
    - 下記のコーディング用フォントをおすすめ
    - Monaco (Mac標準フォント)
    - Ricty Diminished (導入手順を後述)
    - Source Han Code JP (導入手順を後述)
    - 文字間隔、行間隔をお好みで設定する

## シェルの確認

```
$ echo $SHELL
/bin/zsh
```

macOS Catalinaからデフォルトシェルがbashからzshに変更されました。
今回は特にシェルの設定は行いません。

### 隠しファイルを表示する

```
$ defaults write com.apple.finder AppleShowAllFiles -boolean true

# 補足: 元に戻す場合
$ defaults delete com.apple.finder AppleShowAllFiles
```

`command` + `shift` + `.` で表示/非表示の切り替えもできます。

### 共有フォルダで .DS_Store ファイルを作成しない

```
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores true

# 補足: 元に戻す場合
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores false
```

## 権限設定

```
$ sudo chown -R $(whoami):admin /usr/local/*
$ sudo chmod -R 755 /usr/local/*
```

Homebrewでインストールする際は /usr/local のパーミッションエラー対策。
追加されたユーザーでHomebrewを実行する時などにパーミッションエラーが起きるので予め権限設定しておく

## Homebrew

- https://brew.sh
- macOS CLI用のパッケージマネージャー
- Xcode Command Line Tools
  - Homebrewを入れるために別途必要でしたが、最近のインストーラは自動的にインストールしてくれます。

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

```
$ brew -v
Homebrew 2.2.11
Homebrew/homebrew-core (git revision 31624; last commit 2020-04-05)
Homebrew/homebrew-cask (git revision 9372fac; last commit 2020-04-05)
```

### Homebrew Cask

- https://github.com/Homebrew/homebrew-cask
- macOS GUI用のパッケージマネージャー
- 最近の Homebrew をインストールしていれば同梱されている

### Homebrew Update & Upgrade

```
# Homebrew本体のアップデート
$ brew update

# Homebrewでインストールしたパッケージのアップデート
$ brew upgrade
$ brew upgrade --cask
```

### Homebrew 補足

- [homebrewとは何者か。仕組みについて調べてみた](https://qiita.com/omega999/items/6f65217b81ad3fffe7e6)

```
# 古いformulaを削除
$ brew cleanup

# Homebrewの診断
$ brew doctor
```

## Macシステム環境設定

### 一般

- スクロールバーの表示 > 常に表示 にする

### Dock

- サイズ: お好みで
- 拡大: お好みで
- 画面上の位置: 左、下、右 お好みで
- Dockを自動的に表示/非表示 お好みで

### ディスプレイ

- ディスプレイ > 解像度 > 変更 > スペースを拡大

### 省エネルギー

- バッテリー > バッテリー電源使用時はディスプレイを少し暗くする > チェックを外す
- メニューバーにバッテリーの状況を表示 > チェックを入れる
  - メニューバーの電池マークをクリック「割合(%)を表示」にチェックを入れる

### 日付と時刻

- 時計 > 時刻のオプション > 秒を表示にチェックを入れる
- 時計 > 日付のオプション > 日付を表示にチェックを入れる

### マウス

- スクロールの方向: ナチュラル
  - Windowsに慣れている人はチェックを外すと良い
- 副ボタンのクリック
  - 有効にしていないと右クリックできない
- 軌跡の速さ
  - デフォルトはめっさ遅いので最速設定にする
- その他ジェスチャ
  - ページ間のスワイプ
     - 誤ってブラウザの戻る、進むをやってしまうので無効にした方が良い

### アクセシビリティ

- ポイントコントロール
  - トラックパッドオプション...
    - 「ドラッグを有効にする」にチェックを入れて「3本指のドラッグ」を選択する

### キーボード

- キーボード
  - キーのリピート
     - 最速設定
  - リピート入力認識までの時間
     - 最短設定
  - Touch Barに表示する項目
     - F1、F2などのキーを表示
- ユーザ辞書
  - 英字入力中にスペルを自動変換
     - チェックを外す
  - 文頭を自動的に大文字にする
     - チェックを外す
  - スペースバーを2回押してピリオドを入力
      - チェックを外す
  - スマート引用符とスマートダッシュを使用
     - チェックを外す

### セキュリティとプライバシー

- 一般
  - スリープとスクリーンセーバの解除にパスワードを要求（15分くらいにする）
  - ダウンロードしたアプリケーションの実行許可
    - Mac App Store と確認済みの開発元からのアプリケーションを許可
    - App Storeだけだと野良アプリを実行できないため。
- プライバシー > アクセシビリティ
  - AppStoreに登録されていない野良アプリはここに登録して実行を許可してあげる必要がある。
- ファイアウォール > ファイアウォールをオン にする

### ネットワーク

Google Public DNS設定

- https://ja.wikipedia.org/wiki/Google_Public_DNS
- https://www.geekpage.jp/blog/?id=2011/9/22/1

- 接続済みのネットワークの詳細を表示
  - DNS > DNS サーバ
    - `8.8.8.8`
    - `8.8.4.4`
    - 上記のアドレスを登録する。（Google Public DNS）

### 共有

- コンピュータ名を変更(AirDropに表示される名前)

## Finder

### デスクトップに表示させるアイコン

- Finder > 一般 > デスクトップに表示させる項目 > 接続中のサーバ にチェックを入れる

### ファイルの拡張子を表示する

- Finder > 環境設定 > 詳細 > すべてのファイル名拡張子を表示 にチェックする
- Finder > 環境設定 > 詳細 > 名前で並び変えるときにフォルダを上部に表示 にチェックする
- Finder > 環境設定 > 詳細 > 拡張子を変更する前に警告を表示 のチェックを外す（お好みで）

### サイドバーに表示する項目

- Finder > 環境設定 > サイドバー 表示したい項目をお好みで設定
- Finderのサイドバーのよく使う項目は ディレクトリをドラッグ＆ドロップで追加できる
  - 外したい時は右クリックして `サイドバーから削除`

### ウィンドウ情報

- Finder > 表示 > タブバーを表示 にする
- Finder > 表示 > パスバーを表示 にする
- Finder > 表示 > ステータスバーを表示 にする
- Finder > 表示 > 表示オプションを表示 > 並べ替え > なし
  - 表示オプションを表示した際に、デスクトップをクリックする
- Finder > 表示 > 表示オプションを表示 > 表示順序 > グリッドに沿う

### AirDrop

Mac間のファイルの受け渡しが楽になります。
https://pc-karuma.net/mac-airdrop-settings

- このMacを検出可能な相手: `全員`
  - [AirDrop痴漢](https://toyokeizai.net/articles/-/299865)にはご注意ください
- Bluetooth, Wi-Fiを有効にする。

## スクリーンショット

### フローティングサムネールの非表示

- `Command` + `Shift` + `5`
  - オプション
    - 「フローティングサムネールの表示」のチェックを外す

これを設定しておくと、スクリーンショット撮影時に表示されるフローティングサムネールは表示せず、すぐにデスクトップにスクリーンショットが移動します。

## CLI Tools

私が好みで入れてる便利なCUIツールです。
ここは人によって要・不要分かれると思うので使ってみたいものがあればインストールしてみてください。

### starship

- プロンプトカスタムツール
- https://starship.rs
- https://github.com/starship/starship
- [<font color="DarkMagenta">iTerm2&starshipをやみかわメンヘラ仕様にする</font>](https://qiita.com/macololidoll/items/1c369217c6203dd479bd)

```
$ brew install starship
$ echo 'eval "$(starship init zsh)"' >> ~/.zprofile
$ exec $SHELL -l
```

<img width="851" alt="スクリーンショット 2020-03-09 0.02.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52879/16edff16-60d5-058e-e4b8-5eb2cc1d635a.png">

#### starship 設定ファイル

```
$ mkdir ~/.config
$ touch ~/.config/starship.toml
```

下記、おすすめ設定です。

```
$ vim ~/.config/starship.toml
add_newline = false

[directory]
truncate_to_repo = false

[git_branch]
symbol = "🌱 "

[time]
disabled = false
```

### exa

- [ls](https://kazmax.zpp.jp/cmd/l/ls.1.html) の代替コマンド
- https://the.exa.website
- https://github.com/ogham/exa
- 色付きで見た目が良くなります。
- Rust製

```
$ brew install exa
```

alias 貼っておくと良き

```
$ echo "alias ls='exa --time-style=long-iso -g'" >> ~/.zprofile
$ echo "alias ll='ls --git --time-style=long-iso -gl'" >> ~/.zprofile
$ echo "alias la='ls --git --time-style=long-iso -agl'" >> ~/.zprofile
$ echo "alias l1='exa -1'" >> ~/.zprofile

$ exec $SHELL -l
```

- `--time-style=long-iso`: `YYYY-MM-DD hh:mm` 形式で表示
- `--git` gitステータスを表示
- `-g` グループを表示
- `-a` 隠しファイル(dotファイル)を表示
- `-l` 表として表示
- `-1` ファイル名のみ表示
- その他のオプションは `exa --help`

### bat

- [cat](https://kazmax.zpp.jp/cmd/c/cat.1.html) の代替コマンド
- https://github.com/sharkdp/bat
- [日本語ドキュメント](https://github.com/sharkdp/bat/blob/master/doc/README-ja.md)
- Rust製
- 色付きで見た目が良くなります。

```
$ brew install bat
```

### fd

- [find](https://kazmax.zpp.jp/cmd/f/find.1.html) の代替コマンド
- https://github.com/sharkdp/fd
- Rust製
- 高速、検索結果が色付け、オプション豊富

```
$ brew install fd
```

### ripgrep

- [grep](https://kazmax.zpp.jp/cmd/g/grep.1.html) の代替コマンド
- https://github.com/BurntSushi/ripgrep
- Rust製
- 高速、オプション豊富
- .gitignoreをデフォルト無視してくれる

```
$ brew install ripgrep
```

### sd

- [sed](https://kazmax.zpp.jp/cmd/s/sed.1.html) の代替コマンド
- https://github.com/chmln/sd#installation
- Rust製
- 直感的に書けて高速

```
$ brew install sd
```

### procs

- [ps](https://kazmax.zpp.jp/cmd/p/ps.1.html) の代替コマンド
- https://github.com/dalance/procs
- Rust製
- カラム毎に色分けされて項目が見やすい

```
$ brew install procs
```

### vim

- CUI テキストエディタ
- https://www.vim.org
- https://github.com/vim/vim

```
$ brew install vim
```

### tmux

- 端末多重接続ソフトウェア
- https://github.com/tmux/tmux
- [tmuxを必要最低限で入門して使う](https://qiita.com/nl0_blu/items/9d207a70ccc8467f7bab)
- [tmux | dotinstall](https://dotinstall.com/lessons/basic_tmux)

```
$ brew install tmux
```

### lazydocker

- DockerおよびDocker ComposのTUIツール
- https://qiita.com/ryuichi1208/items/7e6daceecc660f097726
- https://github.com/jesseduffield/lazydocker

```
$ brew install lazydocker
```

### Git

- https://git-scm.com
- [Git tutorial](https://backlog.com/ja/git-tutorial)
- [Git | dotinstall](https://dotinstall.com/lessons/basic_git)
- Macに標準で入ってる

```
$ brew install git
```

### lazygit

- https://github.com/jesseduffield/lazygit

```
$ brew install lazygit
```

### tig

- https://jonas.github.io/tig
- https://github.com/jonas/tig

```
$ brew install tig
```

### GitHub CLI

- https://cli.github.com
- https://github.com/cli/cli

```
$ brew install github/gh/gh
```

### anyenv

- nodenvやphpenv等のenvツールを管理するツールです。
  - 新しいenvツールを入れても `~/.bash_profile` が汚れない
  - 各envツールのバージョンをまとめて確認できる
- https://github.com/anyenv/anyenv

**内容をこちらの別記事に移動しました。**

[anyenv 経由の nodenv 経由で Node.js をインストールする](https://qiita.com/ucan-lab/items/ce35bcaf2562054917a8)

## GUI Tools

私が好みで入れてる便利なGUIツールです。
ここは人によって要・不要分かれると思うので使ってみたいものがあればインストールしてみてください。

### Visual Studio Code

```
$ brew cask install visual-studio-code
```

### フォント

```
$ brew tap homebrew/cask-fonts
```

ダウンロード可能なフォント
https://github.com/caskroom/homebrew-fonts/tree/master/Casks

#### Ricty Diminished

- https://github.com/edihbrandon/RictyDiminished

```
$ brew cask install font-ricty-diminished
```

#### Source Han Code JP | 源ノ角ゴシック Code

- Adobeが開発しているプログラミング用フォント。きれいで見やすい。
- http://blogs.adobe.com/CCJKType/2015/06/source-han-code-jp.html
- https://github.com/adobe-fonts/source-han-code-jp

```
$ brew cask install font-source-han-code-jp
```

### Chrome

- ブラウザ
- https://www.google.com/intl/ja_jp/chrome

```
$ brew install --cask google-chrome
```

### Table Plus

- MySQL、PostgreSQL、SQLiteに接続できるデータベースクライアント
- https://tableplus.com

```
$ brew cask install tableplus
```

無償版だと2タブしか一度に開けないので、ちょっと不便...

### Sequel Ace

MySQL・MariaDBに接続できるデータベースクライアントツール
[Sequel Ace](https://www.sequelpro.com)の後継アプリ。

- https://sequel-ace.com
- https://github.com/Sequel-Ace/Sequel-Ace
- [ついにSequel Proの後継アプリ登場！Sequel AceでMySQLに接続する](https://qiita.com/ucan-lab/items/b1304eee2157dbef7774)

### Alfred

- ランチャ
- https://www.alfredapp.com
- [Alfredを使いこなせてない君に！【Alfredの使い方完全版】](https://qiita.com/jackchuka/items/ccd3f66f6dd00481b98b)

```
$ brew cask install alfred
```

### Spectacle

- 画面リサイズツール
- https://www.spectacleapp.com
- これがないと生きていけない

```
$ brew cask install spectacle
```

### MacWinZipper

- MacからWindowsへ文字化けしない圧縮ファイルを作成
- https://tida.co.jp/macwinzipper
- 日本語のファイル名をWindowsで文字化けしないようにしてくれる
- `.DS_Store` を除外して圧縮してくれる
- 標準の圧縮でなんとかして欲しいけど仕方なく

```
$ brew cask install macwinzipper
```

### Postman

- API開発のためのコラボレーションプラットフォーム
- https://www.postman.com/postman

```
$ brew cask install postman
```

### Docker for Mac

- コンテナ仮想化プラットフォーム
- https://docs.docker.com

```
$ brew cask install docker
```

### VirtualBox

- ホスト型ハイパーバイザ仮想化プラットフォーム
- https://www.virtualbox.org

```
$ brew cask install virtualbox
```

### Vagrant

- 仮想環境の構築・設定ツール
- https://www.vagrantup.com

```
$ brew cask install vagrant
```

#### Vagrant plugins

- https://www.vagrantup.com/docs/share
- https://github.com/dotless-de/vagrant-vbguest
- [Vagrant Share が便利すぎる話](https://qiita.com/DesignChips/items/6f06e51efd8a2fe9acc9)
- [VagrantのboxのGuest Additionsのアップデート方法](https://qiita.com/isaoshimizu/items/e217008b8f6e79eccc85)
- ほぼ必須なものだけ抜粋

```
$ vagrant plugin install vagrant-share vagrant-vbguest
```

### Slack

- https://slack.com/intl/ja-jp

```
$ brew cask install slack
```

### Discord

- https://discordapp.com

```
$ brew cask install discord
```

## Node Tools

### fast

- 通信速度を測定
- https://github.com/sindresorhus/fast-cli

```
$ npm install --global fast-cli
$ fast -u
     5.1 Mbps ↓ / 37 Mbps ↑
```

`-u` オプションで上り通信も測定してくれます。

## Visual Studio Code 拡張機能

2020.04.16 追記: VSCodeの拡張機能を別記事にまとめました。

[VSCode に必ず入れておきたい拡張機能](https://qiita.com/ucan-lab/items/e85931bf8276da43cc97) 

## SSH 設定

- [Mac SSH 設定](https://qiita.com/ucan-lab/items/21d62f1beaa8007c4ca9)

## Git 初期設定

- [Mac Git 初期設定](https://qiita.com/ucan-lab/items/aadbedcacbc2ac86a2b3)

## GitHub SSH接続設定

- [Mac GitHub SSH接続設定](https://qiita.com/ucan-lab/items/e02f2d3a35f266631f24)

## ターミナル＆シェル初期設定記事

- [【Mac】ターミナル、シェル環境の初期設定](https://qiita.com/ucan-lab/items/b3132efb4f3907899a60)

## ローカル開発環境構築記事関連

PHPerなので、開発環境構築の記事をいくつか書いています。
もし興味があればお読みください。

- [【忙しい人向け】カップ麺より早く作るDockerでLaravel開発環境構築](https://qiita.com/ucan-lab/items/d7752b43a9e89cc16b22)
- [Laravelの開発環境をDockerを使って構築する](https://qiita.com/ucan-lab/items/17c806973e69792ada99)
- [【初心者向け】20分でLaravel開発環境を爆速構築するDockerハンズオン](https://qiita.com/ucan-lab/items/56c9dc3cf2e6762672f4)
- [Laravelの開発環境をLaradockを使って構築する](https://qiita.com/ucan-lab/items/90f74ce801618830e4fc)
- [Laravelの開発環境をHomesteadを使って構築する](https://qiita.com/ucan-lab/items/9b97fbf0b43c0849fd51)
- [Laravelの開発環境をVagrantを使って構築する](https://qiita.com/ucan-lab/items/e4a268e9f227ed6294b4)

## Mac Tips 動画

知ってると便利なTipsをまとめてくれている動画を見つけたのでご紹介します。

- [知ってると超便利!? Mac Tips10選✌️💻](https://www.youtube.com/watch?v=xCP3Bk2KsUk)

## さいごに

vscodeの拡張機能は厳選してます。
zshの設定、tmuxの設定、vimの設定までやるとさらに長くなりそうだったので省いてます。
別記事に書くかも。