nixos-configs/common/default.nix

158 lines
3.2 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,
2024-11-21 21:44:30 -05:00
nixd,
2023-11-22 15:33:16 -05:00
pkgs,
2024-06-15 22:51:36 -04:00
self,
2023-11-22 15:33:16 -05:00
...
2024-11-21 21:44:30 -05:00
}: let
inherit (lib) attrValues filter findFirst isAttrs hasAttr mkIf mkOption types;
in {
2023-10-15 14:43:23 -04:00
imports = [
./vars
./modules
./packages.nix
self.nixosModules.borgbackup
2023-12-03 04:50:17 -05:00
home-manager.nixosModules.home-manager
2023-10-15 14:43:23 -04:00
];
2024-04-18 14:37:46 -04:00
boot.tmp.useTmpfs = true;
2024-06-28 13:40:52 -04:00
systemd.services.nix-daemon = {
environment.TMPDIR = "/home/nix-cache";
2024-06-28 13:40:52 -04:00
preStart = ''
mkdir -p ${config.systemd.services.nix-daemon.environment.TMPDIR}
'';
};
nix = {
2024-11-21 21:44:30 -05:00
package = let
nixdInput =
findFirst
(x: x.pname == "nix") {}
nixd.packages.${pkgs.system}.nixd.buildInputs;
throws = x: !(builtins.tryEval x).success;
hasVersion = x: isAttrs x && hasAttr "version" x;
nixVersions = filter (x: ! throws x && hasVersion x) (attrValues pkgs.nixVersions);
in
findFirst (x: x.version == nixdInput.version) {} nixVersions;
2024-07-24 21:58:37 -04:00
# 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;
2024-06-10 22:57:20 -04:00
allow-import-from-derivation = 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
};
};
boot.supportedFilesystems = ["ext4" "xfs" "btrfs" "vfat" "ntfs"];
system.fsPackages = builtins.attrValues {
inherit
(pkgs)
btrfs-progs
nfs-utils
ntfs3g
xfsprogs
;
};
2024-07-31 15:50:51 -04:00
environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc";
environment.etc.npmrc.text = ''
fund = false
update-notifier = false
'';
2024-09-12 13:30:14 -04:00
environment.systemPackages = builtins.attrValues {
# Peripherals
inherit
(pkgs)
hdparm
pciutils
usbutils
rar
;
};
home-manager.users = let
inherit (config.vars) mainUser;
mainHmCfg = config.home-manager.users.${mainUser};
2024-01-04 03:39:14 -05:00
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 = mkOption {
type = types.attrs;
readOnly = true;
default = config.vars;
};
}
2023-12-08 12:48:48 -05:00
{
2024-11-17 22:13:59 -05:00
programs.bash = {
sessionVariables = rec {
FLAKE = config.environment.variables.FLAKE;
NH_FLAKE = FLAKE;
};
shellAliases.nh = "env -u FLAKE nh";
};
}
./home
2023-12-23 22:57:43 -05:00
./home/trash-d
self.homeManagerModules.neovim
2023-10-15 14:30:30 -04:00
];
home.stateVersion = config.system.stateVersion;
2023-10-15 14:30:30 -04:00
};
in {
root =
default
// {
programs.neovim = {
inherit (mainHmCfg.programs.neovim) enable enableIde user;
};
};
2024-09-12 13:30:14 -04:00
greeter = mkIf (config.services.greetd.enable) default;
${mainUser} = default;
2023-10-15 14:30:30 -04:00
};
2023-10-15 14:43:23 -04:00
}