nixos-configs/common/default.nix

138 lines
2.7 KiB
Nix
Raw Normal View History

2023-11-22 15:33:16 -05:00
{
config,
2023-12-03 04:50:17 -05:00
home-manager,
lib,
2023-11-22 15:33:16 -05:00
nh,
nix-melt,
nur,
2023-11-22 15:33:16 -05:00
nurl,
pkgs,
...
} @ inputs: {
2023-10-15 14:43:23 -04:00
imports = [
./vars
./modules
./pkgs
nur.nixosModules.nur
2023-12-03 04:50:17 -05:00
home-manager.nixosModules.home-manager
../modules/arion
2024-03-02 22:04:23 -05:00
../modules/borgbackup
../modules/nvidia.nix
2023-10-15 14:43:23 -04:00
];
nixpkgs = {
config.allowUnfree = true;
overlays = import ./overlays inputs;
};
2024-04-18 14:37:46 -04:00
boot.tmp.useTmpfs = true;
nix = {
2024-05-05 16:45:35 -04:00
# Keep a version that works with nix-eval-jobs
package = pkgs.nixVersions.git.overrideAttrs (oldAttrs: {
pname = "nix";
version = "2.21.3";
src = pkgs.fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "60824fa97c588a0faf68ea61260a47e388b0a4e5";
sha256 = "10z/SoidVl9/lh56cMLj7ntJZHtVrumFvmn1YEqXmaM=";
};
});
# Edit nix.conf
settings = {
# Store
keep-outputs = true;
keep-derivations = true;
auto-optimise-store = true;
# Commands
experimental-features = ["nix-command" "flakes"];
http-connections = 0; # unlimited for local cache
warn-dirty = false;
show-trace = true;
2023-12-20 03:47:22 -05:00
# remote building
trusted-users = ["matt" "nixremote"];
};
};
2024-04-18 14:37:46 -04:00
programs.nh = {
enable = true;
2024-04-18 14:37:46 -04:00
package = nh.packages.${pkgs.system}.default;
# weekly cleanup
clean = {
enable = true;
extraArgs = "--keep-since 30d";
};
2023-11-19 15:32:28 -05:00
};
2023-11-30 17:01:46 -05:00
services = {
fwupd.enable = true;
xserver.xkb = {
2023-11-30 17:01:46 -05:00
layout = "ca";
variant = "multix";
2023-11-30 17:01:46 -05:00
};
};
home-manager = let
inherit (config.vars) mainUser;
2024-01-04 03:39:14 -05:00
mainUserConf = config.home-manager.users.${mainUser};
2023-10-15 14:30:30 -04:00
default = {
imports = [
2023-12-08 12:48:48 -05:00
# Make the vars be the same on Nix and HM
{
options.vars = lib.mkOption {
type = lib.types.attrs;
readOnly = true;
default = config.vars;
};
}
2023-12-08 12:48:48 -05:00
{
programs.bash.sessionVariables = {
FLAKE = config.environment.variables.FLAKE;
};
}
2023-10-15 14:43:23 -04:00
nur.hmModules.nur
2023-11-22 14:36:42 -05:00
./home
2023-12-23 22:57:43 -05:00
./home/trash-d
./pkgs
2023-10-15 14:30:30 -04:00
];
2023-11-22 15:33:16 -05:00
home.packages =
[
2023-12-08 12:48:48 -05:00
nix-melt.packages.${pkgs.system}.default
nurl.packages.${pkgs.system}.default
2023-11-22 15:33:16 -05:00
]
++ (with config.nur.repos.rycee; [
mozilla-addons-to-nix
]);
2023-10-15 14:30:30 -04:00
};
in {
users = {
root =
default
// {
home.stateVersion = mainUserConf.home.stateVersion;
};
greeter =
lib.mkIf (config.services.greetd.enable)
(default
// {
home.stateVersion = mainUserConf.home.stateVersion;
});
${mainUser} = default;
};
2023-10-15 14:30:30 -04:00
};
2023-10-15 14:43:23 -04:00
}