2025-09-21 08:51:54 -07:00
|
|
|
{ config, ... }:
|
2025-08-11 08:17:44 -07:00
|
|
|
{
|
|
|
|
|
system.defaults = {
|
|
|
|
|
dock = {
|
|
|
|
|
autohide = true; # Automatically hide and show the Dock
|
|
|
|
|
autohide-delay = 0.0; # Remove the delay for showing the Dock
|
|
|
|
|
autohide-time-modifier = 0.2; # Speed up the animation when hiding/showing the Dock
|
|
|
|
|
magnification = false; # Disable magnification on hover
|
|
|
|
|
mineffect = "scale"; # Set minimize animation to scale (faster than genie)
|
|
|
|
|
minimize-to-application = true; # Minimize windows into application icon
|
|
|
|
|
mru-spaces = false; # Don't automatically rearrange Spaces based on use
|
|
|
|
|
orientation = "bottom"; # Position the Dock at the bottom
|
|
|
|
|
show-process-indicators = true; # Show indicators for open applications
|
|
|
|
|
show-recents = false; # Don't show recent applications in Dock
|
|
|
|
|
showhidden = true; # Make hidden app icons translucent
|
|
|
|
|
static-only = false; # Show both static and recent apps
|
|
|
|
|
tilesize = 48; # Size of Dock icons
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
finder = {
|
|
|
|
|
AppleShowAllExtensions = true; # Always show file extensions
|
|
|
|
|
AppleShowAllFiles = true; # Show hidden files
|
|
|
|
|
FXDefaultSearchScope = "SCcf"; # Search current folder by default
|
|
|
|
|
FXEnableExtensionChangeWarning = false; # Disable warning when changing file extension
|
|
|
|
|
QuitMenuItem = true; # Allow quitting Finder via ⌘Q
|
|
|
|
|
ShowPathbar = true; # Show path bar at bottom of Finder windows
|
|
|
|
|
ShowStatusBar = true; # Show status bar at bottom of Finder windows
|
|
|
|
|
_FXShowPosixPathInTitle = true; # Show full POSIX path in window title
|
|
|
|
|
_FXSortFoldersFirst = true; # Keep folders on top when sorting
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
NSGlobalDomain = {
|
|
|
|
|
# Appearance
|
|
|
|
|
AppleInterfaceStyle = "Dark"; # Use dark mode
|
|
|
|
|
AppleInterfaceStyleSwitchesAutomatically = false; # Don't auto-switch appearance
|
|
|
|
|
|
|
|
|
|
# Keyboard settings
|
|
|
|
|
AppleKeyboardUIMode = 3; # Full keyboard access for all controls
|
|
|
|
|
ApplePressAndHoldEnabled = false; # Disable press-and-hold for keys (enable key repeat)
|
|
|
|
|
KeyRepeat = 2; # Fast key repeat rates
|
|
|
|
|
InitialKeyRepeat = 10; # Short delay until key repeat starts
|
|
|
|
|
|
|
|
|
|
# Text input settings
|
|
|
|
|
NSAutomaticCapitalizationEnabled = false; # Disable automatic capitalization
|
|
|
|
|
NSAutomaticDashSubstitutionEnabled = false; # Disable smart dashes
|
|
|
|
|
NSAutomaticPeriodSubstitutionEnabled = false; # Disable automatic period substitution
|
|
|
|
|
NSAutomaticQuoteSubstitutionEnabled = false; # Disable smart quotes
|
|
|
|
|
NSAutomaticSpellingCorrectionEnabled = false; # Disable automatic spelling correction
|
|
|
|
|
|
|
|
|
|
# Save dialog settings
|
|
|
|
|
NSDocumentSaveNewDocumentsToCloud = false; # Save to disk by default, not iCloud
|
|
|
|
|
NSNavPanelExpandedStateForSaveMode = true; # Expand save panel by default
|
|
|
|
|
NSNavPanelExpandedStateForSaveMode2 = true; # Expand save panel by default (alternate)
|
|
|
|
|
|
|
|
|
|
# Window and UI behavior
|
|
|
|
|
AppleShowScrollBars = "Automatic"; # Show scroll bars automatically
|
|
|
|
|
NSAutomaticWindowAnimationsEnabled = true; # Enable window animations
|
|
|
|
|
NSScrollAnimationEnabled = true; # Enable smooth scrolling
|
|
|
|
|
NSTableViewDefaultSizeMode = 2; # Set sidebar icon size to medium
|
|
|
|
|
NSWindowResizeTime = 0.001; # Speed up window resize animations
|
|
|
|
|
|
|
|
|
|
# Other useful settings
|
|
|
|
|
AppleMeasurementUnits = "Centimeters"; # Use metric units
|
|
|
|
|
AppleMetricUnits = 1; # Enable metric units
|
|
|
|
|
AppleShowAllFiles = true; # Show hidden files globally
|
|
|
|
|
PMPrintingExpandedStateForPrint = true; # Expand print panel by default
|
|
|
|
|
"com.apple.mouse.tapBehavior" = 1; # Enable tap to click for mouse
|
|
|
|
|
"com.apple.swipescrolldirection" = false; # Natural scrolling direction
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Trackpad settings
|
|
|
|
|
trackpad = {
|
|
|
|
|
Clicking = true; # Enable tap to click
|
|
|
|
|
TrackpadThreeFingerDrag = true; # Enable three finger drag
|
|
|
|
|
ActuationStrength = 0; # Silent clicking
|
|
|
|
|
FirstClickThreshold = 1; # Light click pressure
|
|
|
|
|
SecondClickThreshold = 1; # Light force touch pressure
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Activity Monitor settings
|
|
|
|
|
ActivityMonitor = {
|
|
|
|
|
IconType = 5; # Show CPU usage in Dock icon
|
|
|
|
|
OpenMainWindow = true; # Show main window on launch
|
|
|
|
|
SortColumn = "CPUUsage"; # Sort by CPU usage
|
|
|
|
|
SortDirection = 0; # Sort descending
|
|
|
|
|
};
|
2025-09-22 11:42:21 -07:00
|
|
|
|
|
|
|
|
# Terminal settings
|
|
|
|
|
"com.apple.Terminal" = {
|
|
|
|
|
"Default Window Settings" = "Pro";
|
|
|
|
|
"Window Settings" = {
|
|
|
|
|
Pro = {
|
|
|
|
|
keyMapBoundKeys = {
|
|
|
|
|
# Map Home and End keys to terminal escape sequences.
|
|
|
|
|
F729 = "\033OH";
|
|
|
|
|
F72B = "\033OF";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
2025-08-11 08:17:44 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Keyboard settings
|
|
|
|
|
system.keyboard = {
|
|
|
|
|
enableKeyMapping = true; # Enable key remapping
|
|
|
|
|
remapCapsLockToControl = true; # Remap Caps Lock to Control
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Custom user preferences (these require logout/login to take effect)
|
|
|
|
|
system.startup.chime = false; # Disable startup sound
|
|
|
|
|
|
|
|
|
|
system.activationScripts.postActivation.text = ''
|
|
|
|
|
# Following line should allow us to avoid a logout/login cycle when changing settings
|
2025-09-21 08:51:54 -07:00
|
|
|
sudo -u ${config.system.primaryUser} /System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u
|
2025-08-11 08:17:44 -07:00
|
|
|
'';
|
|
|
|
|
}
|