Files
FxNet/hosts/fenixpc/default.nix

146 lines
2.6 KiB
Nix

{
config,
lib,
pkgs,
quirks,
...
}:
let
users = [
"fenix"
];
in
{
imports = (
quirks [
"development"
"steam"
# "yubilock"
]
);
home-manager = {
users = lib.genAttrs users (user: import ./${user}.nix);
};
networking = {
hostName = "fenixpc";
networkmanager = {
plugins =
with pkgs;
lib.mkForce [
networkmanager-openvpn
];
};
};
systemd.oomd.settings.OOM.DefaultMemoryPressureLimit = "15%";
services = {
printing.ricoh.enable = true;
printing.enable = false;
printing.cups-pdf.enable = false;
calibre-web = {
enable = true;
user = "fenix";
};
lact.enable = true;
};
systemd.services.calibre-web.serviceConfig.environment = lib.mkForce "";
systemd.services.calibre-web.environment.CACHE_DIR = "/var/cache/calibre-web";
environment.systemPackages = with pkgs; [
microcode-amd
openvpn
cups
];
users = {
mutableUsers = true;
users = lib.genAttrs users (user: {
shell = pkgs.zsh;
createHome = true;
isNormalUser = true;
initialPassword = "password";
group = "fenix";
extraGroups = [
"networkmanager"
"ssh"
"docker"
"video"
"pipewire"
"wheel"
"input"
"audio"
"users"
"gamemode"
config.services.kubo.group
];
});
groups = {
i2c = {
members = users;
};
}
// lib.genAttrs users (user: {
members = [
user
];
gid = config.users.users.${user}.uid;
});
};
virtualisation.vmVariant = {
virtualisation = {
memorySize = 16096;
cores = 8;
};
};
security.pam = {
services = lib.genAttrs users (user: {
gnupg.enable = true;
kwallet.enable = true;
});
};
programs = {
gamemode = {
enable = true;
settings = {
general = {
renice = 10;
# blacklist = "vlc,firefox";
# whitelist = "game1,game2";
};
cpu = {
governor = "performance";
boost = "auto";
};
gpu = {
amd_performance_level = "high";
apply_gpu_optimizations = 1;
per_process_gpu_clocks = 1;
};
supervisor = {
# killlist = "tracker-miner-fs,tracker-store";
};
custom = {
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
};
};
};
};
hardware.graphics = {
extraPackages = with pkgs; [
libva
vulkan-tools
];
};
}