feat(macos): add defaults script
This commit is contained in:
parent
0c2b2875ed
commit
f8390f006d
196
scripts/macos-defaults.sh
Executable file
196
scripts/macos-defaults.sh
Executable file
@ -0,0 +1,196 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Close any open System Preferences panes, to prevent them from overriding
|
||||
# settings we’re about to change
|
||||
osascript -e 'tell application "System Preferences" to quit'
|
||||
|
||||
# Ask for the administrator password upfront
|
||||
sudo -v
|
||||
|
||||
# Keep-alive: update existing `sudo` time stamp until `.macos` has finished
|
||||
while true; do
|
||||
sudo -n true
|
||||
sleep 60
|
||||
kill -0 "$$" || exit
|
||||
done 2>/dev/null &
|
||||
|
||||
# Save to disk (not to iCloud) by default
|
||||
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
|
||||
|
||||
# Disable the “Are you sure you want to open this application?” dialog
|
||||
defaults write com.apple.LaunchServices LSQuarantine -bool false
|
||||
|
||||
# Disable Typing features
|
||||
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
|
||||
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
|
||||
defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -bool false
|
||||
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
|
||||
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
|
||||
|
||||
# Disable press-and-hold for keys in favor of key repeat
|
||||
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
|
||||
defaults write NSGlobalDomain KeyRepeat -int 2
|
||||
defaults write NSGlobalDomain InitialKeyRepeat -int 15
|
||||
|
||||
defaults write NSGlobalDomain AppleLanguages -array "en" "es" "bg"
|
||||
defaults write NSGlobalDomain AppleLocale -string "en_US@rg=eszzzz"
|
||||
|
||||
## Finder
|
||||
|
||||
# Screenshots/captures
|
||||
defaults write com.apple.screencapture location -string "${HOME}/Pictures/Screenshots"
|
||||
defaults write com.apple.screencapture style -string "display"
|
||||
defaults write com.apple.screencapture target -string "file"
|
||||
defaults write com.apple.screencapture video -int 1
|
||||
|
||||
# Finder
|
||||
# Interface elements
|
||||
defaults write com.apple.finder ShowPathbar -bool true
|
||||
defaults write com.apple.finder ShowStatusBar -bool true
|
||||
defaults write com.apple.finder ShowSidebar -bool true
|
||||
defaults write com.apple.finder ShowRecentTags -bool false
|
||||
|
||||
# View and sorting
|
||||
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
|
||||
defaults write com.apple.finder FXPreferredSearchViewStyle -string "Nlsv"
|
||||
defaults write com.apple.finder _FXSortFoldersFirst -bool true
|
||||
defaults write com.apple.finder FXPreferredGroupBy -string "None"
|
||||
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
|
||||
|
||||
# Behavior
|
||||
defaults write com.apple.finder NewWindowTarget -string "PfHm"
|
||||
defaults write com.apple.finder FXOpenFoldersInTabs -bool true
|
||||
defaults write com.apple.finder FXRemoveOldTrashItems -bool false
|
||||
defaults write com.apple.finder FXShowAllExtensions -bool true
|
||||
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool true
|
||||
defaults write com.apple.finder FXRemoveICloudDriveWarning -bool true
|
||||
defaults write com.apple.finder FXWarnBeforeEmptyingTrash -bool true
|
||||
|
||||
# Desktop icons (none)
|
||||
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false
|
||||
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false
|
||||
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false
|
||||
defaults write com.apple.finder ShowConnectedServersOnDesktop -bool false
|
||||
|
||||
# Tags
|
||||
defaults write com.apple.finder FavoriteTagNames -array
|
||||
|
||||
# iCloud
|
||||
defaults write com.apple.finder FXICloudDriveEnabled -bool false
|
||||
|
||||
# Finder: show all filename extensions
|
||||
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
|
||||
|
||||
# Avoid creating .DS_Store files on network or USB volumes
|
||||
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
|
||||
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
|
||||
|
||||
## Dock
|
||||
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Reset preferences
|
||||
# rm -f ~/Library/Preferences/com.apple.dock.plist
|
||||
|
||||
# Reset Dock layout
|
||||
defaults write com.apple.dock persistent-apps -array
|
||||
defaults write com.apple.dock persistent-others -array
|
||||
|
||||
# Basic Dock preferences
|
||||
defaults write com.apple.dock autohide -bool true
|
||||
defaults write com.apple.dock autohide-delay -float 0
|
||||
defaults write com.apple.dock autohide-time-modifier -float 0.4
|
||||
defaults write com.apple.dock enterMissionControlByTopWindowDrag -bool false
|
||||
defaults write com.apple.dock expose-group-apps -bool true
|
||||
defaults write com.apple.dock mineffect -string "scale"
|
||||
defaults write com.apple.dock minimize-to-application -bool false
|
||||
defaults write com.apple.dock orientation -string "bottom"
|
||||
defaults write com.apple.dock show-process-indicators -bool false
|
||||
defaults write com.apple.dock show-recents -bool false
|
||||
defaults write com.apple.dock showAppExposeGestureEnabled -bool true
|
||||
defaults write com.apple.dock showDesktopGestureEnabled -bool false
|
||||
defaults write com.apple.dock showLaunchpadGestureEnabled -bool false
|
||||
defaults write com.apple.dock tilesize -int 38
|
||||
|
||||
# Add Brave Browser
|
||||
defaults write com.apple.dock persistent-apps -array-add \
|
||||
"<dict>
|
||||
<key>tile-data</key>
|
||||
<dict>
|
||||
<key>file-data</key>
|
||||
<dict>
|
||||
<key>_CFURLString</key>
|
||||
<string>/Applications/Brave Browser.app</string>
|
||||
<key>_CFURLStringType</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>tile-type</key>
|
||||
<string>file-tile</string>
|
||||
</dict>"
|
||||
|
||||
# Add Ghostty
|
||||
defaults write com.apple.dock persistent-apps -array-add \
|
||||
"<dict>
|
||||
<key>tile-data</key>
|
||||
<dict>
|
||||
<key>file-data</key>
|
||||
<dict>
|
||||
<key>_CFURLString</key>
|
||||
<string>/Applications/Ghostty.app</string>
|
||||
<key>_CFURLStringType</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>tile-type</key>
|
||||
<string>file-tile</string>
|
||||
</dict>"
|
||||
|
||||
# Add Screenshots directory (display as folder, show as grid)
|
||||
defaults write com.apple.dock persistent-others -array-add \
|
||||
"<dict>
|
||||
<key>tile-data</key>
|
||||
<dict>
|
||||
<key>displayas</key>
|
||||
<integer>1</integer>
|
||||
<key>showas</key>
|
||||
<integer>2</integer>
|
||||
<key>file-data</key>
|
||||
<dict>
|
||||
<key>_CFURLString</key>
|
||||
<string>/Users/tomas/Pictures/Screenshots</string>
|
||||
<key>_CFURLStringType</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>tile-type</key>
|
||||
<string>directory-tile</string>
|
||||
</dict>"
|
||||
|
||||
# Add Downloads directory (display as folder, show as grid)
|
||||
defaults write com.apple.dock persistent-others -array-add \
|
||||
"<dict>
|
||||
<key>tile-data</key>
|
||||
<dict>
|
||||
<key>displayas</key>
|
||||
<integer>1</integer>
|
||||
<key>showas</key>
|
||||
<integer>2</integer>
|
||||
<key>file-data</key>
|
||||
<dict>
|
||||
<key>_CFURLString</key>
|
||||
<string>/Users/tomas/Downloads</string>
|
||||
<key>_CFURLStringType</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>tile-type</key>
|
||||
<string>directory-tile</string>
|
||||
</dict>"
|
||||
|
||||
# Apply changes
|
||||
killall Finder &>/dev/null
|
||||
killall Dock &>/dev/null
|
||||
echo "Setup complete."
|
||||
Loading…
Reference in New Issue
Block a user