dotfilesを利用した快適なmacOS向け環境構築メモ (開発用・Python環境)
Update: 2019/06/05
概要
最近研究の関係でMacbook Proを手に入れたのと,インターンなどで セットアップする機会が増えたので, 自分が開発しやすいようにセットアップしたときのメモ.
新しいmacをセットアップするときにこれでおおよそ環境構築の自動化が可能になった.
ここでは主にCLIの開発環境構築を想定する.
設定ファイルとインストールスクリプトを
dotfiles としてまとめて管理しているのでそれを使用する.
Homebrewと付随するパッケージ・アプリのインストールまで自動化したものの, まだmacOSの本体設定までは踏み込めていないため,今後の課題としたい.
手順
- 言語設定,iCloudにログインなどの初期設定
- システム環境設定
- Keyboard
- caps lockとctrl入れ替え
- キーボードのショートカット
- spotlight無効
- 入力ソース: Command+Space - Mission Control - 右altでデスクトップ - Trackpad - クリック弱め,ポインタ最速 - タップでクリック - 3本指でフリック - 4本指でExpose - Default Browserの変更
- Keyboard
- 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
- 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
をしておく.
- 各種プラグインのインストール
READMEにも記載している.- zplug
zshにしたらzplug install
を叩く. - vim-plug
nvimを起動して,:PlugInstall
. この前にpip install neovim
しておく必要があるため, python環境をセットアップしたあとに行うのがよい. - tpm
tmuxを一度立てて,Prefix+Iでインストール.
- zplug
- インストールした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のカスタマイズ (しかし使わない)
- 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"
- Google IMEのダウンロード,環境設定
- コンマ,ピリオド,バックスラッシュ
- 候補選択ショートカット:
A -- L
- カスタム設定でPrecomposition(入力文字なし)→Escape→Cancel and deactivate IME
- これでVimで日本語入力時にC-j(bettertouchtoolでC-jをEscに割り当てている)2回で日本語入力キャンセル→Normalモードになる
- Shiftキーおした時にAlphabetにする
- 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
- hostnameの設定
- HostNameはデフォルトだと
dhcpxxx
といったようにdhcpで付与されたIPになっていた (macOS High Sierra, Macbook Pro 15-inch, 2017当時).
そのため固定のものに変更する..local
をつける必要があるみたい.$ scutil --get HostName $ sudo scutil --set HostName xxx.local
もしくは環境設定→共有から直接変更する.
- HostNameはデフォルトだと
- Finder
- Finderのデフォルトの表示をお好みに
- 環境設定ですべてのファイルの拡張子を表示
完了!
古い手順 (Homebrew, App Storeからのインストール)
homebrew-bundle 導入前のメモ. 必要最小限のものだけ入れたいなどの理由で手動で入れる場合のメモ.
- brew.sh に従いTerminal.appでHomebrewをInstall
- Homebrew-CaskをInstall
$ brew tap caskroom/cask # brew cask でもよい
- brew install
- zsh
- git
- tig
- imagemagick
- neovim
- tmux
- vim
- r
- python3
- reattach-to-user-namespace
- ripgrep
- nkf
- tree
- 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を公式ページからインストール.今はログイン必須ぽい.
- 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