mac, tips, defaults
背景
更新: 2019/09/16。
mac には defaults コマンドという様々な環境設定を行える便利コマンドがあります。 よく挙げられる例としては、隠しファイルを表示したり、マウスの動きを速くするというのがあります。
例えば、新しいMacを使い始めるとき、まず始めに行う作業はこの設定だったりして、結構時間が取られます。 4, 5年に一度くらいの頻度だったら良いのですが、新しい Mac が出るたびに乗り換える方は面倒に感じると思います。
どんな設定が可能か確認する
そんな便利な defaults コマンドですが、調べた限りではAppleの方でドキュメントを用意しておりません。
そこで、defaults read で現在のアプリケーションが設定しているプロパティを確認できます。
1$ defaults read | less
ここからさらに絞り込むことができ、Calendar の設定を確認する場合は、
1$ defaults read com.apple.iCal
2
3{
4 AccountDisplayOrder = (
5 Birthday,
6 Local,
7 );
8 AllDayAreaHeight = 2;
9 CalDefaultCalendar = UseLastSelectedAsDefaultCalendar;
10 CalFirstVisibleDate = "2019-10-13 09:45:00 +0000";
11 CalendarSidebarShown = 1;
12 CalendarSidebarWidth = 165;
13 CollapsedTopLevelNodes = {
14 MainWindow = (
15 );
16 };
17 "Default duration in minutes for new event" = 15;
18 DelegatesInSeparateWindows = {
19 iCal = {
20 };
21 };
22 LastSaveDate = "2019-09-16 05:45:42 +0000";
23 NSNavLastRootDirectory = "~/Desktop";
24 NSNavLastUserSetHideExtensionButtonState = 1;
25 ViewModelMigrated = 1;
26 "first minute of day time range" = 0;
27 "first shown minute of day" = 0;
28 "last calendar view description" = "7-day";
29 "last minute of day time range" = 1440;
30 lastViewsTimeZone = "Asia/Tokyo";
31 "number of hours displayed" = 24;
32}
という感じで見ることができます。また、どのようなアプリケーションがあるかは、
1$ defaults domains
で確認します。
すでに多くの方々が defaults で設定している例があるため、こちらを参考にすると良いでしょう。
- ターミナルから Mac を設定する(defaults write コマンド等) - Qiita
- 10 of the Best Defaults Write Commands to Improve Mac OS X
iCalの設定などGUIでは設定できないもの(デフォルトのスケジュールを15分にする、カーソルのリピートを最速にするなど)もあるので、興味が湧いた方はぜひマスターしてみてください。
これらのコマンドには再起動しないと反映されないものもあるため、設定後うまく反映していなさそうでしたら、macを再起動してみてください
おすすめ設定
1# tabなどでMacのボタンのフォーカスを変えられるフルコントロールを設定
2defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
3
4# キーリピートの高速化
5defaults write NSGlobalDomain KeyRepeat -int 2
6defaults write NSGlobalDomain InitialKeyRepeat -int 15
7
8# スペルの訂正を無効にする
9defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false
10
11# CapsLock を Ctrl に変更する
12# get string like : 1452-630-0 for keyboard_id (ref: http://freewing.starfree.jp/software/macos_keyboard_setting_terminal_commandline)
13keyboard_id="$(ioreg -c AppleEmbeddedKeyboard -r | grep -Eiw "VendorID|ProductID" | awk '{ print $4 }' | paste -s -d'-\n' -)-0"
14defaults -currentHost write -g com.apple.keyboard.modifiermapping.${keyboard_id} -array-add "
15<dict>
16 <key>HIDKeyboardModifierMappingDst</key>\
17 <integer>30064771300</integer>\
18 <key>HIDKeyboardModifierMappingSrc</key>\
19 <integer>30064771129</integer>\
20</dict>
21"
22
23# タップしたときに、クリックとする
24defaults write -g com.apple.mouse.tapBehavior -int 1
25# マウスの速度を速める
26defaults write -g com.apple.mouse.scaling 5
27# 3本指でmission control & expose
28defaults write com.apple.dock showMissionControlGestureEnabled -bool true
29defaults write com.apple.dock showAppExposeGestureEnabled -bool true
30defaults write com.apple.dock showDesktopGestureEnabled -bool true
31defaults write com.apple.dock showLaunchpadGestureEnabled -bool true
32
33
34# show hidden files in finder
35defaults write com.apple.finder AppleShowAllFiles YES
36# Automatically hide or show the Dock
37defaults write com.apple.dock autohide -bool true
38# Wipe all app icons from the Dock
39defaults write com.apple.dock persistent-apps -array
40# Magnificate the Dock (Dock の拡大機能を入にする)
41defaults write com.apple.dock magnification -bool true
42
43# 上記設定後は、Finder と Dock を再起動する
44killall Finder
45killall Dock
46
47#========================== Safari Settings ==========================
48# Enable the `Develop` menu and the `Web Inspector`
49defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true
50defaults write com.apple.Safari IncludeDevelopMenu -bool true
51defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
52
53#========================== iCal Settings ==========================
54# default duration to 15m
55defaults write com.apple.iCal "Default duration in minutes for new event" 15
56# 24 hour view
57defaults write com.apple.iCal "number of hours displayed" 24
58
59#========================== TextEdit Settings ==========================
60# make default to plain text
61defaults write com.apple.TextEdit RichText -int 0