Macセットアップ時にやったことメモ

5年使ったMacbook Proがついに壊れ、その移行時にやったことのメモ。
次の自分、あるいは誰かの参考になればと思ったので公開しておきます。

#### 追記:
その後、追加でインストールしたソフトなども今後の移行時に役立てるため、随時追記していっています。

# Mac自体
## OS
El Capitanだった(!)ので、MojaveをDLしてインストールした。

## 環境整理
### 隠しファイル(ドットファイル)を表示
Sierra移行はキーボードショートカットで切替可能。
Finderを開いて `Command` + `Shift` + `. (ドット)` を押す。

### クラムシェルモードを無効にする
外部ディスプレイをつないだ状態でMacbook本体を閉じると、外部ディスプレイのみでもMacを表示・操作できる機能をクラムシェルモードといい、デフォルトではオンになっている。
ただ自分の場合は、本体を閉じる = 一時的に席を離れる = スリープにしてほしい事の方が多いので、
クラムシェルモードを無効にしておく。

無効にするコマンドを流すためにはセーフモードで起動する必要がある。
一度システムを終了して、 「command + R」 を押しながら起動。
Appleのロゴが表示されるまでキーボードは押したままにしておく、ロゴが見えたら離して良い。
メニューバーの `ユーティリティ` > `ターミナル` からターミナルを開いて、以下のコマンドを流す

```console
# nvram boot-args="niog=1"
```

(復元モードからブラウザが見られそうになかったので、
別途スマホでコマンドをみつつそのまま手打ちした)

その後シャットダウンして、通常起動する。

参考:
http://ashitaka56.hatenablog.jp/entry/2017/01/22/110928

### 拡張子の表示
すべてのファイル名拡張子が表示されるように変更した。
https://qiita.com/yamajyn/items/e85eb1333a8ec7e11831

### ~/.bash_profile と ~/.bashrc
Mac OS X以降だと `~/.bashrc` が読み込まれないので、読み込まれるように設定した。
https://qiita.com/eytyet/items/96ef67ec6fb3876aa3d8

### iTunesとiPhoneの同期をオフに
iPhoneを繋ぐたびに同期するか聞かれるのは鬱陶しい(自分の場合、PCと同期はほぼ不要だった)ので、接続時の自動同期を切っておく。
メニューバーの `iTunse` > `環境設定` > `デバイス` から、 `iPod、iPhone、およびいPadを自動的に同期しない。` にチェック。
<img width="631" alt="スクリーンショット 2019-04-03 16.52.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/53950/f94252e9-da79-7c02-6014-170e422ff7c3.png">

### Dockの整理
使用しないアプリは表示していても邪魔なので、Dockから消した。
以下がDockに残ったアプリ

- Finder
- Safari
- Chrome
- AppStore
- システム環境設定
- Slack
- iTerm
- ダウンロード
- ゴミ箱

Launchpadはトラックパッドのジェスチャーで表示するので消した。

### キャプチャした時の画像保存先をデスクトップから変更
デフォルト設定だとスクリーンショットがデスクトップに散らばるので、
キャプチャしたときは任意のフォルダに保存されるように設定する。
コマンドは以下

```console
$ defaults write com.apple.screencapture location ~/00_general/00_mac/c_capture
$ killall SystemUIServer
```

[Macでスクリーンショットを撮る方法と保存先＆形式を変える方法 \- Qiita](https://qiita.com/mamohacy/items/559af38aacb7a17a1600)

階層が深いとアクセスが不便なので、
Finderの「よく使う項目」にフォルダをドラッグ&ドロップして登録しておく
<img width="160" alt="スクリーンショット 2019-04-10 13.19.28.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53950/00ddcfab-a47d-440e-7156-a048477706ce.png">


## システム設定
### トラックパッド
トラックパッドの動きが好みでなかったので、設定し直した。

- タップでクリックをオンにした
- 軌跡の速さを早くした

### キーボード
#### アプリ間のウィンドウ切り替えのショートカットを変更
アプリ間のウィンドウの切り替えがデフォルトだと `Command` + `F1` だけど、
やりにくいから `option` + `tab` に切り替えた。
http://c-through.blogto.jp/archives/38812126.html

#### Spotlightのショートカットを無効に
後述するAlfredをSpotlightの代替としてメインで使用するため、
Spotlightショートカットは不要だった。
`ショートカット` > `Spotlight` から `Spotlight検索を表示` のチェックボックスをオフにしておく。
<img width="663" alt="スクリーンショット 2019-04-16 15.52.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53950/455a4022-4bad-f4a2-2a7f-c7e25366c7cb.png">

### ディスプレイ
#### ディスプレイ
`使用可能な場合はメニューバーにミラーリングオプションを表示` はほぼ使わないので、チェックを外した。

#### 配置
デュアルモニタ時、いつものモニタ位置とは違う配置だったので配置をずらした。


### 日付と時刻
~~時計の「日付のオプション」から「日付を表示」にチェックを入れて、メニューバーに日付が表示されるようにした。~~
メニューバーにカレンダー用のアプリ Itsycal を入れ、日付はそちらで表示するようにした。

### バッテリー表示
充電率がわかるように、バッテリーアイコンをクリックして「割合(%)を表示」にチェックを入れた。

### インターネットアカウント
MacのカレンダーをGoogleアカウントと同期させると、
通知センターから予定が通知されて便利。
Googleの項目を選び、 `カレンダー` にチェックを付けて同期させたいアカウントに同期する。
パスワード入力が求められるので、Safariで開いてログインし、同期させる。

### Mission Control
~~トラックパッドのジェスチャーでダッシュボードに表示させたカレンダーを確認したかったので、
Dashbord: `操作スペースとして表示` にセットした。~~

カレンダーはメニューバーに常駐するアプリ Itsycal を入れることにした。

### プリンタとスキャナ
プリンタを追加して、プリントアウトできるよう設定をした。

### アクセシビリティ
個人的に「スピーチ」の読み上げ機能が便利でよく使っていたが、
デフォルト設定だと読み上げスピードが遅く、音質も悪い。
`スピーチ` > `システムの声` から `カスタマイズ...` を選択して、
`Kyoko (高品質音声にアップグレード)` にチェックを入れてOKで音声データをダウンロードしセットする。
スピードはやや速めに設定。
`キーを押した時に選択しているテキストを読み上げる` にチェックを入れておく。
<img width="667" alt="スクリーンショット 2019-04-26 12.23.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53950/4922eca0-8629-3a37-635d-5d71f1a17ece.png">
長めのニュースを裏で流したり、文章多めのOfficeファイルの内容を流し聞きして流れをつかみたい時とかに便利。

# アプリケーション
以下のアプリケーションを入れた

- Slack
- Adobe CC
- Alfred
- Rectangle
- Google日本語入力
- Chrome
  - Pasty
  - はてなブックマーク
  - Streamkeys
  - Tampermonkey
  - Stylus
  - Create Link
- VirtualBox
- Vagrant
- Zoom
- MS Office
- Visual Studio Code
- CyberDuck
- iTerm2
- ImageOptim
- Tunnelblick
- Tusk
- Microsoft Remote Desktop 10
- Obsidian
- Docker
- Postman
- Clipy
- Gapplin
- Kap
- Itsycal
- Hidden Bar

## Slack
AppStoreでDLし、ログインするだけ。
設定はクラウドに保存されているため、以前のものが引き継がれる。

## Adobe CC
業務で使うため、以下をインストール

- Photoshop
- Illustrator
- XD
- Acrobat DC

## Alfred
Spotlightの上位版。任意のショートカット (デフォルトだと option + スペースキー) でいつでも呼び出せ、様々なコマンドが使えるので便利。
[開発におすすめの Alfred Workflows ○○選 \- Qiita](https://qiita.com/DriftwoodJP/items/6bee03df0a0da499320a#github)

設定したのは以下

### Macログインとともに自動起動するようにし、 ショートカットをcommand + スペースに設定
Spotlightの代替として使用するため、Macの立ち上げと同時に起動されるように `Launch Alfred at login` にチェックを入れた。
また、ショートカットキーにはもともとSpotlight用に割り当てられていた `command` + `スペース` を設定した。
<img width="601" alt="スクリーンショット 2019-04-16 16.02.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53950/c5254549-6985-2cc5-47cf-ff9a4ec082eb.png">

### カスタムサーチ (ブックマークのショートカット)
`Preferences` から `Features` タブの `Custom Searches` によく使うウェブページを登録しておくと、すぐにブラウザでそのページにジャンプできて便利。
個人的には Google Drive の特定プロジェクトのフォルダを登録しておくことで、
いちいち階層をたどることなくMacのフォルダとほぼ同等の感覚で使えるようになるのでおすすめ。

#### Google Translate の呼び出しを t に
`Preference` > `Features` タブの `Web Searches` で用意されている `translate` を編集して `t` で呼び出すように設定。

```
t {query}
```

#### caniuse.com の呼び出しショートカット
Can I Use を `c` で呼び出すように設定。

| 項目 | 内容 |
|---|---|
| Search URL | `https://caniuse.com/#search={query}` |
| Title | `Can I Use '{query}'` |
| Keyword | `c` |

#### 社内議事録の検索ショートカット
社内の議事録として使っているDocBaseの検索ができるショートカット
`d` で呼び出して使う。

| 項目 | 内容 |
|---|---|
| Search URL | `https://example.docbase.io/search?q=desc%3Ascore%20{query}` <br> (exampleの箇所は使用しているドメインに変える)|
| Title | `docbase '{query}'` |
| Keyword | `d` |

### フォルダも検索対象に含める
フォルダも検索対象に含めると、フォルダ名の一部をタイプしてすぐにそこまでジャンプできるので便利。
デフォルトでは検索対象外なので、 `Preferences` から `Features` タブの `Default Results` にて、 `Folders` にチェックを入れておく。

## Rectangle
キーボードからウィンドウサイズや位置などを変更できるアプリ。
ウィンドウサイズを画面半分や1/3サイズにしたり、左寄せや中央寄せなどの移動、マルチモニタ時に次のディスプレイへの画面移動などが、ショートカットで行えるようになり便利。
[Rectangle](https://rectangleapp.com/)
類似アプリで以前はShiftItを使っていたが乗り換えた。


## Google日本語入力
日本語変換がだめすぎて入れた。
「ライブ入力」モードは使いづらいので切った。

### 短縮読みの追加
よく使う言い回しやコマンドは短縮読みに登録すると便利なので入れた。

#### pythonでローカルサーバを起動するコマンド
~~単語: `python -m SimpleHTTPServer 8888`~~
~~よみ: `さーばーなう`~~
~~品詞: `短縮よみ`~~
~~登録先辞書: `ユーザ辞書１`~~

pythonを使ったローカルサーバー立ち上げは自前のエイリアスを作り、そちらで起動することにした。
[開発用ローカルサーバのPythonコマンドを統一するスクリプトの書き方 \- Qiita](https://qiita.com/kz110/items/8bfd338991017097a41c)

## Chrome
デフォルトのブラウザに設定。
以前からアカウントログインしていたので、アカウントでログイン。

Chrome拡張ツールは以下

### Pasty
複数のURLをクリップボードにコピーしてからクリックすると、該当のURLを個別タブで一気に開くことができる拡張ツール。
テストサイト確認時など、Excel→ブラウザ貼り付け時に便利。
[Pasty \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/pasty/hdjihnnclpjhfdbbinmgoiehhoehhlgf)

### はてなブックマーク
今読んている記事にはてブがついていると参考になるため。
[はてなブックマーク \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF/dnlfpnhinnjdgmjfpccajboogcjocdla)

### Streamkeys
キーボードの再生停止ボタンなどからChrome上のメディアコンテンツの操作ができるようにする拡張機能。
OvercastとYouTubeの操作をキーボードから行いたかったため入れた。
[Streamkeys \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/streamkeys/ekpipjofdicppbepocohdlgenahaneen)

### Tampermonkey
Overcastのデフォルト再生を1.6倍速にしたいため、ユーザスクリプトを導入。
[Tampermonkey \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)

### Stylus
ユーザースタイル管理。Overcastのページのアルバム表示が大きすぎるので、その調整用。
[Stylus \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/stylus/clngdbkpkpeebahjckkjfobafhncgmne)

### Create Link
Markdown形式やWiki形式で簡単にURLをコピー出来る拡張ツール。
[Create Link \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/create-link/gcmghdmnkfdbncmnmlkkglmnnhagajbm?hl=ja)

### Gorgias Templates
Gmailのメール定型文が、変数を使ってより柔軟に作成できる拡張ツール。
[Gorgias Templates: Gmailのための電子メールテンプレート \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/gorgias-templates-email-t/lmcngpkjkplipamgflhioabnhnopeabf?hl=ja)

例として、以下のように設定して使う。

#### リモートワーク連絡用テンプレート
##### Text shortcut
```
remote
```

##### 本文
```
各位

お疲れ様です。○○です。

明日{{date '+1' 'days' 'M月D日'}} はリモートワークで対応いたします。
勤務予定時刻： 9:00-18:00

何かありましたら
Slackまたは内線 #XXXX までご連絡お願いいたします。

何卒よろしくお願いいたします。
```

##### title
```
【勤怠連絡】{{date '+1' 'days' "M/D"}} ○○ リモートワーク
```

##### to
```
renraku@hogehoge.jp
```

これで、gmail本文中 `remote` と入力し、tabを押すと上記変数が埋め込まれた状態で定型文として入力される。

### File Icon for GitHub and GitLab
GitHubのファイルアイコンを種別によって変更してくれる拡張ツール
[File Icon for GitHub and GitLab \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/file-icon-for-github-and/ficfmibkjjnpogdcfhfokmihanoldbfe)

### Octotree
GitHubのソースコードをページの横にツリーで表示出来るようにするChrome拡張。
privateリポジトリでも表示できるようにするためには、
歯車アイコンをクリックしてSite access tokenを生成、入力する必要がある。
[Octotree \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc/related)

### HackMD-it!
[HackMD](https://hackmd.io/) で書いた記事にすぐにアクセスできる拡張ツール。
`control + K` ですぐに記事検索・ジャンプができるので便利。
[HackMD\-it \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/hackmd-it/cnephjboabhkldgfpdokefccdofncdjh)

### JSONView
ブラウザ上でJSONのソースを見やすくするための拡張ツール
[JSONView \- Chrome ウェブストア](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc)

## VirtualBox
プロジェクトの環境を個別で作るために必要。

## Vagrant
プロジェクト環境生成自動化に使用しているため必要。

## Zoom
プロジェクトの会議で必要だから入れた。

## MS Office
オフィスソフト。既に使用していたアカウントをリセットして再発行してもらい、MSにログインしてDLしてからMacに入れた。

## Visual Studio Code
IDE。入れとくと何かと便利。

## CyberDuck
FTPクライアント。

## iTerm2
ターミナルクライアント。他のに乗り換えても良かったが、
後述するPokemon Terminalが使いたかったので結局iTermにした。

以下の設定を行った。

### 新しいタブを開いたときに、今開いているディレクトリを継続する
`iTerm2` > `Preferences...` を開き、
`Profiles` > `General` の Working Directory の項目で `Reuse previous session's directory` にチェックを入れる。
https://qiita.com/nus/items/bed84141d9ff513bdaa5

### カラースキームをIcebergに
新しいカラースキームはIcebergにした。
見やすそうだったのと、作者の方の愛を感じられたので。
https://cocopon.me/blog/2016/02/iceberg/

参考: https://qiita.com/tarosaiba/items/fcc399006025ebe9152c

## ImageOptim
画像軽量化ツール。
どこかに画像をアップロードしたり、メールで画像を送る前に簡易に軽量化したい時に使うため。
https://imageoptim.com/howto.html

## Tunnelblick
VPNを繋ぐ用。
[Tunnelblick \| Free open source OpenVPN VPN client server software for macOS](https://tunnelblick.net/)

## Tusk
EvernoteのPCクライアントソフト。
Evernote本家のアプリはインストール台数制限があるため、Electron製のこのアプリを使う。
[Tusk \- Refined Evernote desktop app](https://klaussinani.github.io/tusk/)

## Microsoft Remote Desktop 10
MacからWindowsマシンにリモート接続する際に使用
[Mac でリモート デスクトップを使ってみる \| Microsoft Docs](https://docs.microsoft.com/ja-jp/windows-server/remote/remote-desktop-services/clients/remote-desktop-mac)

## Obsidian
Markdown形式で保存・管理できるノート。日々の日報などを管理する。
独自の記法をすることでファイル同士をリンクでつなぐことができ、つながりを可視化出来る。
Vimキーバインディングでの入力にも対応。
ファイルはすべてローカルに保存されるので、特定のサービス依存度が低く、また基本的にはMarkdown形式に則って書くため乗り換えたいと思った時の移行が楽にできそうなため入れた。
[Obsidian](https://obsidian.md/)

## Docker (docker-compose)
開発に必要なため入れた
https://docs.docker.com/install/

## Postman
GETやPOSTが簡単に投げられるアプリ。
API開発時に便利。
使用時、アカウント登録が必要だったため普段使っているGoogleアカウントでログインした。
[Postman \| The Collaboration Platform for API Development](https://www.getpostman.com/)

## Clipy
クリップボード拡張ツール。
[Clipy \- Clipboard extension app for macOS](https://clipy-app.com/)
作者のQiitaは以下
[クリップボード拡張Macアプリ「Clipy」を公開しました \- Qiita](https://qiita.com/econa77/items/1848bf3fdfb7127ca9b8)

## Gapplin
SVGビューワー。SVGファイルの表示確認ができる。
白いアイコンなどは自動的に判別してダークモードで表示されるなど、細かな気遣いが効いていて使いやすい。
[Gapplin \- SVG Viewer for macOS](http://gapplin.wolfrosch.com/)

## Kap
スクリーンキャプチャツール。
動画もキャプチャでき、キャプチャ後のgifアニメの書き出し、好きなサイズにリサイズ・フレームレートの変更などが可能でとても便利。
[Kap \- Capture your screen](https://getkap.co/)

## Itsycal
メニューバーからすぐにアクセスできるカレンダー。
イベントのある日は小さな丸アイコンが表示されるので、
祝日カレンダーと連携して、簡易カレンダーとして使っている。
[Mowglii \- Itsycal for Mac](https://www.mowglii.com/itsycal/)
![Itsycal.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53950/c4248e2e-b385-5683-1fc1-ee844b0ad945.png)
設定したのは以下

* GeneralタブのLaunch at login にチェックを入れる
* AppearanceタブのUse lager textにチェックを入れてでカレンダー表示を大きくする

### メニューバーのアイコンの位置
⌘を押しながらアイコンをドラッグすると、メニューバーのアイコンは移動できる。
Itsycalをシステムの時計の隣に置くと見やすくて良い。

## Hidden Bar
メニューバーのアイコンを一部非表示にしまうことの出来るツール。
常駐はさせたいが、アイコンの表示は不要なアプリが増えてきたので入れた。
[Hidden Bar](https://apps.apple.com/jp/app/hidden-bar/id1452453066?mt=12)

# コマンドラインツール
以下のコマンドラインツールを入れた

- homebrew
- vim
- git
- tig
- anyanv
- nodenv
- pyenv
- Pokemon-Terminal
- ghq
- peco
- direnv
- ~~ffmpeg~~
- pwgen
- hub

## homebrew
とりあえず何かと必要。
https://brew.sh/index_ja

APIの検索上限を上げるため、後述するgithubのaccess tokenを発行し、
`~/.bash_profile`に書き込んでおく
https://qiita.com/ywindish/items/0d9752ce9296541528f7

## vim
Macではデフォルトで入っているが、バージョンが古いため
brewから最新のものをインストールして既存vimと置き換えた。

```console
$ brew install vim
## 中略 ##

# .bashrc でviのエイリアスをbrewでインストールしたvimに向ける
$ alias vi="/usr/local/bin/vim
```
参考: https://qiita.com/ham0215/items/274eb8b9bbd2119c2b45

## git
Macに入っているgitは古いので、brewで新しいものをinstall。
インストールした後は、PATHを通してMacに元々入っているgitではなく新しく入れたものが使用されるようにしておく。
参考: https://qiita.com/micheleno13/items/133aee005ae37c28960e

### git-completion
gitインストール時に入っている便利ツールで、設定すればtabキーでgitコマンドやブランチ名などが補完できるようになる。
便利なので、こちらもbrewで入れたものが適用されるように設定しておく。

参考: https://qiita.com/koyopro/items/3fce94537df2be6247a3

## tig
ターミナル上で使えるgitクライアント。単純にログを見るだけでも格段に見やすくなるので、いれておきます。
brewでinstallした。
参考: https://qiita.com/suino/items/b0dae7e00bd7165f79ea

## anyanv
brewでinstall。
https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c
nodenvが使いたかったため導入した。
導入後、 `anyenv install --init` で初期化する必要があった。
また、アップデートに便利なプラグイン
`anyenv-update` と `anyenv-git` も入れた。

```console
$ mkdir -p ~/.anyenv/plugins
$ git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update
$ git clone https://github.com/znz/anyenv-git.git ~/.anyenv/plugins/anyenv-git
```

## nodenv
nodeのパッケージ管理。
https://qiita.com/yoko_u/items/6c8ee617d5ea0ac13d13
類似名で `ndenv` というものもあるので注意 (ndenvは現在開発が止まっている)

### nodenvでインストール可能なNodeバージョンリストの更新
`nodenv-update` というプラグインを導入して更新を行う。
https://github.com/nodenv/nodenv-update#nodenv-update

```console
$ mkdir -p "$(nodenv root)"/plugins
$ git clone https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update
```

インストール可能なNode一覧を最新と揃えたいときに、以下のコマンドを打つ

```console
$ nodenv update
```

### プロジェクト毎のバージョン自動切り替えの参照先を `package.json` の `engines` にする
`nodenv-package-json-engine` というプラグインを導入する。
https://github.com/nodenv/nodenv-package-json-engine

```
$ git clone https://github.com/nodenv/nodenv-package-json-engine.git $(nodenv root)/plugins/nodenv-package-json-engine
```

デフォルトだと専用ファイル `.node-versions` に使用しているNodeのバージョンが指定されるが、
このプラグインを使うと `package.json` 内に記述するバージョン参照に変えることができる。 

```package.json
{
  "engines" : {
    "node" : "10.16.0"
  }
}
```
`eingines` の項目についてはnpmのドキュメントを参照: [npm\-package\.json \| npm Documentation](https://docs.npmjs.com/files/package.json#engines)

参考: [プロジェクトによって使うnodeのバージョンが勝手に変わってほしい \- Qiita](https://qiita.com/hbsnow/items/c4b9f134ed9617bae489)

## pyenv
pythonのパッケージ管理。
Pockemon-Terminalが使いたくてPython3環境が欲しいために入れた。
ひとまず入れたのは `3.7.3` 。
https://qiita.com/kai_kou/items/f54931991a781b96bb9c

インストールしようとすると

```
zipimport.ZipImportError: can't decompress data; zlib not available
```

というエラーが出たので、
以下の記事を参考に更新を行った
https://qiita.com/zreactor/items/c3fd04417e0d61af0afe

また、そのあとも以下のエラーが出た

```
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
```

ググって、以下の記事を参考に、コマンドを流した。
https://blufflog.hatenablog.com/entry/2018/09/25/224259

```
$ CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl)" pyenv install 3.7.3
```

これでインストールできた。

## Pokemon-Terminal
これが入れたかった!!
https://github.com/LazoCoder/Pokemon-Terminal
`pyenv` で Python 3.7.3 をインストールして global に設定したあと、
以下の pip3 コマンドを実行でインストールできる。

```console
$ pyenv global 3.7.3
$ pyenv version
3.7.3 (set by /Users/user_name/.anyenv/envs/pyenv/version)

$ which pip3
/Users/user_name/.anyenv/envs/pyenv/shims/pip3

$ sudo pip3 install git+https://github.com/LazoCoder/Pokemon-Terminal.git
```

### ~~ポケモンをローマ字表記で呼び出し可能にする~~
**※Pokemon-terminalの記述が変わったため、今ではそのまま実行してもできなくなっていた**

デフォルトでは英語名での呼び出しだが対応がわからないので、
以下の日本語対応表に入れ替える。

pip3でインストールした場所は以下のコマンドで確認できる。

```console
 pip3 show pokemon-terminal
Name: pokemon-terminal
Version: 1.2.0
Summary: Pokemon terminal themes.
Home-page: https://github.com/LazoCoder/Pokemon-Terminal
Author: LazoCoder
Author-email:
License: GPLv3
Location: /Users/user_name/.anyenv/envs/pyenv/versions/3.7.3/lib/python3.7/site-packages
Requires: psutil
Required-by:
```

`Location:` に記載された場所がパッケージがインストールされている場所なので、そこにcdして日本語表に入れ替える。

```console
$ cd /Users/user_name/.anyenv/envs/pyenv/versions/3.7.3/lib/python3.7/site-packages/pokemonterminal/
(上記の場所は各ユーザーによって様々なので適宜入れ替える)

$ sudo mv Data/pokemon.txt Data/pokemon_en.txt
$ sudo curl -o Data/pokemon.txt https://gist.githubusercontent.com/suin/7ba1e2b7a1feb5d0c01a6756f736d24d/raw/b210c99b105cf1a4a6854a55cf3d2f95dc981eba/pokemon.txt
$ ls Data/
pokemon.txt    pokemon_en.txt
```

### iTermで起動したときにデフォルトでポケモンが表示されるようにする
デフォルト表示をメタモンにしたかったので、
`iTerm2` > `Preferences...` を開き、 `Profiles` > `General` の Command の項目で
`Send text at start:` に

```console
pokemon ditto; clear
```

と記述しておく。

### iTermウィンドウの透過
`iTerm2` > `Preferences...` を開き、
`Profiles` > `Window` の Window Appearance の項目で
`Transparency` を少しだけ右にスライドさせて、 `Blur` にもチェックを入れる。
するとターミナルの背景が少し透過されて、かつウィンドウが被っている部分にはぼかしが入る。
描画負荷が上がるが、後ろにどのウィンドウが隠れているか見つけやすく、個人的には便利なので設定している。
右側の `Blending` のバーを調整することで、背景色とポケモン画像の混ぜ具合を調整できる (背景色が黒の場合、左側に近づくほど黒くなり、右に近づくほどポケモン画像の原色に近くなる)
![スクリーンショット 2019-04-09 12.13.38.png](https://qiita-image-store.s3.amazonaws.com/0/53950/acea6882-9e20-8fa3-fc10-ec9391fbaee1.png)

### sshのホスト名と各ポケモンを紐付けて、ssh時にポケモン表示を変える
sshした時にホスト名に合わせて、特定のポケモンが表示されるようにする。
まずはシェルスクリプトを作る。

```console
$ mkdir -p ~/.pokemon/
$ vim ~/.pokemon/ssh_change_pokemon.sh
```

シェルスクリプトの内容は以下

```ssh_change_pokemon.sh
#!/bin/bash

# server_name ごとにポケモンを切り替える
case "$@" in
    "server_name1" ) pokemon arceus ;;
    "server_name2" ) pokemon pikachu ;;
    * ) pokemon unown ;;
esac

# ssh コマンドを実行
ssh $@;

# ログアウト時にメタモンに戻す
pokemon ditto;
```

`server_name` に、実際にsshしたいサーバー名を記載する。
サーバーが増えた場合は `* )` よりも前に追加していく。
(マッチしなかった場合は `* )` が実行されてアンノーンになる)
実行権限を付与して、 `~/.bashrc` にエイリアスを追加

```console
$ sudo chmod u+x ~/.pokemon/ssh_change_pokemon.sh
$ echo "alias alias ssh=~/.pokemon/ssh_change_pokemon.sh" >> ~/.bashrc
$ source ~/.bashrc
```

これで、sshした時に特定のポケモンが切り替わるので間違えづらくなる。

## ghq
gitのディレクトリの管理を一元にしたいため。
`brew install ghq` で入れた。

## peco
ghqと併用して使う。
また、単体でもhistoryと組み合わせて使えるようにすると便利。
[ghq, peco, hubで快適Gitライフを手に入れよう！ \- Qiita](https://qiita.com/itkrt2y/items/0671d1f48e66f21241e2)
[Mac で bash でも peco\-history を使いたい \- Qiita](https://qiita.com/yungsang/items/09890a06d204bf398eea)

## direnv
ディレクトリにcdしたときに発動するトリガー。
シェルスクリプトを書いて、特定のディレクトリで任意のコマンドを走らせていた。
https://qiita.com/toshichanapp/items/c5d76144bf6938207f4e

## ffmpeg
~~movファイルからgifファイルを作りたかったため入れた。~~
~~できれば最適なGUIアプリを見つけたかったが、あまり良いものが見つからなかった。~~
~~そのため、少し面倒だが~~
~~MacOSで動画キャプチャ → QuickTimeで変換したい範囲に編集 → ffmpegでアニメーションgifに変換 と手順を踏むことにした。~~

gifアニメ含むキャプチャは Kap で撮ることにしたため、ひとまず不要となった。

ffmpegのコマンドは以下の記事を参照
https://qiita.com/wMETAw/items/fdb754022aec1da88e6e



## pwgen
ランダムなパスワードをコマンドラインから生成できる。
brewでinstall。

## hub
GitHubがより便利に使えるコマンド。
`hub browse` で操作中のディレクトリのリポジトリのGitHubのページをブラウザで開いたり、
`hub checkout PULL_REQUEST_URL` でPR中のブランチをチェックアウトしたりできる。
brewで入れた。

参考:
[Github hubコマンドを使ってみる \- Qiita](https://qiita.com/shizuma/items/eb84c22805c55514e085)
[GitHubのPRレビューに便利なhubコマンド \- Qiita](https://qiita.com/kz110/items/b92819653a9b1630316d)


# サービス
## github
以下のように、二要素認証・https通信するためのトークンをデバイス用に発行する。
https://qiita.com/hnakamur/items/cb04882cc69f2d1a7367
https://qiita.com/n_morioka/items/650d2950f527d594a00f


# その他
## プリンター用ドライバ
会社で使用しているプリンター用ドライバを入れた

# 採用しなかったもの
## アプリケーション
### Alacritty
ターミナルツール。マルチプラットフォームで人気らしく、
移行を機に入れて使ってみたものの

- タブが使えない
- 日本語入力にやや難あり (文字確定まで入力表示が行われない)
- Pokemon-Terminalの適用方法がよくわからない

の理由により不採用となった。

### ShiftIt
[fikovnik/ShiftIt: Managing windows size and position in OSX](https://github.com/fikovnik/ShiftIt)
キーボードショートカットでMacのウィンドウのレイアウト調整が可能になるアプリ。
以前から特別大きな問題は無く使っていたが、公式が新しいメンテナ募集を呼びかけている状況だったため、より安定かつ便利機能の多い Rectangle に乗り換えた。

### Boostnote
[Boostnote \| Boost Happiness, Productivity, and Creativity\.](https://boostnote.io/)
Markdown形式で保存できるノート。snippetsの登録もできる。
手元のノート管理用に入れていたが、うまく使いこなせず、別のツールを使うようになっていった。
最終的には Obsidian に乗り換えた。