System Core
This file imports various system configuration components in addition to enabling flakes and defining the system version.
{ config, pkgs, ... }:
let
inherit (pkgs) aspellWithDicts;
myaspell = aspellWithDicts (d: [d.en d.en-computers d.en-science]);
in {
imports = [
./aerospace.nix
./homebrew.nix
];
# Unfortunately, I sometimes need unfree packages
nixpkgs.config.allowUnfree = true;
# Install a small number of packages for root
environment.systemPackages = with pkgs; [
gnupg
myaspell
neovim
];
# Use TouchID for sudo
security.pam.services.sudo_local.touchIdAuth = true;
# Open text files in neovim by default
environment.variables.EDITOR = "nvim";
# Enable nix packages
nix.package = pkgs.nix;
programs.gnupg.agent.enable = false;
# Use flakes
nix.settings.experimental-features = "nix-command flakes";
# Use zsh as my shell
programs.zsh.enable = true;
# Enable documentation and make
documentation = {
enable = true;
info.enable = true;
man.enable = true;
};
system.stateVersion = 5;
# Use ARM64 packages
nixpkgs.hostPlatform = "aarch64-darwin";
# Define my user
users.users.jjanzen = {
name = "jjanzen";
home = "/Users/jjanzen";
};
}