{ pkgs, ... }: { # Many settings should be handled by home manager. System-wide settings are however managed here. nixpkgs.config.allowUnfree = true; nix = { gc = { automatic = true; options = "--delete-older-than 2d"; }; settings.experimental-features = ["nix-command" "flakes"]; }; # System packages for all users environment.systemPackages = [ pkgs.ripgrep pkgs.wget ]; users.users.felixalb = { home = "/Users/felixalb"; shell = pkgs.zsh; }; programs.zsh.enable = true; system.activationScripts.postActivation.text = ''sudo chsh -s ${pkgs.zsh}/bin/zsh''; # Since it's not possible to declare default shell, run this command after build system.defaults = { # login window settings loginwindow = { # disable guest account GuestEnabled = false; # show name instead of username SHOWFULLNAME = false; }; finder = { AppleShowAllExtensions = true; FXEnableExtensionChangeWarning = true; _FXShowPosixPathInTitle = true; }; # firewall settings alf = { # 0 = disabled 1 = enabled 2 = blocks all connections except for essential services globalstate = 1; loggingenabled = 0; stealthenabled = 1; }; # dock settings dock = { autohide = true; autohide-delay = 0.0; autohide-time-modifier = 1.0; tilesize = 80; static-only = false; showhidden = false; show-recents = false; show-process-indicators = true; orientation = "bottom"; mru-spaces = false; }; }; system.keyboard = { enableKeyMapping = true; remapCapsLockToControl = true; }; # Auto upgrade nix package and the daemon service. services.nix-daemon.enable = true; nix.package = pkgs.nix; }