parent
1ce40f2c1a
commit
6ca0d7248b
329 changed files with 178 additions and 139 deletions
modules/base
143
modules/base/default.nix
Normal file
143
modules/base/default.nix
Normal file
|
@ -0,0 +1,143 @@
|
|||
self: {
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) attrValues mkDefault mkIf mkOption types;
|
||||
inherit (self.inputs) home-manager nh;
|
||||
|
||||
cfg = config.roles.base;
|
||||
in {
|
||||
imports = [
|
||||
./locale
|
||||
./locate
|
||||
./substituters
|
||||
(import ./common-nix self)
|
||||
(import ./packages self)
|
||||
|
||||
self.nixosModules.borgbackup
|
||||
self.nixosModules.tmux
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
];
|
||||
|
||||
options.roles.base = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.variables.FLAKE = mkDefault "/home/${cfg.user}/.nix";
|
||||
|
||||
programs.tmux.enableCustomConf = true;
|
||||
|
||||
boot.tmp.useTmpfs = true;
|
||||
|
||||
systemd.services.nix-daemon = {
|
||||
environment.TMPDIR = "/home/nix-cache";
|
||||
preStart = ''
|
||||
mkdir -p ${config.systemd.services.nix-daemon.environment.TMPDIR}
|
||||
'';
|
||||
};
|
||||
|
||||
nix = {
|
||||
# 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;
|
||||
allow-import-from-derivation = true;
|
||||
fallback = true;
|
||||
|
||||
# remote building
|
||||
trusted-users = ["matt" "nixremote"];
|
||||
};
|
||||
};
|
||||
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
package = nh.packages.${pkgs.system}.default;
|
||||
|
||||
# weekly cleanup
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep-since 30d";
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
fwupd.enable = true;
|
||||
|
||||
xserver.xkb = {
|
||||
layout = "ca";
|
||||
variant = "multix";
|
||||
};
|
||||
};
|
||||
|
||||
boot.supportedFilesystems = ["ext4" "xfs" "btrfs" "vfat" "ntfs"];
|
||||
system.fsPackages = attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
btrfs-progs
|
||||
nfs-utils
|
||||
ntfs3g
|
||||
xfsprogs
|
||||
;
|
||||
};
|
||||
|
||||
environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc";
|
||||
environment.etc.npmrc.text = ''
|
||||
fund = false
|
||||
update-notifier = false
|
||||
'';
|
||||
|
||||
environment.systemPackages = attrValues {
|
||||
# Peripherals
|
||||
inherit
|
||||
(pkgs)
|
||||
hdparm
|
||||
pciutils
|
||||
usbutils
|
||||
rar
|
||||
;
|
||||
};
|
||||
|
||||
home-manager.users = let
|
||||
default = {
|
||||
imports = [
|
||||
{
|
||||
programs.bash = {
|
||||
sessionVariables = rec {
|
||||
FLAKE = config.environment.variables.FLAKE;
|
||||
NH_FLAKE = FLAKE;
|
||||
};
|
||||
shellAliases.nh = "env -u FLAKE nh";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
home.stateVersion = config.system.stateVersion;
|
||||
};
|
||||
in {
|
||||
greeter = mkIf (config.services.greetd.enable) default;
|
||||
${cfg.user} = default;
|
||||
};
|
||||
};
|
||||
|
||||
# For accurate stack trace
|
||||
_file = ./default.nix;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue