chore(install): optimize logging, speed, cleanup
- Version logged after [PASS] (not before) across all scripts - Pre-cache brew package lists with log_info progress - Read brew version from git describe cache (skip Ruby startup) - Batch mise use -g calls (single invocation for all tools) - Replace mise verify step with mise ls --current - Parallel vim plugin pulls - Skip donut compile when binary is fresh - Pre-check macOS defaults before writing (skip fsync when unchanged) - Pre-check dock state before dockutil calls - Remove redundant 'already installed' skip logs - Remove meetingbar and wispr-flow install scripts - Renumber scripts to fill gaps Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -22,3 +22,4 @@ home/.vim/pack
|
|||||||
# compiled binaries
|
# compiled binaries
|
||||||
home/.tmux/donut
|
home/.tmux/donut
|
||||||
|
|
||||||
|
*.zwc
|
||||||
|
|||||||
@@ -15,5 +15,5 @@ if ! command -v brew &> /dev/null; then
|
|||||||
else
|
else
|
||||||
log_skip "Homebrew already installed"
|
log_skip "Homebrew already installed"
|
||||||
fi
|
fi
|
||||||
brew --version | log_quote
|
|
||||||
log_pass "Homebrew installed"
|
log_pass "Homebrew installed"
|
||||||
|
echo "Homebrew $(cat "$(brew --repository 2>/dev/null)"/.git/describe-cache/* 2>/dev/null || brew --version | head -1)" | log_quote
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ sudo apt-get install -qq "${apt_packages[@]}"
|
|||||||
|
|
||||||
unset apt_packages
|
unset apt_packages
|
||||||
|
|
||||||
apt --version | log_quote
|
|
||||||
log_pass "apt packages installed"
|
log_pass "apt packages installed"
|
||||||
|
apt --version | log_quote
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,6 @@ if ! command -v yay &>/dev/null; then
|
|||||||
rm -rf /tmp/yay
|
rm -rf /tmp/yay
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
log_pass "pacman packages installed"
|
||||||
pacman --version | log_quote
|
pacman --version | log_quote
|
||||||
yay --version | log_quote
|
yay --version | log_quote
|
||||||
log_pass "pacman packages installed"
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ if [ ! -f "$ssh_key" ]; then
|
|||||||
-C "$(whoami)@$(hostname)-$(date -I)"
|
-C "$(whoami)@$(hostname)-$(date -I)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
log_pass "SSH key configured"
|
||||||
cat "$ssh_pub" | log_quote
|
cat "$ssh_pub" | log_quote
|
||||||
|
|
||||||
unset ssh_method ssh_target ssh_key ssh_pub
|
unset ssh_method ssh_target ssh_key ssh_pub
|
||||||
log_pass "SSH key configured"
|
|
||||||
|
|||||||
@@ -26,5 +26,5 @@ if ! command -v git &> /dev/null; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git --version | log_quote
|
|
||||||
log_pass "git configured"
|
log_pass "git configured"
|
||||||
|
git --version | log_quote
|
||||||
|
|||||||
@@ -23,11 +23,13 @@ if ! command -v tmux &> /dev/null; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tmux -V | log_quote
|
# Compile screensaver (skip if binary is newer than source)
|
||||||
|
|
||||||
# Compile screensaver
|
|
||||||
if command -v cc &> /dev/null && [ -f "$HOME/.tmux/donut.c" ]; then
|
if command -v cc &> /dev/null && [ -f "$HOME/.tmux/donut.c" ]; then
|
||||||
cc -O2 -o "$HOME/.tmux/donut" "$HOME/.tmux/donut.c" -lm
|
if [ ! -f "$HOME/.tmux/donut" ] || [ "$HOME/.tmux/donut.c" -nt "$HOME/.tmux/donut" ]; then
|
||||||
log_pass "Compiled donut screensaver"
|
cc -O2 -o "$HOME/.tmux/donut" "$HOME/.tmux/donut.c" -lm
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
log_pass "tmux configured"
|
||||||
|
tmux -V | log_quote
|
||||||
|
|
||||||
|
|||||||
@@ -18,11 +18,12 @@ for url in "${vim_plugins[@]}"; do
|
|||||||
name=$(basename "$url" .git)
|
name=$(basename "$url" .git)
|
||||||
dest="$vim_pack_dir/$name"
|
dest="$vim_pack_dir/$name"
|
||||||
if [[ -d "$dest" ]]; then
|
if [[ -d "$dest" ]]; then
|
||||||
git -C "$dest" pull --quiet
|
git -C "$dest" pull --quiet &
|
||||||
log_pass "$name updated"
|
|
||||||
else
|
else
|
||||||
git clone --depth 1 --quiet "$url" "$dest"
|
git clone --depth 1 --quiet "$url" "$dest" &
|
||||||
log_pass "$name installed"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
wait
|
||||||
|
|
||||||
log_pass "vim plugins configured"
|
log_pass "vim plugins configured"
|
||||||
|
vim --version 2>/dev/null | sed -n '1p' | log_quote
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ if ! command -v chafa &> /dev/null; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
command -v chafa &> /dev/null && chafa --version | sed -n '1p' | log_quote
|
|
||||||
|
|
||||||
# pdftotext — PDF text extraction (part of poppler)
|
# pdftotext — PDF text extraction (part of poppler)
|
||||||
if ! command -v pdftotext &> /dev/null; then
|
if ! command -v pdftotext &> /dev/null; then
|
||||||
@@ -41,6 +40,6 @@ if ! command -v pdftotext &> /dev/null; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
command -v pdftotext &> /dev/null && pdftotext -v 2>&1 | sed -n '1p' | log_quote
|
|
||||||
|
|
||||||
log_pass "preview dependencies"
|
log_pass "preview dependencies"
|
||||||
|
command -v chafa &> /dev/null && chafa --version | sed -n '1p' | log_quote
|
||||||
|
command -v pdftotext &> /dev/null && pdftotext -v 2>&1 | sed -n '1p' | log_quote
|
||||||
@@ -49,9 +49,7 @@ if [[ "$DOTS_ENV" != "codespaces" ]]; then
|
|||||||
|
|
||||||
log_info "Installing runtimes..."
|
log_info "Installing runtimes..."
|
||||||
MISE_QUIET=1 mise install "${MISE_RUNTIMES[@]}" 2>&1 | log_quote
|
MISE_QUIET=1 mise install "${MISE_RUNTIMES[@]}" 2>&1 | log_quote
|
||||||
for tool in "${MISE_RUNTIMES[@]}"; do
|
MISE_QUIET=1 mise use -g "${MISE_RUNTIMES[@]}" 2>&1 | log_quote
|
||||||
MISE_QUIET=1 mise use -g "$tool" 2>&1 | log_quote
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Activate mise shims so runtimes (e.g. python3) are available for app installers
|
# Activate mise shims so runtimes (e.g. python3) are available for app installers
|
||||||
@@ -78,9 +76,7 @@ if [[ "$DOTS_ENV" != "codespaces" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
log_info "Installing apps..."
|
log_info "Installing apps..."
|
||||||
for tool in "${MISE_APPS[@]}"; do
|
MISE_QUIET=1 mise use -g "${MISE_APPS[@]}" 2>&1 | log_quote
|
||||||
MISE_QUIET=1 mise use -g "$tool" 2>&1 | tail -1 | log_quote
|
|
||||||
done
|
|
||||||
|
|
||||||
# Rebuild bat theme cache with mise-installed bat (must match delta's syntect version)
|
# Rebuild bat theme cache with mise-installed bat (must match delta's syntect version)
|
||||||
bat cache --build &>/dev/null
|
bat cache --build &>/dev/null
|
||||||
@@ -94,24 +90,5 @@ if [[ "$DOTS_ENV" != "codespaces" ]]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify installations
|
|
||||||
log_info "Verifying installations..."
|
|
||||||
{
|
|
||||||
if [[ "$DOTS_ENV" != "codespaces" ]]; then
|
|
||||||
mise exec -- python --version
|
|
||||||
mise exec -- poetry --version
|
|
||||||
echo "node $(mise exec -- node --version)"
|
|
||||||
echo "npm $(mise exec -- npm --version)"
|
|
||||||
mise exec -- gh --version
|
|
||||||
mise exec -- terraform --version | sed -n '1p'
|
|
||||||
echo "firebase: $(mise exec -- firebase --version)"
|
|
||||||
echo "fastfetch: $(mise exec -- fastfetch --version 2>&1 | sed -n '1p')"
|
|
||||||
mise exec -- glow --version | sed -n '1p'
|
|
||||||
fi
|
|
||||||
echo "fzf $(fzf --version)"
|
|
||||||
bat --version | sed -n '1p'
|
|
||||||
zoxide --version
|
|
||||||
rg --version | sed -n '1p'
|
|
||||||
delta --version 2>/dev/null | sed -n '1p' || echo "delta: installed (version check failed)"
|
|
||||||
} | log_quote
|
|
||||||
log_pass "mise tools installed"
|
log_pass "mise tools installed"
|
||||||
|
mise ls --current 2>/dev/null | awk '{printf "%s %s\n", $1, $2}' | log_quote
|
||||||
|
|||||||
@@ -56,5 +56,5 @@ if ! groups "$USER" | grep -q "\b$docker_group\b"; then
|
|||||||
sudo usermod -aG docker "$USER"
|
sudo usermod -aG docker "$USER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker --version | log_quote
|
|
||||||
log_pass "Docker configured"
|
log_pass "Docker configured"
|
||||||
|
docker --version | log_quote
|
||||||
|
|||||||
@@ -26,5 +26,5 @@ if ! command -v az &>/dev/null; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
az --version | log_quote
|
|
||||||
log_pass "Azure CLI installed"
|
log_pass "Azure CLI installed"
|
||||||
|
echo "$BREW_FORMULA_VERSIONS" | grep "^azure-cli " | log_quote
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ if ! command -v redis-cli &>/dev/null; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
redis-cli --version | log_quote
|
|
||||||
log_pass "Redis installed"
|
log_pass "Redis installed"
|
||||||
|
redis-cli --version | log_quote
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
if ! echo "$BREW_CASKS" | grep -q "^colour-contrast-analyser$"; then
|
if ! echo "$BREW_CASKS" | grep -q "^colour-contrast-analyser$"; then
|
||||||
brew install --cask colour-contrast-analyser
|
brew install --cask colour-contrast-analyser
|
||||||
else
|
|
||||||
log_skip "CCA already installed"
|
|
||||||
fi
|
fi
|
||||||
log_pass "CCA installed"
|
log_pass "CCA installed"
|
||||||
|
echo "$BREW_CASK_VERSIONS" | grep "^colour-contrast-analyser " | log_quote
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
if ! echo "$BREW_CASKS" | grep -q "^rectangle$"; then
|
if ! echo "$BREW_CASKS" | grep -q "^rectangle$"; then
|
||||||
brew install --cask rectangle
|
brew install --cask rectangle
|
||||||
else
|
|
||||||
log_skip "Rectangle already installed"
|
|
||||||
fi
|
fi
|
||||||
log_pass "Rectangle installed"
|
log_pass "Rectangle installed"
|
||||||
|
echo "$BREW_CASK_VERSIONS" | grep "^rectangle " | log_quote
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
if ! echo "$BREW_CASKS" | grep -q "^betterdisplay$"; then
|
if ! echo "$BREW_CASKS" | grep -q "^betterdisplay$"; then
|
||||||
brew install --cask betterdisplay
|
brew install --cask betterdisplay
|
||||||
else
|
|
||||||
log_skip "BetterDisplay already installed"
|
|
||||||
fi
|
fi
|
||||||
log_pass "BetterDisplay installed"
|
log_pass "BetterDisplay installed"
|
||||||
|
echo "$BREW_CASK_VERSIONS" | grep "^betterdisplay " | log_quote
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Description:
|
|
||||||
# (macOS only) Install MeetingBar.
|
|
||||||
#
|
|
||||||
|
|
||||||
# macOS only
|
|
||||||
[[ "$DOTS_OS" != "macos" ]] && { log_skip "Not macOS"; return 0; }
|
|
||||||
|
|
||||||
if ! echo "$BREW_CASKS" | grep -q "^meetingbar$"; then
|
|
||||||
brew install --cask meetingbar
|
|
||||||
else
|
|
||||||
log_skip "MeetingBar already installed"
|
|
||||||
fi
|
|
||||||
log_pass "MeetingBar installed"
|
|
||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
if ! echo "$BREW_FORMULAE" | grep -q "^dockutil$"; then
|
if ! echo "$BREW_FORMULAE" | grep -q "^dockutil$"; then
|
||||||
brew install dockutil
|
brew install dockutil
|
||||||
else
|
|
||||||
log_skip "dockutil already installed"
|
|
||||||
fi
|
fi
|
||||||
log_pass "dockutil installed"
|
log_pass "dockutil installed"
|
||||||
|
echo "$BREW_FORMULA_VERSIONS" | grep "^dockutil " | log_quote
|
||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
if ! echo "$BREW_CASKS" | grep -q "^visual-studio-code$"; then
|
if ! echo "$BREW_CASKS" | grep -q "^visual-studio-code$"; then
|
||||||
brew install --cask visual-studio-code
|
brew install --cask visual-studio-code
|
||||||
else
|
|
||||||
log_skip "VSCode already installed"
|
|
||||||
fi
|
fi
|
||||||
log_pass "VSCode installed"
|
log_pass "VSCode installed"
|
||||||
|
echo "$BREW_CASK_VERSIONS" | grep "^visual-studio-code " | log_quote
|
||||||
@@ -24,5 +24,5 @@ if ! command -v cmatrix &> /dev/null; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
command -v cmatrix &> /dev/null && cmatrix -V 2>&1 | sed -n '1p' | log_quote
|
|
||||||
log_pass "cmatrix installed"
|
log_pass "cmatrix installed"
|
||||||
|
command -v cmatrix &> /dev/null && cmatrix -V 2>&1 | sed -n '1p' | log_quote
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Description:
|
|
||||||
# (macOS only) Install Wispr Flow.
|
|
||||||
#
|
|
||||||
|
|
||||||
# macOS only
|
|
||||||
[[ "$DOTS_OS" != "macos" ]] && { log_skip "Not macOS"; return 0; }
|
|
||||||
|
|
||||||
if ! echo "$BREW_CASKS" | grep -q "^wispr-flow$"; then
|
|
||||||
brew install --cask wispr-flow
|
|
||||||
else
|
|
||||||
log_skip "Wispr Flow already installed"
|
|
||||||
fi
|
|
||||||
log_pass "Wispr Flow installed"
|
|
||||||
@@ -8,129 +8,63 @@
|
|||||||
# macOS only
|
# macOS only
|
||||||
[[ "$DOTS_OS" != "macos" ]] && { log_skip "Not macOS"; return 0; }
|
[[ "$DOTS_OS" != "macos" ]] && { log_skip "Not macOS"; return 0; }
|
||||||
|
|
||||||
|
# Only write if value differs from desired
|
||||||
|
_defaults_set() {
|
||||||
|
local domain="$1" key="$2" type="$3" value="$4"
|
||||||
|
local current
|
||||||
|
current=$(defaults read "$domain" "$key" 2>/dev/null) || current=""
|
||||||
|
[[ "$current" == "$value" ]] && return 0
|
||||||
|
defaults write "$domain" "$key" "$type" "$value"
|
||||||
|
}
|
||||||
|
|
||||||
# Keyboard
|
# Keyboard
|
||||||
# --------
|
_defaults_set -globalDomain NSAutomaticCapitalizationEnabled -bool false
|
||||||
# off -- Keyboard: Capitalize words automatically
|
_defaults_set -globalDomain NSAutomaticPeriodSubstitutionEnabled -bool false
|
||||||
defaults write -globalDomain NSAutomaticCapitalizationEnabled -bool false
|
_defaults_set -globalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
|
||||||
|
_defaults_set NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
|
||||||
# off -- Keyboard: Add period with double-space
|
_defaults_set NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
|
||||||
defaults write -globalDomain NSAutomaticPeriodSubstitutionEnabled -bool false
|
_defaults_set NSGlobalDomain WebAutomaticSpellingCorrectionEnabled -bool false
|
||||||
|
|
||||||
# off -- Keyboard: Quote substitution
|
|
||||||
defaults write -globalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
|
|
||||||
|
|
||||||
# off -- Keyboard: Dash substitution
|
|
||||||
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
|
|
||||||
|
|
||||||
# off -- Keyboard: Auto-correct
|
|
||||||
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
|
|
||||||
defaults write NSGlobalDomain WebAutomaticSpellingCorrectionEnabled -bool false
|
|
||||||
|
|
||||||
# Appearance
|
# Appearance
|
||||||
# ----------
|
_defaults_set -globalDomain AppleAquaColorVariant -int 6
|
||||||
# Graphite -- Appearance (prevent top-left window colours)
|
_defaults_set -globalDomain AppleInterfaceStyle -string Dark
|
||||||
defaults write -globalDomain AppleAquaColorVariant -int 6
|
_defaults_set -globalDomain AppleHighlightColor -string "0.172549 0.705882 0.580392"
|
||||||
|
|
||||||
# on -- Appearance: Dark mode
|
|
||||||
defaults write -globalDomain AppleInterfaceStyle -string "Dark"
|
|
||||||
|
|
||||||
# #2CB494 -- Highlight color
|
|
||||||
defaults write -globalDomain AppleHighlightColor -string "0.172549 0.705882 0.580392"
|
|
||||||
|
|
||||||
# Control Center
|
# Control Center
|
||||||
# --------------
|
_defaults_set ~/Library/Preferences/ByHost/com.apple.controlcenter.plist Bluetooth -int 24
|
||||||
# off -- Control Center: Show Bluetooth icon in menu bar
|
_defaults_set ~/Library/Preferences/ByHost/com.apple.controlcenter.plist WiFi -int 24
|
||||||
defaults write \
|
_defaults_set ~/Library/Preferences/ByHost/com.apple.controlcenter.plist NowPlaying -int 24
|
||||||
~/Library/Preferences/ByHost/com.apple.controlcenter.plist \
|
_defaults_set ~/Library/Preferences/ByHost/com.apple.controlcenter.plist Battery -int 24
|
||||||
Bluetooth \
|
|
||||||
-int 24
|
|
||||||
|
|
||||||
# off -- Control Center: Show Wi-Fi icon in menu bar
|
|
||||||
defaults write \
|
|
||||||
~/Library/Preferences/ByHost/com.apple.controlcenter.plist \
|
|
||||||
WiFi \
|
|
||||||
-int 24
|
|
||||||
|
|
||||||
# off -- Control Center: Show Now Playing icon in menu bar
|
|
||||||
defaults write \
|
|
||||||
~/Library/Preferences/ByHost/com.apple.controlcenter.plist \
|
|
||||||
NowPlaying \
|
|
||||||
-int 24
|
|
||||||
|
|
||||||
# off -- Control Center: Show Battery icon in menu bar
|
|
||||||
defaults write \
|
|
||||||
~/Library/Preferences/ByHost/com.apple.controlcenter.plist \
|
|
||||||
Battery \
|
|
||||||
-int 24
|
|
||||||
|
|
||||||
# Finder
|
# Finder
|
||||||
# ------
|
_defaults_set com.apple.finder QuitMenuItem -bool true
|
||||||
# on -- Finder: Add quit option
|
_defaults_set com.apple.finder AppleShowAllFiles -bool true
|
||||||
defaults write com.apple.finder QuitMenuItem -bool true
|
_defaults_set NSGlobalDomain AppleShowAllExtensions -bool true
|
||||||
|
_defaults_set com.apple.finder FXEnableExtensionChangeWarning -bool false
|
||||||
# on -- Finder: Show hidden files
|
_defaults_set com.apple.finder ShowPathbar -bool true
|
||||||
defaults write com.apple.finder AppleShowAllFiles -bool true
|
_defaults_set com.apple.finder ShowStatusBar -bool true
|
||||||
|
_defaults_set com.apple.finder _FXSortFoldersFirst -bool true
|
||||||
# on -- Finder: Show all filename extensions
|
_defaults_set com.apple.CrashReporter DialogType -string none
|
||||||
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
|
_defaults_set com.apple.dashboard mcx-disabled -bool true
|
||||||
|
_defaults_set com.apple.finder ShowHardDrivesOnDesktop -bool true
|
||||||
# off -- Finder: Show warning before changing an extension
|
_defaults_set com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
|
||||||
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
|
_defaults_set com.apple.finder ShowRemovableMediaOnDesktop -bool true
|
||||||
|
_defaults_set com.apple.finder ShowMountedServersOnDesktop -bool true
|
||||||
# on -- Finder: Show path bar
|
_defaults_set com.apple.finder ShowRecentTags -bool false
|
||||||
defaults write com.apple.finder ShowPathbar -bool true
|
_defaults_set com.apple.desktopservices DSDontWriteUSBStores -bool true
|
||||||
|
_defaults_set com.apple.desktopservices DSDontWriteNetworkStores -bool true
|
||||||
# on -- Finder: Show status bar
|
_defaults_set com.apple.finder NewWindowTargetPath -string "file://${HOME}/"
|
||||||
defaults write com.apple.finder ShowStatusBar -bool true
|
_defaults_set com.apple.finder FXPreferredViewStyle -string nlsv
|
||||||
|
|
||||||
# on -- Finder: Keep folders on top
|
|
||||||
defaults write com.apple.finder _FXSortFoldersFirst -bool true
|
|
||||||
|
|
||||||
# off -- Finder: Use macOS Crash Reporter
|
|
||||||
defaults write com.apple.CrashReporter DialogType -string "none"
|
|
||||||
|
|
||||||
# off -- Finder: Enable dashboard widgets
|
|
||||||
defaults write com.apple.dashboard mcx-disabled -bool true
|
|
||||||
|
|
||||||
# on -- Finder: Show hard drives on desktop
|
|
||||||
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true
|
|
||||||
|
|
||||||
# on -- Finder: Show external hard drives on desktop
|
|
||||||
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
|
|
||||||
|
|
||||||
# on -- Finder: Show removable media on desktop
|
|
||||||
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true
|
|
||||||
|
|
||||||
# on -- Finder: Show mounted servers on desktop
|
|
||||||
defaults write com.apple.finder ShowMountedServersOnDesktop -bool true
|
|
||||||
|
|
||||||
# off -- Finder: Show recent tags
|
|
||||||
defaults write com.apple.finder ShowRecentTags -bool false
|
|
||||||
|
|
||||||
# off -- Finder: Create .DS_Store files
|
|
||||||
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
|
|
||||||
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
|
|
||||||
|
|
||||||
# home -- Finder: New Finder windows show
|
|
||||||
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/"
|
|
||||||
|
|
||||||
# list -- Finder: Preferred view style
|
|
||||||
defaults write com.apple.finder FXPreferredViewStyle -string "nlsv"
|
|
||||||
|
|
||||||
# Spotlight
|
# Spotlight
|
||||||
# ---------
|
_defaults_set com.apple.Spotlight MenuItemHidden -int 1
|
||||||
# on -- Spotlight: Hide menu bar icon
|
|
||||||
defaults write com.apple.Spotlight MenuItemHidden -int 1
|
|
||||||
|
|
||||||
# Dock
|
# Dock
|
||||||
# ----
|
_defaults_set com.apple.dock show-recents -bool false
|
||||||
# off -- Dock: Show recent applications
|
_defaults_set com.apple.dock scroll-to-open -bool true
|
||||||
defaults write com.apple.dock show-recents -bool false
|
|
||||||
|
|
||||||
# on -- Dock: Use scroll gestures
|
|
||||||
defaults write com.apple.dock scroll-to-open -bool true
|
|
||||||
|
|
||||||
# Remove default apps from the dock
|
# Remove default apps from the dock
|
||||||
|
dock_state=$(defaults read com.apple.dock persistent-apps 2>/dev/null || echo "")
|
||||||
default_apps=(
|
default_apps=(
|
||||||
"Messages"
|
"Messages"
|
||||||
"Mail"
|
"Mail"
|
||||||
@@ -149,7 +83,7 @@ default_apps=(
|
|||||||
"Pages"
|
"Pages"
|
||||||
)
|
)
|
||||||
for default_app in "${default_apps[@]}"; do
|
for default_app in "${default_apps[@]}"; do
|
||||||
dockutil --remove "$default_app" --no-restart 1>/dev/null 2>&1 || true
|
[[ $dock_state == *"$default_app"* ]] && dockutil --remove "$default_app" --no-restart 1>/dev/null 2>&1 || true
|
||||||
done
|
done
|
||||||
|
|
||||||
# Set up apps in the dock
|
# Set up apps in the dock
|
||||||
@@ -161,7 +95,6 @@ dock_order=(
|
|||||||
"/System/Applications/Utilities/Activity Monitor.app"
|
"/System/Applications/Utilities/Activity Monitor.app"
|
||||||
"/Applications/iTerm.app"
|
"/Applications/iTerm.app"
|
||||||
)
|
)
|
||||||
dock_state=$(defaults read com.apple.dock persistent-apps 2>/dev/null || echo "")
|
|
||||||
for i in "${!dock_order[@]}"; do
|
for i in "${!dock_order[@]}"; do
|
||||||
if [[ $i -ne 0 ]]; then
|
if [[ $i -ne 0 ]]; then
|
||||||
path="${dock_order[$i]}"
|
path="${dock_order[$i]}"
|
||||||
|
|||||||
@@ -88,8 +88,6 @@ if [[ "$DOTS_PKG" == "brew" ]]; then
|
|||||||
export HOMEBREW_NO_ENV_HINTS=1
|
export HOMEBREW_NO_ENV_HINTS=1
|
||||||
export HOMEBREW_NO_AUTO_UPDATE=1
|
export HOMEBREW_NO_AUTO_UPDATE=1
|
||||||
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
||||||
export BREW_CASKS=$(brew list --cask 2>/dev/null || true)
|
|
||||||
export BREW_FORMULAE=$(brew list 2>/dev/null || true)
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set up directory variables
|
# Set up directory variables
|
||||||
@@ -137,6 +135,15 @@ run() {
|
|||||||
fi
|
fi
|
||||||
} | log_quote
|
} | log_quote
|
||||||
|
|
||||||
|
# Cache brew package lists (avoid repeated slow brew queries in install scripts)
|
||||||
|
if [[ "$DOTS_PKG" == "brew" ]]; then
|
||||||
|
log_info "Caching brew package lists..."
|
||||||
|
export BREW_CASKS=$(brew list --cask 2>/dev/null || true)
|
||||||
|
export BREW_FORMULAE=$(brew list 2>/dev/null || true)
|
||||||
|
export BREW_CASK_VERSIONS=$(brew list --cask --versions 2>/dev/null || true)
|
||||||
|
export BREW_FORMULA_VERSIONS=$(brew list --versions 2>/dev/null || true)
|
||||||
|
fi
|
||||||
|
|
||||||
scripts=("$install_dir"/*.sh)
|
scripts=("$install_dir"/*.sh)
|
||||||
for script in "${scripts[@]}"; do
|
for script in "${scripts[@]}"; do
|
||||||
if [[ -n "$targets" ]]; then
|
if [[ -n "$targets" ]]; then
|
||||||
@@ -167,7 +174,8 @@ run() {
|
|||||||
printf "completed in ${time_color}${execution_ms_formatted}ms${NC}\n"
|
printf "completed in ${time_color}${execution_ms_formatted}ms${NC}\n"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
echo -e "\n${GREY}Logging to \"$log_abs_target\"${NC}"
|
log_info "Logging to \"$log_abs_target\""
|
||||||
|
|
||||||
total_start_ns=$(now_ns)
|
total_start_ns=$(now_ns)
|
||||||
run 2>&1 | tee "$log_abs_target"
|
run 2>&1 | tee "$log_abs_target"
|
||||||
total_end_ns=$(now_ns)
|
total_end_ns=$(now_ns)
|
||||||
|
|||||||
Reference in New Issue
Block a user