わけあって新しく環境を設定することになったので備忘録代わりに。
スクリプタブルであること
新しいMac買ったときって環境作るの面倒臭いですよね。
- OSの設定
- 必要なパッケージのインストール
- 必要なアプリケーションのインストール
- 各種アプリケーションの設定
やることがたくさんあります。
これを手でやっていると面倒臭いですし、抜け漏れ出ますよね。
まぁ気付き次第ちょこちょこ設定していけばいいんですが、自分色になっていくまで結構不便だったりします。
だからスクリプト化しようや
パッケージやアプリケーションのインストールについてはMac-geekなみなさんであればbrew(cask)など使ってうまいことスクリプト化されていると思うので、今回は触れません。
ですので、OSの設定について解説します。各種アプリケーションの設定も実は今回の話でだいたいスクリプト化可能です。
defaultsコマンド
読んで man defaults
流石に申し訳ないので解説しますと:
デフォルトでは、ユーザーがコマンドラインシェルからのMac OS Xユーザのデフォルトを、読み取り、書き込み、および削除することができます。 Mac OS Xのアプリケーションやその他のプログラムは、好みやapplicationsaren'tは(そのようなデフォルトの新規文書のフォント、またはInfopanelの位置として)実行しているときに維持されなければならない他の情報をrecorduserするために、デフォルトのシステムを使用しています。この情報の多くは、アプリケーションのPreferencespanelを介してアクセス可能ですが、それのいくつかは、そのような情報パネルの位置として、ではありません。あなたはデフォルト値を持つthisinformationにアクセスすることができます
とのこと (man defaults
translated by Google Translate)
使い方
読んで man defaults
ざっくり:
-
defaults read DOMAIN KEY ...
で設定読み込み -
defaults write DOMAIN KEY ...
で設定書き込み
です
私の設定内容
こちらに添って説明。
QuickLook
QuickLookのテキストを選択可能にする
defaults write com.apple.finder QLEnableTextSelection -bool true
スクリーンキャプチャ
- jpgで保存
- 影付けない
-
ss~
みたいな名前で保存 - ssディレクトリに保存
defaults write com.apple.screencapture type jpg
defaults write com.apple.screencapture “disable-shadow” -bool yes
defaults write com.apple.screencapture name ss
defaults write com.apple.screencapture location ~/ss/
キーボード早め
まぁなんかこの辺はみなさん設定されてるかと思います
defaults write -g KeyRepeat -int 2
defaults write -g InitialKeyRepeat -int 15
スクロール方向
老人なので従来式じゃないとダメです…
defaults write -g com.apple.swipescrolldirection -bool false
OSの言語設定
英語にします
defaults write -g AppleLanguages -array en ja
辞書の設定
ちょっとマニアック(笑)
- 国語
- 和英 / 英和
- Wikipedia
- 英類語
- 英英
を使うように設定します
defaults write -g com.apple.DictionaryServices -dict-add "DCSActiveDictionaries" '("/Library/Dictionaries/Sanseido Super Daijirin.dictionary", "/Library/Dictionaries/Sanseido The WISDOM English-Japanese Japanese-English Dictionary.dictionary", "/System/Library/Frameworks/CoreServices.framework/Frameworks/DictionaryServices.framework/Resources/Wikipedia.wikipediadictionary", "/Library/Dictionaries/Oxford Thesaurus of English.dictionary", "/Library/Dictionaries/Oxford Dictionary of English.dictionary")'
DCSActiveDictionariesに辞書のパスを配列で渡せばいいっぽい。
Spotlight呼び出しショートカット
Spotlightをoption + command + space
で呼び出せるようにします。
defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 61 "<dict><key>enabled</key><false/></dict>"
defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 64 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>32</integer><integer>49</integer><integer>1572864</integer></array><key>type</key><string>standard</string></dict></dict>"
次の入力ソースを選択
とショートカットが被るので一行目で無効に。
二行目でSpotlightの設定をしています。
61
とか64
とかが設定項目のキーです。こちらに詳しい。
parameters
に3つ数字を渡すが、1つめと2つめはよく分かってないのでデフォで入ってる値をそのままにした。3つめでキーを指定している。
optionが524288でcommandが1048576なので足して1572864。
CapsLockをControlに割り当てる
CapsLockって使わなくないですか…?
keyboardid=$(ioreg -n IOHIDKeyboard -r | grep -E 'VendorID"|ProductID' | awk '{ print $4 }' | paste -s -d'-\n' -)'-0'
defaults -currentHost write -g com.apple.keyboard.modifiermapping.${keyboardid} -array '<dict><key>HIDKeyboardModifierMappingDst</key></dict><integer>2</integer> <key>HIDKeyboardModifierMappingSrc</key><key>0</key>'
keyboardid
の取り方はこちらに習った。
Dock
- 左に配置
- 自動で隠す
- 起動中のアプリだけ表示
- 小さめの表示
defaults write com.apple.dock orientation left
defaults write com.apple.dock autohide -bool true
defaults write com.apple.dock persistent-apps -array
defaults write com.apple.dock tilesize -int 25
Finder
- デスクトップにアイコンを表示しない
- 新規ウィンドウはホームディレクトリで開く
- 拡張子の変更を警告しない
- 検索をデフォルトでカレントディレクトリ以下にする
- カラム表示にする
- サイドバー表示の諸々...
- 拡張子はすべて表示
defaults write com.apple.finder CreateDesktop -bool false
defaults write com.apple.finder NewWindowTarget -string "PfLo"
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}"
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
defaults write com.apple.finder FXPreferredViewStyle -string "clmv"
defaults write com.apple.finder ShowRecentTags -bool false
defaults write com.apple.finder SidebarDevicesSectionDisclosedState -bool true
defaults write com.apple.finder SidebarPlacesSectionDisclosedState -bool true
defaults write com.apple.finderSidebarSharedSectionDisclosedState -bool true
defaults write -g AppleShowAllExtensions -bool true
ほか
ネットワークディスク上に.DS_Store
を作らない(重要)
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
バッテリー残量のパーセンテージ表示
defaults write com.apple.menuextra.battery ShowPercent -string "YES"
Bluetooth切っとく
sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 0
設定を反映する
killall Dock
killall SystemUIServer
killall Finder
けど
反映されないものも多いのでYou better reboot your machine..🤔
設定項目の探し方
Dictionary.appを例にとって書きたいところですが この余白はそれを書くには狭すぎる。 (後日追記予定)
雑に説明すると
defaults read > before
# ここで設定変更
defaults read > after
diff before after
とかして探してくイメージです。
最後に
enjoy scripting your mac!
参考
こちらとそれを解説したこちら(全8回) <- 相当真似ました。 ありがとうございます。
その他にStackoverflowの先人たち!
免責
記載スクリプトの実行により被った一切の損害等について当方では責任を負いかねます。
ぶっちゃけ理解が足りていない部分も相当にありますので実行についてはすべて自己責任でお願い致します。
環境設定の項目が開けなくなったり、アプリケーションがNot Respondingになったりします。(実際試している途中何度かなりました)
defaults read
とdefaults write
を駆使してなんとか元には戻せますが、遊ぶ際には無事な状態のバックアップを取っておくことを忘れないで下さいね!