はじめに
最近、新しいMac💻を買って、セットアップする必要がありました。
そのときに、自動化できることをいくか知ったので、その知見をまとめたいと思います
※この記事では開発環境の構築については記載していませんmm
自動化できるセットアップ、3つのポイント。
新しいMacのセットアップのうち、自動化できる部分が3つありました。
① システム環境設定 (defaultsコマンド)
まず、最初に「システム環境設定」についてです。
システム環境設定の画面をひとつひとつ開いてポチポチ設定するのは大変ですよね。
それをdefaults
コマンドで自動化します。
defaults
コマンド
「plist」と呼ばれるアプリやシステムの設定ファイルに、設定値を追加、変更、削除、検索するコマンドです。
defaults コマンドは User Defaults System にアクセスするためのコマンドです。
User Defaults System とは各ユーザー設定のストレージを管理するものであり、ほとんどの設定は永続的に保存されます。
# スクロールバーの表示:スクロール時に表示
defaults write -g AppleShowScrollBars -string "WhenScrolling"
# Dock:自動的に隠さない
defaults write com.apple.dock autohide -bool false
# Mission Control:ホットコーナー
# 左下で Mission Control
defaults write com.apple.dock wvous-bl-corner -int 2
defaults write com.apple.dock wvous-bl-modifier -int 0
# 右下で ディスプレイをスリープ
defaults write com.apple.dock wvous-br-corner -int 10
defaults write com.apple.dock wvous-br-modifier -int 0
# スリープとスクリーンセーバの解除にパスワードを要求
defaults write com.apple.screensaver askForPassword -bool true
# パスワードを要求するまでの秒数
defaults write com.apple.screensaver askForPasswordDelay -int 5
# タップでクリックを許可
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -int 1
# カーソルの移動速度を変更 (1〜15)
defaults write -g com.apple.trackpad.scaling -float 10
# Finder:隠しファイル/フォルダを表示
defaults write com.apple.finder AppleShowAllFiles true
# Finder:拡張子を表示
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
参考資料
各設定に対する設定値を確認するには、こちらの記事が参考になります。
システム環境設定をターミナル(defaultsコマンド)から設定する方法(一般) – OTTAN.XYZ
“defaults” の検索結果 – OTTAN.XYZ
defaultsコマンド自体の解説。
OSXの固有コマンド - MacWiki
② Mac App Store (mas-cli)
次に「Mac App Store」です。
Mac App Storeのソフトウェアも多く利用していると、1個1個インストールする作業は煩雑ですよね。
そこで、「mas-cli」というMac App Storeをコマンドラインインターフェイスで操作できるツールを利用します。
詳細はこちらから。
mas-cli/mas: Mac App Store command line interface
mas-cliの準備
Homebrew(パッケージマネージャ)を前提としているので、まず先にそちらを準備します。
homebrewとは何者か。仕組みについて調べてみた - Qiita
# Homebrewのインストール
# パスワードを入力が要求されたら、Macログイン時のパスワードを入力
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# mas-cliのインストール
brew install mas
各ソフトウェアのidを準備
masコマンドによるソフトのインストールでは、ソフト固有のidを指定します。
そのため、次にインストールしたいソフトのidを調べます。
idを調べる方法には次の3つがあります。
(1)既存の環境でlistコマンドを実行する
$ mas list
539883307 LINE (5.11.2)
406056744 Evernote (7.6)
409183694 Keynote (8.3)
405399194 Kindle (1.23.3)
417375580 BetterSnapTool (1.9)
540348655 Monosnap (3.5.4)
485812721 TweetDeck (3.9.889)
(2)searchコマンドでソフト名から調べる
search
コマンドのあと任意の文字列で名称から検索できます。
$ mas search slack
803453959 Slack (3.3.3)
1128645172 QuickPlan Slack Bot - Project Management team Comm (1.0)
1293799461 Send It - For Slack (1.0)
1271281910 Activebot for Slack (1.0)
994537604 ChannelScrobbler - Real-time scrobble bot for Last (1.2)
1406123151 Ratstash - For Slack (1.3.6)
(3)Mac App Store のWebサイト URLから調べる
例:https://itunes.apple.com/jp/app/slack/id803453959?mt=12
/id
から?
までの数字列がidです。Slackなら「803453959」がidとなります。
インストール実行方法
install
コマンドでインストールできます。
※mas signin
コマンドはmacOS 10.13以降では利用できないようなので、先にApple IDでiCloudやAppStoreにログインしておきます。
$ mas install 803453959 # Slack
③その他のソフト(cask)
最後に、AppStoreにない一般的なソフトについてです。
Homebrew CaskというMac App Store用の「mas-cli」と同様にコマンドラインでインストールできるツールがあります。
Homebrew/homebrew-cask
Homebrewのバージョンが0.9.5
以上であれば利用できます。
$brew --version
Homebrew 1.8.4
Homebrew/homebrew-core (git revision d25c; last commit 2018-12-15)
Homebrew/homebrew-cask (git revision fd8b4; last commit 2018-12-15)
searchコマンドでインストールできるソフトに存在するか確認
かなり多くのソフトがHomebrew Caskでのインストールに対応しています。
ないかも?と思わずに、search
コマンドで一度検索してみると意外とあります。
$brew search chrome
==> Formulae
chrome-cli chrome-export
==> Casks
chrome-devtools google-chrome
chrome-remote-desktop-host mkchromecast
chromedriver homebrew/cask-versions/google-chrome-beta
dmm-player-for-chrome homebrew/cask-versions/google-chrome-canary
epichrome homebrew/cask-versions/google-chrome-dev
インストール実行方法
install
コマンドでインストールできます。
brew cask install google-chrome
シェルスクリプトにまとめておく
3つのポイントであげたものついてまとめたシェルスクリプトとして用意しておけば、
システム環境設定からソフトウェアのインストールまでは、一気に完了します。
# 1.システム環境設定
# スクロールバーの表示:スクロール時に表示
defaults write -g AppleShowScrollBars -string "WhenScrolling"
# Dock:自動的に隠さない
defaults write com.apple.dock autohide -bool false
# Mission Control:ホットコーナー
# 左下で Mission Control
defaults write com.apple.dock wvous-bl-corner -int 2
defaults write com.apple.dock wvous-bl-modifier -int 0
# 右下で ディスプレイをスリープ
defaults write com.apple.dock wvous-br-corner -int 10
defaults write com.apple.dock wvous-br-modifier -int 0
# スリープとスクリーンセーバの解除にパスワードを要求
defaults write com.apple.screensaver askForPassword -bool true
# パスワードを要求するまでの秒数
defaults write com.apple.screensaver askForPasswordDelay -int 5
# タップでクリックを許可
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -int 1
# カーソルの移動速度を変更 (1〜15)
defaults write -g com.apple.trackpad.scaling -float 10
# Finder:隠しファイル/フォルダを表示
defaults write com.apple.finder AppleShowAllFiles true
# Finder:拡張子を表示
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
# HomeBrewのインストール
if [ ! -x "`which brew`" ]; then
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
fi
# mas-cliのインストール
if [ ! -x "`which mas`" ]; then
brew install mas
fi
# 2. mas-cli
mas install 539883307 # LINE
mas install 485812721 # TweetDeck
mas install 803453959 # Slack
mas install 405399194 # Kindle
mas install 880001334 # Reeder
mas install 568494494 # Pocket
mas install 410628904 # Wunderlist
mas install 406056744 # Evernote
mas install 417375580 # BetterSnapTool
mas install 540348655 # Monosnap
mas install 425955336 # Skitch
# 3. homebrew-cask
brew cask install google-japanese-ime
brew cask install google-chrome
brew cask install firefox
brew cask install google-backup-and-sync
brew cask install dropbox
brew cask install adobe-acrobat-reader
brew cask install skype
brew cask install macs-fan-control
brew cask install scroll-reverser
brew cask install ccleaner
brew cask install alfred
brew cask install cheatsheet
sh ~/setup.sh
このコマンドを実行したあと、各アプリを起動して、初期設定などをしていきます。
さらにセットアップの自動化を追求する
Ansibleと組み合わせている方もいました。
Mac OSXの設定をAnsibleで9割以上自動化する - will and way
セットアップのご参考に!
Mac Book Pro セットアップメモ - Qiita
インフラエンジニアなMacセットアップ - Qiita
まとめ
クリスマス🎄年末年始🎍で、これから新しいMacを購入する予定がある方など、
ぜひ、この記事を参考にセットアップ作業を自動化して、スムーズな環境構築をしてみてください。
自分は今までこういった自動化できることすら、知らなかったので、すごく新鮮でした。
※Qiita初投稿です! 間違いなどあればコメントおねがいします!