Update: 2019/06/05

概要

最近研究の関係でMacbook Proを手に入れたのと,インターンなどで セットアップする機会が増えたので, 自分が開発しやすいようにセットアップしたときのメモ.

新しいmacをセットアップするときにこれでおおよそ環境構築の自動化が可能になった. ここでは主にCLIの開発環境構築を想定する. 設定ファイルとインストールスクリプトを
dotfiles としてまとめて管理しているのでそれを使用する.

Homebrewと付随するパッケージ・アプリのインストールまで自動化したものの, まだmacOSの本体設定までは踏み込めていないため,今後の課題としたい.

手順

  1. 言語設定,iCloudにログインなどの初期設定
  2. システム環境設定
    • Keyboard
      • caps lockとctrl入れ替え
      • キーボードのショートカット
    • spotlight無効
    • 入力ソース: Command+Space - Mission Control - 右altでデスクトップ - Trackpad - クリック弱め,ポインタ最速 - タップでクリック - 3本指でフリック - 4本指でExpose - Default Browserの変更
  3. dotfilesからインストール
    initを叩いたときに,Homebrewのインストールおよび
    プロンプトでY/yと打てばhomebrew-bundleにより Homebrewパッケージとアプリのインストールまで自動化して行われる. 状況によってすべてインストールするのは無駄な場合があるので嫌であれば手動で行う.
    Nerd Fontsのcloneに時間がかかる.ターミナルアプリ (iTerm等) の設定でNerd Fontsを使うようにする.
    $ bash -c "`curl -fsSL raw.github.com/vwrs/dotfiles/master/bootstrap`"
    command: init
    ...
    command: font-nerd
    ...
    command: deploy
    $ sudo vi /etc/shells
    # /usr/local/bin/zshを追加
    $ chsh -s /usr/local/bin/zsh
    
  4. python (pyenv)
    今はDockerなどで環境切り分けてもいいが,何かとそのままローカルで作業するほうが楽だったりするのでまだ入れておく. 情報が古い場合があるのでGitHubのREADMEを参考にする.
    $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
    $ exec $SHELL -l
    

    zshにしているならdotfilesの設定でpyenvのPATHが通っているのでコマンドが使えるはず. 必要に応じてpyenv-virtualenvもインストール. pyenvが使えるようになったらお好みの環境をインストール.

    $ pyenv install -l
    $ pyenv install miniconda3-latest
    $ pyenv global miniconda3-latest
    

    あとは適宜必要なものをインストール. Neovimのプラグインのために

    $ pip install neovim
    

    をしておく.

  5. 各種プラグインのインストール
    READMEにも記載している.
    • zplug
      zshにしたら zplug install を叩く.
    • vim-plug
      nvimを起動して,:PlugInstall. この前に pip install neovim しておく必要があるため, python環境をセットアップしたあとに行うのがよい.
    • tpm
      tmuxを一度立てて,Prefix+Iでインストール.
  6. インストールしたAppの設定 (ライセンス・設定ファイルのダウンロード)
    • 自分の場合はGoogle DriveにiTermとBetterTouchTool (BTT) の設定・ライセンスファイルがあるので設定を引き継ぐ.
    • BTTは多くのアプリの機能がこれ一つでまかなえるのでおすすめ.
      • 途中から有料化したが,自分が買ったときはスマホから遠隔操作できる BTT Remote を100円くらいで 買うだけでライセンスをもらえたのでよかった.今は知らない.
    • よく使うキーマップの設定 (BTT).
      • C-jでESC
      • Ctrl+Command+h,j,k,lでウィンドウリサイズ
      • Command+jでCommand+Tab
    • 基本直前のアプリと切り替える事が多いため. - Touch Barのカスタマイズ (しかし使わない)
  7. SSH, Gitの設定
    $ ssh-keygen -t rsa -b 4096 -C 'username@example.com'
    

    必要に応じて公開鍵をGitHubなどのサービスに登録する.

    $ pbcopy < ~/.ssh/id_rsa.pub
    

    GitHubは以下のコマンドが通るように ~/.ssh/config に設定する.

    $ ssh -T git@github.com
    

    ユーザー名が表示されれば成功.
    その他 ~/.ssh/config の設定. ServerAliveInterval を設定するなど.
    ~/.gitconfig にはユーザー情報は抜いてあるので,入れる (git status がクリーンにならないのでこの辺うまく管理できないかな…)

    $ g config --global user.name "User Name"
    $ g config --global user.email "user@example.com"
    
  8. Google IMEのダウンロード,環境設定
    • コンマ,ピリオド,バックスラッシュ
    • 候補選択ショートカット: A -- L
    • カスタム設定でPrecomposition(入力文字なし)→Escape→Cancel and deactivate IME
    • これでVimで日本語入力時にC-j(bettertouchtoolでC-jをEscに割り当てている)2回で日本語入力キャンセル→Normalモードになる
    • Shiftキーおした時にAlphabetにする
  9. LaTeXの設定 今は論文もOverleaf使ってたりするので,latexit使うときくらいしか必要ないが…
    $ brew cask install basictex latexit
    $ brew install ghostscript
    $ sudo tlmgr update --self --all
    # PATHは勝手に通してくれるので設定必要なし
    # luatex-ja
    $ sudo tlmgr install collection-langjapanese
    $ kanji-config-updmap-sys status
    CURRENT family for ja: ipaex
    Standby family : ipa
    $ sudo tlmgr install latexmk
    # `xxx.sty` not found → install xxx
    $ sudo tlmgr install ctablestack alg algorithms algorithmicx
    $ sudo tlmgr install texdoc
    $ sudo tlmgr install filehook framed here wrapfig mediabb
    
  10. hostnameの設定
    • HostNameはデフォルトだと dhcpxxx といったようにdhcpで付与されたIPになっていた (macOS High Sierra, Macbook Pro 15-inch, 2017当時).
      そのため固定のものに変更する. .local をつける必要があるみたい.
      $ scutil --get HostName
      $ sudo scutil --set HostName xxx.local
      

      もしくは環境設定→共有から直接変更する.

  11. Finder
    • Finderのデフォルトの表示をお好みに
    • 環境設定ですべてのファイルの拡張子を表示

