darwin-config.nix
1 { pkgs, flakePkgs, fenix, ... }: 2 3 let 4 user = "elianiva"; 5 hostname = "melon"; 6 in 7 { 8 system.stateVersion = 6; 9 10 networking.hostName = "${hostname}"; 11 networking.localHostName = "${hostname}"; 12 13 users.users.${user} = { 14 name = "${user}"; 15 home = "/Users/${user}"; 16 }; 17 18 # allow unfree packages 19 nixpkgs = { 20 config = { 21 allowUnfree = true; 22 }; 23 }; 24 25 # setup nix 26 nix.enable = false; 27 28 homebrew = { 29 enable = true; 30 brews = pkgs.callPackage ./brews.nix { }; 31 casks = pkgs.callPackage ./casks.nix { }; 32 caskArgs = { 33 appdir = "~/Applications"; 34 require_sha = true; 35 }; 36 onActivation = { 37 autoUpdate = true; 38 upgrade = true; 39 cleanup = "zap"; 40 extraFlags = [ "--verbose" ]; 41 }; 42 global = { 43 brewfile = true; 44 }; 45 }; 46 47 environment.systemPackages = import ./darwin-packages.nix { inherit pkgs flakePkgs fenix; }; 48 fonts.packages = with pkgs; [ monaspace inter lora lilex departure-mono iosevka ]; 49 50 system.primaryUser = user; 51 52 # enable touchid for sudo 53 security.pam.services.sudo_local.touchIdAuth = true; 54 55 # keyboard 56 system.keyboard.enableKeyMapping = true; 57 system.keyboard.remapCapsLockToEscape = true; 58 59 # docks 60 system.defaults.dock = { 61 autohide = true; 62 mineffect = "scale"; 63 magnification = true; 64 show-recents = false; 65 persistent-apps = [ 66 "/Users/${user}/Applications/Ghostty.app" 67 ]; 68 appswitcher-all-displays = true; 69 }; 70 71 # misc settings 72 system.defaults.NSGlobalDomain = { 73 # Repeat character while key held instead of showing character accents menu 74 ApplePressAndHoldEnabled = false; 75 76 # fastest possible key repeat with minimum delay 77 InitialKeyRepeat = 15; 78 KeyRepeat = 2; 79 80 # turn off font smoothing 81 AppleFontSmoothing = 0; 82 83 NSAutomaticCapitalizationEnabled = false; 84 NSAutomaticSpellingCorrectionEnabled = false; 85 86 # faster trackpad speed 87 "com.apple.trackpad.scaling" = 2.0; 88 89 # enable forceclick to show definition 90 "com.apple.trackpad.forceClick" = true; 91 }; 92 93 system.defaults.finder = { 94 AppleShowAllExtensions = true; 95 CreateDesktop = false; 96 FXDefaultSearchScope = "SCcf"; 97 FXPreferredViewStyle = "clmv"; 98 FXRemoveOldTrashItems = true; 99 _FXSortFoldersFirst = true; 100 ShowPathbar = true; 101 }; 102 103 system.defaults.screencapture = { 104 disable-shadow = false; 105 location = "~/Pictures/Screenshots"; 106 }; 107 108 system.defaults.trackpad = { 109 Clicking = true; 110 TrackpadThreeFingerDrag = true; 111 }; 112 113 system.defaults.hitoolbox.AppleFnUsageType = "Change Input Source"; 114 115 # ads 116 system.defaults.CustomUserPreferences."com.apple.AdLib" = { 117 allowApplePersonalizedAdvertising = false; 118 allowIdentifierForAdvertising = false; 119 }; 120 121 # disable power chime sound 122 system.defaults.CustomUserPreferences."com.apple.PowerChime".ChimeOnNoHardware = false; 123 }