{ 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;

}