Macの設定をコマンドラインから変更する方法
はじめに
Macの初期設定時に設定をいろいろGUIで設定していくことが多いが、コマンドで設定できるものがある。 コマンドで設定できるということはセットアップスクリプトとして管理することで、一発で設定を完了することができ非常に便利である。 また、カスタムしているものが一覧化されることもメリットである。 久しぶりにプライベートのMacを新調した際にコマンドで設定したものをメモとして残す。
plist
Macの設定の多くは ~/Library/Preferences/ 配下の .plist ファイルに保存されている。
これらの設定値は defaults コマンドで変更できる。
defaults はiOS/macOS開発者ならお馴染みの UserDefaults APIのコマンドバージョンである。
基本的な構文は以下の通りで、ドメイン名(plistファイル名から .plist を除いたもの)、キー名、型、値を指定して書き込みができる。
defaults write <domain> <key> -<type> <value>
変更前に現在の値を defaults read <domain> <key> で確認してメモしておくと安心で、元に戻したくなった場合は defaults delete <domain> <key> でリセットできる。
主な型は以下の通り。
-bool: 真偽値(true/false)-int: 整数-float: 浮動小数点数-string: 文字列-dict: 辞書型(キーと値のペア)
一部設定は保護されているため、ターミナルにフルディスクアクセスを許可していないと書き込めないことに注意(com.apple.universalaccess などが該当する)。
また後述するがアプリに関しては再起動する必要があったり、OS側で設定の反映させるためにコマンドが必要だったりする。
トラックパッド
タップでクリックを有効化する。
defaults write com.apple.AppleMultitouchTrackpad Clicking -bool true
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
カーソル
カーソルサイズと色を変更する。ターミナルにフルディスクアクセスを許可している必要がある。
defaults write com.apple.universalaccess mouseDriverCursorSize -float 3.0
defaults write com.apple.universalaccess cursorFill -dict \
red -float 0.58 \
green -float 0.0 \
blue -float 0.827 \
alpha -float 1.0
ちなみにフルディスクアクセスは以下のスクリプトを実行することで開くことができる。
open "x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"
Finder
ネットワークドライブやUSBドライブに .DS_Store ファイルを作成しない。
よく勘違いしている人がいるが、ローカルボリュームでは作られてしまうし、無効化はできない。
そのため後述するリスト表示をデフォルトにしてアイコン表示でアイコン位置をずらしてしまうことを防ぐと良い。(作られる原因の多くがこのためだと思うので。)
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
隠しファイルとすべてのファイルの拡張子を表示する。
defaults write com.apple.finder AppleShowAllFiles -bool true
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
ステータスバーとパスバーを表示する。
defaults write com.apple.finder ShowStatusBar -bool true
defaults write com.apple.finder ShowPathbar -bool true
リスト表示をデフォルトにする。
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
指定できる値は "icnv"(アイコン)、"Nlsv"(リスト)、"clmv"(カラム)、"glyv"(ギャラリー)。
フォルダを常にファイルより先頭に表示する。
defaults write com.apple.finder _FXSortFoldersFirst -bool true
ファイルの拡張子を変更する際の警告を無効化する。
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
最後に killall で再読み込みさせて変更を反映させる。
killall Finder
Dock
Dockを左側に配置する。
defaults write com.apple.dock orientation -string "left"
orientation は "left" / "right" / "bottom" を指定できる。
Dockのアプリを初期化する。
defaults write com.apple.dock persistent-apps -array
最後に killall で再読み込みさせて変更を反映させる。
killall Dock
キーボード
ファンクションキーを標準のファンクションキーとして使用する。
defaults write -g com.apple.keyboard.fnState -bool true
自動大文字化を無効化する。
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool "false"
設定の反映
Ventura以降では設定を即座に反映するために以下のコマンドを実行する。
/System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u
壁紙
壁紙もplistに設定(com.apple.wallpaper.plist)があったので同様にできるかと思いきや、別途SQLiteデータベース(~/Library/Application Support/Dock/desktoppicture.db)に設定されているらしい。
これを設定するにはAppleScriptが確実で以下のようにする。(例は紫単色の壁紙に設定している。)
osascript -e 'tell application "System Events" to tell every desktop to set picture to "/System/Library/Desktop Pictures/Solid Colors/Blue Violet.png"'
デフォルトアプリ
ブラウザを含めたデフォルトアプリ設定は ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist に保存されている。
しかし、これを手動で変更することは推奨されておらず、標準ではGUIでの設定が推奨される。
今回は利用しなかったが、サードパーティの duti というツールを使うことでこれらをコマンドで簡単に変更することができる。
標準ブラウザのみを設定できれば良いのであれば、下記のスクリプトで設定を開いてGUIで変更する。
open "x-apple.systempreferences:com.apple.preference.dock"
おわりに
とりあえず今自分が調査し設定したものを羅列した。 初期設定に関してはドットファイルをGit管理しているのでそこに含める予定。 他のドットファイルに関してもそのうち公開できれば。