MACを新調したらやること

## 概要
* 仕事柄、色んな企業さんに出向する形が多い。
* 案件毎にPC貸与してもらえる。
* PCセットアップは可能な範囲で自分流に使いやすい状態にしておきたい。
* とりあえず個人のPCの情報をオンラインで参照できるようにしておきたい。
* 案件PCでは必要な部分だけベースとしてチョイスする。

## 仕様
対象OS:macOS Monterey

## MAC本体の設定

### メニューバー上部
* IME
    * ライブ変換
        * オフ

### Desktop
* 副メニュー
    * 表示順序
        * グリッドに沿う
            * オン
* 以下のエイリアスを作る
    * 書類
    * ピクチャ
    * ミュージック
    * ムービー

### Finder

#### 環境設定

* サイドバー
    * 最近の項目
        * オフ
    * Air Drop
        * オン
    * ムービー
        * オン
    * ミュージック
        * オン
    * ピクチャ
        * オン
    * ホームディレクトリ
        * オン
    * アカウント名のMacBookPro
        * オン
    * ハードディスク
        * オフ
    * 最近使ったタグ
        * オフ
* 詳細
    * すべてのファイル名拡張子を表示
        * オン

#### 隠しファイルの表示

```
$ defaults write com.apple.finder AppleShowAllFiles TRUE
$ killall Finder
```

### システム環境設定

#### 一般
* 外観モード
    * ダーク

#### Dockとメニューバー
* Dockとメニューバー
    * 最近使ったアプリケーションをDockに表示
        * オフ
* コントロールセンター
    * Bluetooth
        * メニューバーに表示
            * オン
    * サウンド
        * メニューバーに表示
            * オン
    * バッテリー
        * メニューバーに表示
            * オン
        * 割合（%）を表示
            * オン
    * 時計
        * 日付のオプション
            * 日付を表示
                * オン
            * 曜日を表示
                * オン
        * 時刻のオプション
            * 24時間表示にする
                * オン
            * 秒を表示
                * オン

#### キーボード
* キーボード
    * Touch Barに表示する項目
        * Control Strip（展開した状態）
    * メニューバーにキーボードビューアと絵文字ビューアを表示
        * オン
    * Control Stripをカスタマイズ...
        * 以下になるように変更する
            * スペース | キーボードの輝度 | 輝度 | メディア | 音量
* ユーザー辞書
    * あ：${自分のアドレス}
    * こ：`:pencil:`
    * こ：`:construction:`
    * こ：`:wastebasket:`
    * こ：`:hankey:`
    * こ：`:rotating_light:`
    * こ：`:horse:`
    * こ：`:art:`
    * こ：`:books:`
    * こ：`:recycle:`
    * こ：`:bug:`
    * こ：`:bookmark:`
    * こ：`:wrench:`
    * こ：`:sparkles:`

#### トラックパッド
* ポイントとクリック
    * タップでクリック
        * オン
    * 軌跡の速さ
        * 60%ぐらい
* スクロールとズーム
    * スクロールの方向：ナチュラル
        * オフ

#### プリンタとスキャナ
* 同じネットワークに存在するプリンタを追加

#### バッテリー
* 電源アダプタ
    * ディスプレイをオフにするまでの時間
        * しない

## 必要アプリ

### GUIアプリ

#### AppStore

##### Xcode 
* 時間かかるので真っ先にやる
* 利用許諾もやっておく

##### Final Cut Pro

##### LINE

#### ブラウザ
    
##### ~~ShiftIt~~ → hammerspoon

https://github.com/Hammerspoon/hammerspoon/releases

`ShiftIt`はzoomやGoogleMeetを利用している際にショートカットが効かなくなる問題があったので`hammerspoon`へ移行。

* install後、mac上部メニューバーのハンマーアイコンをクリック
    * preferences...
        * Behavior
            * Launch Hammerspoon at login
                * オン
     * Open Config
        * 以下をコピペして保存して、Reload Config

