98 lines
2.6 KiB
Nix
98 lines
2.6 KiB
Nix
{ config, nix-index-database, nixpkgs-unstable, nixpkgs, lib, pkgs, ... }: {
|
|
imports = [
|
|
nix-index-database.nixosModules.nix-index
|
|
];
|
|
|
|
nix = {
|
|
# https://nixos.wiki/wiki/Storage_optimization
|
|
gc = {
|
|
# Automatically run the nix garbage collector, removing files from
|
|
# the store that are not referenced by any generation.
|
|
# https://nixos.org/manual/nix/stable/package-management/garbage-collection
|
|
automatic = true;
|
|
dates = "weekly";
|
|
options = "--delete-older-than=7d";
|
|
};
|
|
settings = {
|
|
# Automatically optimise the store after each build. Store optimisation
|
|
# reduces nix store space by 25-35% by finding identical files and
|
|
# hard-linking them to each other.
|
|
# https://nixos.org/manual/nix/unstable/command-ref/nix-store/optimise.html
|
|
auto-optimise-store = true;
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
};
|
|
|
|
# The nix registry is used to refer to flakes using symbolic identifiers
|
|
# when running commands such as `nix run nixpkgs#hello`. By default,
|
|
# the global registry from [1] is used, which aliases `nixpkgs` to the
|
|
# nixpkgs-unstable branch. We overwrite the default global `nixpkgs`
|
|
# registry with one which refers to the same nixpkgs as the rest of
|
|
# the system, aligning it with flake.lock.
|
|
# [1] https://github.com/NixOS/flake-registry/blob/master/flake-registry.json
|
|
registry = {
|
|
nixpkgs.flake = nixpkgs;
|
|
nixpkgs-unstable.flake = nixpkgs-unstable;
|
|
};
|
|
};
|
|
|
|
# Enable all firmware with a license allowing redistribution
|
|
hardware.enableRedistributableFirmware = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
bat
|
|
black
|
|
clang
|
|
curl
|
|
dig
|
|
fd
|
|
file
|
|
fzf
|
|
gcc
|
|
git
|
|
gnumake
|
|
htop
|
|
inetutils
|
|
jq
|
|
magic-wormhole
|
|
ntp
|
|
progress
|
|
pwgen
|
|
python311
|
|
rsync
|
|
sqlite
|
|
tmux
|
|
traceroute
|
|
tree
|
|
unzip
|
|
wget
|
|
xkcdpass
|
|
yq
|
|
];
|
|
|
|
# https://github.com/nix-community/comma
|
|
programs.nix-index-database.comma.enable = true;
|
|
programs.command-not-found.enable = false;
|
|
|
|
i18n = {
|
|
defaultLocale = "en_DK.UTF-8";
|
|
extraLocaleSettings = {
|
|
LC_ADDRESS = "en_DK.UTF-8";
|
|
LC_IDENTIFICATION = "en_DK.UTF-8";
|
|
LC_MEASUREMENT = "en_DK.UTF-8";
|
|
LC_MONETARY = "en_DK.UTF-8";
|
|
LC_NAME = "en_DK.UTF-8";
|
|
LC_NUMERIC = "en_DK.UTF-8";
|
|
LC_PAPER = "en_DK.UTF-8";
|
|
LC_TELEPHONE = "en_DK.UTF-8";
|
|
LC_TIME = "en_DK.UTF-8";
|
|
};
|
|
supportedLocales = lib.mkOptionDefault [
|
|
"da_DK.UTF-8/UTF-8"
|
|
];
|
|
};
|
|
|
|
time = {
|
|
timeZone = "Europe/Copenhagen";
|
|
};
|
|
}
|