完了!

古い手順 (Homebrew, App Storeからのインストール)

homebrew-bundle 導入前のメモ. 必要最小限のものだけ入れたいなどの理由で手動で入れる場合のメモ.

  1. brew.sh に従いTerminal.appでHomebrewをInstall
  2. Homebrew-CaskをInstall
    $ brew tap caskroom/cask  # brew cask でもよい
    
  3. brew install
    • zsh
    • git
    • tig
    • imagemagick
    • neovim
    • tmux
    • vim
    • r
    • python3
    • reattach-to-user-namespace
    • ripgrep
    • nkf
    • tree
  4. Appのインストール 以下を brew cask
    • firefox / google-chrome
    • alfred
    • bettertouchtool
    • iterm2
    • slack
    • flux
    • cmd-eikana
    • vimr
    • boostnote
      • DockからオプションでAll Desktopにしておく
    • mendeley
    • basictex
    • latexit
    • Spark.app (これはApp Storeから.メールアプリ)
      加えて,Docker for Macを公式ページからインストール.今はログイン必須ぽい.
  5. defaultsの設定
    # Key Repeat
    defaults write -g InitialKeyRepeat -int 14
    defaults write -g KeyRepeat -int 1
    # QuickLook
    defaults write com.apple.finder QLEnableTextSelection -bool true
    defaults write com.apple.finder QLHidePanelOnDeactivate -bool true
    # ScreenCapture
    defaults write com.apple.screencapture name capture
    defaults write com.apple.screencapture include-date -bool false
    defaults write com.apple.screencapture location ~/screencapture
    # Dockのアニメーション無効化
    defaults write com.apple.dock autohide-delay -float 0
    defaults write com.apple.dock autohide-time-modifier -float 0
    # 今は効くかわからないがアニメーション無効化
    defaults delete com.apple.dock expose-animation-duration
    defaults write com.apple.dock springboard-show-duration -int 0
    defaults write com.apple.dock springboard-hide-duration -int 0
    defaults write com.apple.finder DisableAllAnimations -bool true
    defaults write -g NSInitialToolTipDelay -integer 100