```
hs.window.animationDuration = 0
units = {
    right50	= { x = 0.50, y = 0.00, w = 0.50, h = 1.00 },
    left50      = { x = 0.00, y = 0.00, w = 0.50, h = 1.00 },
    top50       = { x = 0.00, y = 0.00, w = 1.00, h = 0.50 },
    bot50       = { x = 0.00, y = 0.50, w = 1.00, h = 0.50 },
    maximum     = { x = 0.00, y = 0.00, w = 1.00, h = 1.00 },

    righttop    = { x = 0.50, y = 0.00, w = 0.50, h = 0.50 },
    rightbot    = { x = 0.50, y = 0.50, w = 0.50, h = 0.50 },
    leftbot     = { x = 0.00, y = 0.50, w = 0.50, h = 0.50 },
    lefttop     = { x = 0.00, y = 0.00, w = 0.50, h = 0.50 },

    right40  	= { x = 0.60, y = 0.00, w = 0.40, h = 1.00 },
    center40	= { x = 0.20, y = 0.00, w = 0.40, h = 1.00 },
    left20   	= { x = 0.00, y = 0.00, w = 0.20, h = 1.00 }
}

opt_cmd = { 'option', 'cmd' }
hs.hotkey.bind(opt_cmd, 'up', function() hs.window.focusedWindow():move(units.top50, nil, true) end)
hs.hotkey.bind(opt_cmd, 'right', function() hs.window.focusedWindow():move(units.right50, nil, true) end)
hs.hotkey.bind(opt_cmd, 'down', function() hs.window.focusedWindow():move(units.bot50, nil, true) end)
hs.hotkey.bind(opt_cmd, 'left', function() hs.window.focusedWindow():move(units.left50, nil, true) end)
hs.hotkey.bind(opt_cmd, 'm', function() hs.window.focusedWindow():move(units.maximum, nil, true) end)

cont_opt_cmd = { 'control', 'option', 'cmd' }
hs.hotkey.bind(cont_opt_cmd, 'up', function() hs.window.focusedWindow():move(units.righttop, nil, true) end)
hs.hotkey.bind(cont_opt_cmd, 'right', function() hs.window.focusedWindow():move(units.rightbot, nil, true) end)
hs.hotkey.bind(cont_opt_cmd, 'down', function() hs.window.focusedWindow():move(units.leftbot, nil, true) end)
hs.hotkey.bind(cont_opt_cmd, 'left', function() hs.window.focusedWindow():move(units.lefttop, nil, true) end)

sft_opt_cmd = { 'shift', 'option', 'cmd' }
hs.hotkey.bind(sft_opt_cmd, 'right', '', function() hs.window.focusedWindow():move(units.right40, nil, true) end)
hs.hotkey.bind(sft_opt_cmd, 'up', '', function() hs.window.focusedWindow():move(units.center40, nil, true) end)
hs.hotkey.bind(sft_opt_cmd, 'left', '', function() hs.window.focusedWindow():move(units.left20, nil, true) end)
```

###### 使い方

TODO::別記事リンク貼る

https://qiita.com/kabosu3d/items/66f6727f1140497b2cf7


##### GoogleChrome
https://www.google.com/intl/ja_jp/chrome
* 設定
    * ダウンロード先
        * desktop

##### FireFox
https://www.mozilla.org/ja/firefox/new/

##### Opera
https://www.opera.com/ja

##### iTerm2
https://www.iterm2.com
* preferences
    * profiles
        * Window
            * Transparency
                * 25~30%ぐらい
            * Blur
                * オン
                * 5%
        * Terminal
            * Scrollback Buffer
                * Unlimited scrollback
                    * オン

##### Unity
https://store.unity.com/ja#plans-business

(後回しでも良い)

##### SequelPro
https://www.sequelpro.com
* 前端末から設定ファイルエクスポしてインポッシブル（クラウド管理した方がいいかも）
* 環境設定
    * 自動アップデート
        * 頻度
            * １週間ごと

MySQL8以上の場合は、SequelAceがお勧め

https://sequel-ace.com

##### IntelliJ IDEA
https://www.jetbrains.com/idea/
* 画面左下の歯車
    * カスタムVMオプションの編集...
        * 以下を追加もしくは変更

```
-XX:ReservedCodeCacheSize=512m
```

* 適当なフォルダ作り、IDEで開く
    * 画面右下の歯車
        * プラグインの同期
            * restart

##### SourceTree
https://www.sourcetreeapp.com
* 表示
    * appearance
        * dark mode

##### Office Home for Mac
https://setup.office.com

##### AppCleaner
https://freemacsoft.net/appcleaner

##### Dropbox
https://www.dropbox.com/install
* 基本設定
    * フォルダを開く
        * Finder

##### Docker
https://hub.docker.com/editions/community/docker-ce-desktop-mac

##### OBS
https://obsproject.com/ja/download
* 初期設定については別途記事書くかも

##### GIMP2.8
2.8がシングルウィンドウモードがあるのでお勧め

https://www.gimp.org/downloads/oldstable

#### GoogleChrome拡張機能

https://chromewebstore.google.com/?hl=ja

TODO::説明は後日まとめる、とりあえずリストアップしておく

