macos/defaults/finder.sh

#!/usr/bin/env bash
# macos/defaults/finder.sh — Finder tweaks. Run by bootstrap/macos.sh.

set -euo pipefail

[[ "$OSTYPE" == darwin* ]] || { printf 'finder.sh: macOS only\n' >&2; exit 1; }

# Show all files and extensions
defaults write com.apple.finder AppleShowAllFiles              -bool true
defaults write NSGlobalDomain    AppleShowAllExtensions        -bool true
defaults write com.apple.finder  ShowPathbar                   -bool true
defaults write com.apple.finder  ShowStatusBar                 -bool true

# Default view: list
defaults write com.apple.finder FXPreferredViewStyle           -string "Nlsv"

# When sorting by name, keep folders on top
defaults write com.apple.finder _FXSortFoldersFirst            -bool true
defaults write com.apple.finder _FXSortFoldersFirstOnDesktop   -bool true

# Search scopes the current folder by default
defaults write com.apple.finder FXDefaultSearchScope           -string "SCcf"

# Don't write .DS_Store on network or USB volumes
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
defaults write com.apple.desktopservices DSDontWriteUSBStores    -bool true

# Disable the warning when changing a file extension
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false

# Expand Save panels by default
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode   -bool true
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2  -bool true

killall Finder