Files
nixos/modules/services.nix
2025-11-03 14:44:57 +01:00

136 lines
2.8 KiB
Nix

{
config,
pkgs,
lib,
...
}:
{
environment.systemPackages = with pkgs; [
zram-generator
];
services = {
lact.enable = true;
printing.enable = true;
flatpak = {
enable = true;
remotes = [
{
name = "flathub";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
}
];
packages = [
{
appId = "com.mattjakeman.ExtensionManager";
origin = "flathub";
}
{
appId = "com.prusa3d.PrusaSlicer";
origin = "flathub";
}
{
appId = "com.github.tchx84.Flatseal";
origin = "flathub";
}
{
appId = "org.gtk.Gtk3theme.Adwaita-dark";
origin = "flathub";
}
{
appId = "org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Darkest";
origin = "flathub";
}
{
appId = "com.github.iwalton3.jellyfin-media-player";
origin = "flathub";
}
];
};
sshd.enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
xserver = {
enable = true;
excludePackages = with pkgs; [
xterm
];
xkb = {
layout = "cz";
variant = "";
};
};
pulseaudio.enable = false;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
hardware.openrgb.motherboard = "amd";
hardware.openrgb.enable = true;
journald.extraConfig = ''
SystemMaxUse=2G
RuntimeMaxUse=1G
SystemMaxFiles=100
'';
zram-generator = {
enable = true;
settings = {
"zram0" = {
"zram-size" = "ram*1.5";
"compression-algorithm" = "zstd";
};
};
};
btrfs = {
autoScrub = {
enable = true;
interval = "monthly";
};
};
fstrim = {
enable = true;
interval = "weekly";
};
};
systemd = {
services."nix-prune-generations" = {
description = "Keep only 5 system generations and run nix-collect-garbage";
serviceConfig = {
Type = "oneshot";
ExecStart = ''
${pkgs.nix}/bin/nix-env -p /nix/var/nix/profiles/system --delete-generations +5 || true
${pkgs.nix}/bin/nix-collect-garbage -d || true
'';
Nice = "10";
};
};
timers."nix-prune-generations" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "weekly";
Persistent = true;
};
};
};
}