https://chromewebstore.google.com/detail/video-speed-controller/nffaoalbilbmmfgbnbgppjihopabppdk

https://chromewebstore.google.com/detail/super-simple-highlighter/hhlhjgianpocpoppaiihmlpgcoehlhio

https://chromewebstore.google.com/detail/%E3%82%A6%E3%82%A7%E3%83%96%E3%83%9A%E3%83%BC%E3%82%B8%E5%85%A8%E4%BD%93%E3%82%92%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-firesh/mcbpblocgmgfnpjjppndjkmgjaogfceg?hl=ja

https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd

https://chromewebstore.google.com/detail/chocochip-cookie-manager/cdllihdpcibkhhkidaicoeeiammjkokm

https://chromewebstore.google.com/detail/environment-marker/ahjhdebcnlgmojdmjnhikhakkghcchkk

https://chromewebstore.google.com/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm

https://chromewebstore.google.com/detail/%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD-for-aws-sso/ejjegcnihofdahmbbhekhkcnpflljeej

https://chromewebstore.google.com/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai

#### Dock並び順
<img width="1688" alt="スクリーンショット 2020-05-18 1.56.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125469/1abf4982-8d9a-d0d2-8e53-0cc07e1fa3e1.png">

### CUIアプリ
    
#### brew
```bash
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```

#### oathtool
```bash
% brew install oath-toolkit 
```

#### docker-sync
```bash
% sudo gem install docker-sync
```

#### direnv
```bash
% brew install direnv
```

## CUI設定

### vim設定
```bash
% vi ~/.vimrc
```

```bash
set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac
set nocompatible
set fenc=utf-8
set nobackup
set noswapfile
set hidden
" 入力中のコマンドをステータスに表示する
set showcmd
" 行番号を表示
set number
" 現在の行を強調表示
set cursorline
" 現在の行を強調表示（縦）
set cursorcolumn
" 行末の1文字先までカーソルを移動できるように
set virtualedit=onemore
" インデントはスマートインデント
set smartindent
" Tab文字を半角スペースにする
set expandtab
" 行頭以外のTab文字の表示幅（スペースいくつ分）
set tabstop=4
" 行頭でのTab文字の表示幅
set shiftwidth=4
" 検索文字列が小文字の場合は大文字小文字を区別なく検索する
set ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索する
set smartcase
" 検索文字列入力時に順次対象文字列にヒットさせる
set incsearch
" 検索時に最後まで行ったら最初に戻る
set wrapscan
" 検索語をハイライト表示
set hlsearch
" テーマの変更
colorscheme elflord
```

### zsh設定
```bash
% vi ~/.zprofile
```

```bash
autoload -U compinit
compinit
export LSCOLORS=cxfxcxdxbxegedabagacad
alias la='ls -laGT'
alias ll='ls -laGT'
alias tree="pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'"
```

```bash
% vi ~/.zshrc
```

```bash
eval "$(direnv hook zsh)"
export EDITOR=vim
```

## 秘密鍵設定

### 秘密鍵作成
```bash
% mkdir ~/.ssh
% cd ~/.ssh
% ssh-keygen -t ed25519
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/masayagoto/.ssh/id_ed25519): xserver
% ssh-keygen -t ed25519
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/masayagoto/.ssh/id_ed25519): github-mg1986jp
```

※ githubアカウントは社用は作らない（[廃止した](https://techblog.zozo.com/entry/github_sso)）

理由：退職した場合クローズドなgithubアカウントとなり、エンジニア本人の活動履歴という観点で第三者からContributionが見えないことは様々な側面での機会損失になり得る。但し、組織側はセキュリティー担保のため、設定面(SSOやMFAなど)で強要することになるのでプライバシーの問題はある。

### エイリアス作成
```bash
% vi ~/.ssh/config
```

```bash
Host xserver
	HostName xxxxx
	Port xxxxx
	User xxxxx
	IdentityFile ~/.ssh/xserver

Host github.com
	HostName github.com
	User git
	PreferredAuthentications publickey
	IdentityFile ~/.ssh/github-mg1986jp
	UseKeychain yes
	AddKeysToAgent yes
```

### 秘密鍵登録
* xserver
https://www.xserver.ne.jp/manual/man_server_ssh.php#link-c02

* github
    * SSHタイトル
        * From {"My" or $company_name} MacBookPro {シリアルNo}

### 疎通確認
```bash
% ssh github.com
PTY allocation request failed on channel 0
Hi mg1986jp! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
```

```bash
% chmod -R 600 xserver
% ssh xserver
```

## バーチャルドメイン
```
$ sudo vi /etc/hosts
```

```
編集中
```