Edited at

Macのセットアップを自動化!3つのポイント


はじめに

最近、新しいMac💻を買って、セットアップする必要がありました。

そのときに、自動化できることをいくか知ったので、その知見をまとめたいと思います



※この記事では開発環境の構築については記載していませんmm


自動化できるセットアップ、3つのポイント。

新しいMacのセットアップのうち、自動化できる部分が3つありました。


① システム環境設定 (defaultsコマンド)

まず、最初に「システム環境設定」についてです。

システム環境設定の画面をひとつひとつ開いてポチポチ設定するのは大変ですよね。

それをdefaultsコマンドで自動化します。

defaultsコマンド


「plist」と呼ばれるアプリやシステムの設定ファイルに、設定値を追加、変更、削除、検索するコマンドです。

Macギークなら知っておきたいdefaultsコマンドの使い方 | Macとかの雑記帳

defaults コマンドは User Defaults System にアクセスするためのコマンドです。

User Defaults System とは各ユーザー設定のストレージを管理するものであり、ほとんどの設定は永続的に保存されます。

Macのマウスカーソルを爆速にする方法 - Qiita



設定例

# スクロールバーの表示:スクロール時に表示

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つのポイントであげたものついてまとめたシェルスクリプトとして用意しておけば、

システム環境設定からソフトウェアのインストールまでは、一気に完了します。


setup.sh


# 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初投稿です! 間違いなどあればコメントおねがいします!