Mac を買い換えたときにすること 2014 冬


## TL;DR

- `brewfile` is dead.
- cider 使おう

## Mac Bootstrap 手法

Mac, 100 台一気に用意するとかあんまりなくて, 新しく買ったとき, 自分の Mac を高速に使える状態にしたいという人が多いと思う. やり方としては shell script 書いてバチコーンと準備するとかいろいろあって, いまだと homebrew を使うのが一般的だと思う. Boxen はつらそう.

[Mac - Boxen使ってて許されるのは2013年だけだった - Qiita](http://qiita.com/yuku_t/items/50b2b376604c2fefd8cd)

今年の 1 月くらいから brewfile 書いておいて `brew bundle` するのが流行ったんだけど, `bundle` コマンドが廃止されてしまい, これという決定的手法が見出されていない. そもそもそれを知らないまま作業していたので `brew bundle` して焦った.

![スクリーンショット 2014-12-14 11.36.40.png](https://qiita-image-store.s3.amazonaws.com/289/29618/f43f6430-b011-9c89-712d-3155d50c4110.png "スクリーンショット 2014-12-14 11.36.40.png")

[エンジニア Mac アプリ 環境 おすすめ - mizchi's blog](http://mizchi.hatenablog.com/entry/2014/03/02/090517)

色々調べてみると, `bundle` は完全になくなったわけではなく, `homebrew/boneyard` に移されただけなので, tap すれば使えるんだけれど, まあ "boneyard" のものはあまり使いたくないよね, ということで.

[homebrew - brew bundleが使えなくなったのでとりあえず使えるようにした - Qiita](http://qiita.com/matsu_chara/items/78d0d0299a2f45270046)

今回は最近スターを集めている [msanders/cider](https://github.com/msanders/cider) を使う. Python で実装されていて, 実体は homebrew によるブートストラップ用のラッパーである.

以降は cider を使って買ったばかりの Mac OSX を使えるようにするまでの記録である.

## 前のパソコンでの準備

cider で使うための json を作って github の dotfiles をまとめたリポジトリに入れておく.
`bootstrap.json` は以下のような形式で書いた ([一部略](https://github.com/sqrtxx/dotfiles/blob/master/bootstrap.json)).

```
{
    "after-scripts": [
        "brew linkapps"
    ],
    "casks": [
        "xquartz",
        "alfred",
        "android-file-transfer"
        ],
    "formulas": [
        "autoconf",
        "emacs",
        "gmp4",
        "libksba",
        "mecab-ipadic",
        "peco",
        "readline",
        "automake",
        "fontconfig",
        "go"
        ],
    "taps": [
        "caskroom/cask",
        "homebrew/binary",
        "homebrew/dupes",
        "homebrew/php",
        "homebrew/science",
        "homebrew/versions",
        "fnichol/dvm",
        "peco/peco",
        "phinze/cask",
        "suin/suin",
        "jimbojsb/launchrocket"
    ]
}
```

## 移行するパソコンでの準備

起動させ初回の入力等が終わったらターミナルを開く

### homebrew を入れる

http://brew.sh/ の Install Homebrew に最新の入れ方が載っている.

```bash
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

### cider を入れる

その前に pip を使えるようにする.

```bash
sudo easy_install pip
```

pip で cider を入れる.

```bash
sudo pip install cider
```

### cider file を落とす

```bash
git clone https://github.com/sqrtxx/dotfiles.git ~/.cider
```

## 実行

```bash
cider restore
```

終わったら基本的なアプリケーションは入っているので, 残りは App Store から落とす.

- BetterSnapTool
- Quiver
- LINE
- TweetDeck

キーボード>ファンクションキーとして使用

## Appendix

### 失敗例

#### brewfile を用意していた

実は上はクリーンインストールで, brewfile を用意して臨んでいた. cider でなんとか乗り切った.

#### Kobito を cask で入れたら 1.9 系だった

`brew cask uninstall` し, App Store で入れ, 下にある方法で取ってきた設定を移行. 2 系の設定ファイルは 1.9 系では動かないので焦った. Kobito Premium 使うのもいいかも.

#### dotfiles で gitignore_global を管理してなかった

Qiita:Team にドキュメントが残っていたのでそれで回復

### 設定の移行

#### Google IME

開発版で提供されていたオフィシャルの同期機能は廃止されている. しかし引き継ぎだけならば同期している必要はない.

[Google日本語入力の辞書を複数PCでクラウド同期させる - Qiita](http://qiita.com/kawaz/items/23f23b89aab978e60f71)

なので, 地道に設定ファイルを探してみる.
おそらく [Chromium](http://www.chromium.org/user-experience/user-data-directory) と同様の設定保存方法を取っているので, `~/Library/Application Support` にあるとアタリをつけ探す.

```
~/Library/Application\ Support/Google/JapaneseInput/
```
  
上記ディレクトリの以下のファイルが存在することがわかる.

```bash
.encrypt_key.db
.renderer.ipc
.usagestats.db
.history.db
.server.lock
.registry.db
.session.ipc
boundary.db
cform.db
config1.db
segment.db
user_dictionary.db
```

https://productforums.google.com/d/msg/ime-ja/ut-s3UFrO88/9KurONvq3hgJ より, 以下をコピーし新しい Mac に移す.

```bash
boundary.db
cform.db
config1.db
segment.db
user_dictionary.db
```

#### Chrome

基本的には提供されている同期機能を使う.
ただし自分で入れた拡張は共有されないため, メモしておく

#### Kobito

1.9 までは

```bash
~/Library/Kobito/
```

2.0 以降は

```bash
~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito/
```

#### Karabiner, Seil


[Karabiner - OS X用のソフトウェア](https://pqrs.org/osx/karabiner/document.html.ja#export)
[Seil - OS X用のソフトウェア](https://pqrs.org/osx/karabiner/seil.html.ja#export)

設定を export できる. 新しい Mac ではこれに実行権限与えて叩くだけ.

```bash
/Applications/Seil.app/Contents/Library/bin/seil export > ~/Desktop/seil-import.sh
/Applications/Karabiner.app/Contents/Library/bin/karabiner export > ~/Desktop/karabiner-import.sh
```

#### Dash

スクショ撮っておく.

![ 2014-12-13 19.22.24.png](https://qiita-image-store.s3.amazonaws.com/289/29618/fe2d7123-0b42-9268-c9cc-7a723b2f08dd.png " 2014-12-13 19.22.24.png")

#### Photoshop

[プリセットの移行（Photoshop CC）](http://helpx.adobe.com/jp/photoshop/kb/cq04241937.html#B. プリセットの書き出しと読み込み)

#### Alfred

Work Frow を移行

```bash
~/Library/Application\ Support/Alfred\ 2/Workflow\ Data/
```

#### Atom

[Is there a method to import/export settings? - features - Atom Discussion](https://discuss.atom.io/t/is-there-a-method-to-import-export-settings/10616)


```bash
~/.atom
```

こんな方法も

[github Atom の packageを複数のマシンで同期する。 - st44100's blog](http://st44100.hatenablog.com/entry/2014/07/24/004818)

#### dotfiles

地道に dotfiles リポジトリに登録しておく.
cider による symlink のほか, homesick を使う方法もある.

#### 他

- システム環境設定はスクショ撮っておく
- ドックやメニューバーもスクショで残す

### cider の bootstrap.json の作り方

#### formula

```bash
brew list
```

#### cask

```bash
brew cask list
```

#### tap

```bash
brew tap
```


### その他

#### アプリ一覧を見る

```bash
ls -1 /Applications/
```

#### 移行後手でやったこと

- システム環境設定
	- spotlight のショートカットを殺す (Emacs 用)
	- トラックパッドの設定を編集
	- サウンドを編集
		- 通知音の音量を 0 に
	- google ime を標準設定に（再起動必要）