{ pkgs, lib, config, inputs, ... }: let laptop = builtins.readFile "/etc/hostname" == '' syl ''; in { imports = [ ./cachix.nix ]; nix = { extraOptions = "experimental-features = nix-command flakes"; gc = { automatic = true; dates = "Mon 10:00"; options = "--delete-older-than 20d"; }; settings = { auto-optimise-store = true; }; nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; }; # nixpkgs.config.allowUnFree = true; # pkgs.config.allowUnfree = true; system.autoUpgrade = { enable = true; dates = "11:00"; allowReboot = false; flake = "${config.users.users.chris.home}/${if laptop then ".dotfiles" else "conf"}"; flags = [ "--update-input" "nixpkgs" "--commit-lock-file" ]; }; services.murmur = { enable = true; bonjour = true; openFirewall = true; }; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; i18n.defaultLocale = "en_US.UTF-8"; time.timeZone = "America/Chicago"; networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. # Set default shell to be dash for speed # Apparently this is bad because a lot of nix relies on bash # environment.binsh = "${pkgs.dash}/bin/dash"; environment.homeBinInPath = true; programs.fish.enable = true; programs.zsh.enable = true; }