rix101/machines/nix-darwin/aarch64-darwin/limonka/configuration.nix
reo101 e3b1539b41
refactor(flake)!: deduplicate code in configurations flake module
Pass around `perSystem`'s `pkgs` instances to the system configurations
Some more refactoring in `configurations`' `mkHost` functions
Also start using `home-manager`'s `useGlobalPkgs` option
Also use `mkShellNoCC` for default `devShell`
Also `nix flake update`
2024-07-20 14:30:25 +03:00

120 lines
3.8 KiB
Nix

{ inputs, outputs, lib, pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [ ];
# environment.darwinConfig = builtins.toString ./configuration.nix;
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
nix = let
flakeInputs = lib.filterAttrs (lib.const (lib.isType "flake")) inputs;
in {
# Ensure we can work with flakes
# NOTE: run `sudo -i nix-env --uninstall nix` to uninstall the global `nix`
package = pkgs.nixVersions.monitored.latest;
# This will add each flake input as a registry
# To make nix3 commands consistent with your flake
registry = lib.mapAttrs (_: value: { flake = value; }) flakeInputs;
# This will additionally add your inputs to the system's legacy channels
# Making legacy nix commands consistent as well, awesome!
nixPath = lib.mapAttrsToList (key: value: "${key}=flake:${key}") flakeInputs;
# extraOptions = ''
# # Enable flakes and new 'nix' command
# experimental-features = nix-command flakes
# # Allow building multiple derivations in parallel
# max-jobs = auto
# # Deduplicate and optimize nix store
# auto-optimise-store = true
# # Keep outputs and derivations
# keep-outputs = true
# keep-derivations = true
# '';
settings = {
# Enable flakes and new 'nix' command
experimental-features = [
# "nix-command"
# "flakes"
# "no-url-literals" # Disabling URL literals
"ca-derivations" # Content-Addressable Derivations
"recursive-nix" # Recursive Nix
"flakes" # Flakes and related commands
"nix-command" # Experimental Nix commands
"auto-allocate-uids" # Automatic allocation of UIDs
"cgroups" # Cgroup support
# "daemon-trust-override" # Overriding daemon trust settings
# "dynamic-derivations" # Dynamic derivation support
# "discard-references" # Discarding build output references
"fetch-closure" # builtins.fetchClosure
"impure-derivations" # Impure derivations
];
# Allow building multiple derivations in parallel
max-jobs = "auto";
# Deduplicate and optimize nix store
auto-optimise-store = false;
# Keep outputs and derivations
keep-outputs = true;
keep-derivations = true;
trusted-users = [
"root"
"pavelatanasov"
];
# Add nix-community and rix101 cachix caches
substituters = [
"https://rix101.cachix.org"
"https://nix-community.cachix.org"
"https://lean4.cachix.org"
"https://nixpkgs-cross-overlay.cachix.org"
];
trusted-public-keys = [
"rix101.cachix.org-1:2u9ZGi93zY3hJXQyoHkNBZpJK+GiXQyYf9J5TLzCpFY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"lean4.cachix.org-1:mawtxSxcaiWE24xCXXgh3qnvlTkyU7evRRnGeAhD4Wk="
"nixpkgs-cross-overlay.cachix.org-1:TjKExGN4ys960TlsGqNOI/NBdoz2Jdr2ow1VybWV5JM="
];
};
};
# Create /etc/zshrc that loads the nix-darwin environment.
programs.zsh.enable = true; # default shell on catalina
# Fonts
fonts.packages = with pkgs; [
(nerdfonts.override { fonts = [ "FiraCode" ]; })
];
reo101 = {
system = {
enable = true;
};
brew = {
enable = true;
};
yabai = {
enable = true;
};
};
# Keyboard
system.keyboard.enableKeyMapping = true;
system.keyboard.remapCapsLockToEscape = true;
# Add ability to used TouchID for sudo authentication
security.pam.enableSudoTouchIdAuth = true;
# Used for backwards compatibility, please read the changelog before changing.
# > darwin-rebuild changelog
system.stateVersion = 4;
}