2023-10-02 18:14:05 +02:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: let
|
2024-02-05 22:44:35 +01:00
|
|
|
unstable-commit-sha = "e92b6015881907e698782c77641aa49298330223";
|
2023-12-03 13:28:29 +01:00
|
|
|
ultrastable-commit-sha = "5de0b32be6e85dc1a9404c75131316e4ffbc634c";
|
2023-10-02 17:14:20 +02:00
|
|
|
in {
|
2023-10-02 18:14:05 +02:00
|
|
|
options.my.allowUnfreePackages = lib.mkOption {
|
|
|
|
type = lib.types.listOf lib.types.str;
|
|
|
|
default = [];
|
|
|
|
example = ["steam"];
|
|
|
|
};
|
|
|
|
|
2023-09-09 15:44:15 +02:00
|
|
|
config = {
|
2023-10-02 17:14:20 +02:00
|
|
|
nixpkgs.config = {
|
|
|
|
# make nixos-unstable availiable as 'pkgs.unstable'
|
|
|
|
packageOverrides = pkgs: {
|
|
|
|
unstable = import (fetchTarball "https://github.com/nixos/nixpkgs/tarball/${unstable-commit-sha}") {
|
|
|
|
config = config.nixpkgs.config;
|
|
|
|
};
|
2023-11-03 20:38:08 +01:00
|
|
|
ultrastable = import (fetchTarball "https://github.com/nixos/nixpkgs/tarball/${ultrastable-commit-sha}") {
|
|
|
|
config = config.nixpkgs.config;
|
|
|
|
};
|
2023-10-02 17:14:20 +02:00
|
|
|
};
|
2023-10-02 18:14:05 +02:00
|
|
|
|
|
|
|
# https://github.com/NixOS/nixpkgs/issues/197325#issuecomment-1579420085
|
|
|
|
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.my.allowUnfreePackages;
|
2023-10-02 17:14:20 +02:00
|
|
|
};
|
2023-09-09 15:44:15 +02:00
|
|
|
|
2023-10-31 14:43:00 +01:00
|
|
|
nix = {
|
|
|
|
settings = {
|
|
|
|
substituters = ["https://nix-community.cachix.org" "https://cache.nixos.org/"];
|
|
|
|
trusted-public-keys = ["nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-09-09 15:44:15 +02:00
|
|
|
system = {
|
|
|
|
stateVersion = "22.11";
|
|
|
|
# enable auto updates
|
2023-09-17 15:20:18 +02:00
|
|
|
autoUpgrade = {
|
|
|
|
enable = true;
|
|
|
|
dates = "weekly";
|
|
|
|
};
|
2023-09-09 15:44:15 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
nix.gc = {
|
|
|
|
automatic = true;
|
2024-03-02 13:11:01 +01:00
|
|
|
dates = "daily";
|
|
|
|
options = "--delete-older-than 7d";
|
2023-09-09 15:44:15 +02:00
|
|
|
};
|
2023-10-08 17:17:14 +02:00
|
|
|
|
|
|
|
documentation = {
|
|
|
|
enable = true; # documentation of packages
|
|
|
|
nixos.enable = false; # nixos documentation
|
|
|
|
man.enable = true; # manual pages and the man command
|
|
|
|
info.enable = false; # info pages and the info command
|
|
|
|
doc.enable = false; # documentation distributed in packages' /share/doc
|
|
|
|
};
|
2023-09-09 15:44:15 +02:00
|
|
|
};
|
|
|
|
}
|