nixos-config/sets/base.nix

119 lines
2.7 KiB
Nix

{
config,
lib,
inputs,
...
}:
{
imports = [
inputs.lix-module.nixosModules.default
inputs.private.nixosModules.base
inputs.private.nixosModules.substituter
./xonsh.nix
];
nix = {
settings = {
auto-optimise-store = true;
experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
];
use-xdg-base-directories = true;
};
gc = {
automatic = true;
dates = "8:00";
options = "--delete-older-than 14d";
};
};
nixpkgs = {
overlays = [
inputs.artemist.overlays.default
inputs.fonts.overlays.default
(final: prev: {
nheko = prev.nheko.overrideAttrs (attrs: {
patches =
attrs.patches
++ (with final; [
(fetchpatch {
name = "custom-reactions-display.patch";
url = "https://github.com/Nheko-Reborn/nheko/commit/2f1b3519d38c99ded45c1a9d9e86f5d4dd961238.patch";
hash = "sha256-1/7jisXw+VfC65SeDC15yVuHqx01OJlJkOVGeIiLeN4=";
})
(fetchpatch {
name = "custom-reactions-history.patch";
url = "https://github.com/Nheko-Reborn/nheko/commit/1994ea634eab69478cfdf1da37cbb9de62dbe595.patch";
hash = "sha256-P3nG9s4TWBwcEmEJlTpFsM4QQbRYNGmcRC4zZW8Zj4Y=";
})
]);
});
})
];
config.allowUnfreePredicate =
pkg:
(pkg ? passthru && pkg.passthru ? font && pkg.passthru.font)
|| (builtins.elem (lib.getName pkg) [
"1password"
"brscan5"
"brscan5-etc-files"
"celeste64"
"corefonts"
"google-chrome"
"jlink"
"makemkv"
"steam"
"steam-jupiter-original"
"steam-original"
"steam-run"
"steamdeck-hw-theme"
"uhk-agent"
"uhk-udev-rules"
"unrar"
]);
};
console = {
keyMap = "us";
earlySetup = true;
};
time.timeZone = "Etc/UTC";
environment.shellAliases.cp = "cp --reflink=auto --sparse=always";
networking.firewall.enable = false;
programs.fish.enable = true;
users = {
users.artemis = {
isNormalUser = true;
description = "Artemis Tosini";
uid = 1000;
extraGroups = [
"wheel"
"artemis"
];
shell = "/run/current-system/sw/bin/fish";
# hashedPassword set in private
};
groups.artemis.gid = config.users.users.artemis.uid;
mutableUsers = false;
};
security.sudo.execWheelOnly = true;
systemd.extraConfig = "DefaultLimitCORE=infinity";
security.pam.loginLimits = [
{
domain = "*";
item = "core";
type = "hard";
value = "infinity";
}
];
}