{ pkgs, ... }: { # Many settings should be handled by home manager. System-wide settings are however managed here. imports = [ ./yabai.nix ]; nixpkgs.config.allowUnfree = true; nix = { # gc = { # automatic = true; # options = "--delete-older-than 2d"; # }; settings = { allow-dirty = true; experimental-features = [ "nix-command" "flakes" "repl-flake" ]; builders-use-substitutes = true; extra-platforms = [ "x86_64-darwin" "aarch64-darwin" ]; log-lines = 50; # https://github.com/NixOS/nix/issues/7273 # auto-optimise-store = true; }; buildMachines = [ { hostName = "defiant.home.feal.no"; system = "x86_64-linux"; maxJobs = 6; supportedFeatures = [ "kvm" "big-parallel" "benchmark" "nixos-test" ]; mandatoryFeatures = [ ]; sshUser = "felixalb"; sshKey = "/var/root/.ssh/nix-builder"; } ]; distributedBuilds = true; extraOptions = "builders-use-substitutes = true"; }; # System packages for all users environment = { systemPackages = with pkgs; [ eza findutils gnugrep jq nix-output-monitor ripgrep skhd sshfs wget ]; variables = { EDITOR = "nvim"; VISUAL = "nvim"; }; }; 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 fonts = { fontDir.enable = true; fonts = with pkgs; [ noto-fonts font-awesome fira-code hack-font (nerdfonts.override { fonts = [ "Hack" ]; }) ]; }; 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 = 45; 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; }