1
0
Files
nix-shared/system/macos/system.nix

103 lines
5.3 KiB
Nix
Raw Normal View History

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
};
};
# 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
'';
}