# Initial install: # Install nix: https://github.com/nixOS/nix-installer # sudo nix run nix-darwin -- switch --flake .#garak # # Update after that: # sudo darwin-rebuild switch --flake .#garak # # Manual: # Install rosetta to run x86_64 programs: # softwareupdate --install-rosetta --agree-to-license # # Install homebrew for installing graphical apps: # /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" { description = "nix-darwin system flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nix-darwin.url = "github:nix-darwin/nix-darwin/master"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs@{ self, nix-darwin, nixpkgs }: let configuration = { pkgs, ... }: { # List packages installed in system profile. To search by name, run: # $ nix-env -qaP | grep wget environment.systemPackages = [ pkgs.tmux pkgs.htop pkgs.git ]; # Necessary for using flakes on this system. nix.settings.experimental-features = "nix-command flakes"; # Enable alternative shell support in nix-darwin. # programs.fish.enable = true; # Set Git commit hash for darwin-version. system.configurationRevision = self.rev or self.dirtyRev or null; # Used for backwards compatibility, please read the changelog before changing. # $ darwin-rebuild changelog system.stateVersion = 6; # The platform the configuration will be used on. nixpkgs.hostPlatform = "aarch64-darwin"; # Identifies which user some settings apply to. system.primaryUser = "talexander"; # Enable Linux VM for building Linux binaries. # # Test with: # nix build --impure --expr '(with import { system = "aarch64-linux"; }; runCommand "foo" {} "uname -a > $out")' nix.linux-builder.enable = true; # system.defaults.CustomUserPreferences = { # "com.apple.desktopservices" = { # # Do not write .DS_Store files to external volumes # DSDontWriteNetworkStores = true; # DSDontWriteUSBStores = true; # }; # "com.apple.screensaver" = { # # Ask for password when returning from screensaver # askForPassword = 1; # askForPasswordDelay = 0; # }; # "com.apple.SoftwareUpdate" = { # AutomaticCheckEnabled = true; # # Download updates in the background # AutomaticDownload = 1; # }; # }; # Use homebrew to install graphical apps from casks. # homebrew = { # enable = false; # casks = [ # "firefox" # ]; # }; # system.defaults = { # dock = { # autohide = true; # }; # }; environment.variables = { TERMINFO_DIRS = ["${pkgs.alacritty.terminfo.outPath}/share/terminfo"]; }; power = { sleep = { # sudo pmset -a displaysleep 10 sleep 0 disksleep 10 # Other options to consider: lowpowermode 0 standby 0 hibernatemode 0 powernap 0 # # Defaults: # standby 0 # Sleep On Power Button 1 # autorestartatconnect 0 # autorestart 0 # powernap 1 # networkoversleep 0 # disksleep 10 # sleep 1 # ttyskeepawake 1 # displaysleep 10 # tcpkeepalive 1 # womp 1 # computer = "never"; display = 10; harddisk = 10; }; }; }; in { darwinConfigurations."garak" = nix-darwin.lib.darwinSystem { modules = [ configuration ]; }; }; }