{ config, pkgs, ... }: { users.users.michael = { home = "/Users/michael"; shell = pkgs.zsh; }; networking = { computerName = "neptune"; hostName = "neptune"; }; environment = { shells = with pkgs; [zsh]; variables = { EDITOR = "nvim"; VISUAL = "nvim"; }; systemPackages = with pkgs; [ # Containers colima unstable.docker-client unstable.docker-compose # Video ffmpeg # Spotify unstable.spicetify-cli # Java checkstyle # XCode cocoapods # Android Development android-tools ]; }; programs = { zsh = { enable = true; # Make zsh installation work properly with macOS path loginShellInit = '' if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi ''; enableGlobalCompInit = false; }; }; security.pam.enableSudoTouchIdAuth = true; services = { nix-daemon.enable = true; }; nixpkgs = { # Workaround for pyopenssl being marked broken config.allowBroken = true; }; nix = { package = pkgs.nix; gc = { automatic = true; interval.Day = 7; options = "--delete-older-than 7d"; }; extraOptions = '' experimental-features = nix-command flakes ''; settings = { auto-optimise-store = false; trusted-users = ["root" "michael"]; }; }; system = { # Since it's not possible to declare default shell, run this command after build activationScripts.postActivation.text = ''sudo chsh -s ${pkgs.zsh}/bin/zsh''; stateVersion = 4; }; }