nixos-config/profiles/services.nix

112 lines
2.7 KiB
Nix

{ config, lib, pkgs, ... }:
with config.deviceSpecific; {
services.acpid.enable = !isServer;
services.acpid.logEvents = false;
services.blueman.enable = !isServer;
services.btrbk.instances = lib.mkIf (devInfo.fileSystem == "btrfs") {
home = {
settings = {
snapshot_preserve_min = "2d";
snapshot_preserve = "7d";
snapshot_dir = "/.snapshots";
subvolume = "/home";
};
onCalendar = "daily";
};
nix = {
settings = {
snapshot_preserve_min = "2d";
snapshot_preserve = "4d";
snapshot_dir = "/.snapshots";
subvolume = "/nix";
};
onCalendar = "daily";
};
};
services.earlyoom = {
enable = devInfo.ram < 16;
freeMemThreshold = 5;
freeSwapThreshold = 100;
};
services.fstrim = lib.mkIf (devInfo.fileSystem != "zfs") {
enable = isSSD;
interval = "weekly";
};
services.zfs = lib.mkIf (devInfo.fileSystem == "zfs") {
autoScrub.enable = true;
autoScrub.interval = "daily";
trim.enable = isSSD;
trim.interval = "weekly";
};
services.gvfs.enable = !isServer;
services.nscd.enableNsncd = true;
# FIX!
#services.thermald.enable = isLaptop;
services.tlp = {
enable = isLaptop;
settings = {
TLP_DEFAULT_MODE = "BAT";
TLP_PERSISTENT_DEFAULT = 1;
CPU_SCALING_GOVERNOR_ON_AC = "powersave";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_HWP_ON_AC = "balance_performance";
CPU_HWP_ON_BAT = "balance_power";
CPU_BOOST_ON_AC = 1;
CPU_BOOST_ON_BAT = 0;
SCHED_POWERSAVE_ON_AC = 0;
SCHED_POWERSAVE_ON_BAT = 1;
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
DISK_DEVICES = "\"nvme0n1 sda\"";
DISK_APM_LEVEL_ON_AC = "\"255 254\"";
DISK_APM_LEVEL_ON_BAT = "\"255 254\"";
SATA_LINKPWR_ON_BAT = "\"med_power_with_dipm max_performance\"";
SATA_LINKPWR_ON_AC = "\"med_power_with_dipm max_performance\"";
};
};
services.undervolt = lib.mkIf (config.device == "Dell-Laptop") {
enable = true;
coreOffset = -108; # -120
gpuOffset = -48; # -54
};
services.udev.packages = lib.mkIf (config.device == "AMD-Workstation") [
pkgs.stlink
];
home-manager.users.${config.mainuser}.services = {
udiskie.enable = !isServer;
gammastep = {
enable = !isServer;
latitude = 48.79;
longitude = 44.78;
temperature.day = 6500;
temperature.night = 3000;
};
};
# secrets.seadrive = {
# owner = config.mainuser;
# };
# services.seadrive = {
# enable = !isServer;
# settingsFile = config.secrets.seadrive.decrypted;
# mountPoint = "/media/seadrive";
# };
services.upower.enable = true;
}