snowfield/machines/gallifrey/default.nix

120 lines
2.5 KiB
Nix

{
config,
pkgs,
inputs,
profiles,
...
}:
{
imports = [
./hardware.nix
./home-julien.nix
];
machine.meta = {
arch = "x86_64-linux";
nixpkgs_version = inputs.unstable;
hm_version = inputs.home-manager-unstable;
profiles = with profiles; [ sound ];
};
networking.hostName = "gallifrey";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.networkmanager.enable = true;
networking.networkmanager.dns = "systemd-resolved";
services.resolved.enable = true;
#services.userborn.enable = true;
security.pam.loginLimits = [
{
domain = "*";
type = "-";
item = "nofile";
value = "262144";
}
];
disko = import ./disko.nix;
services.desktopManager.cosmic.enable = true;
services.displayManager.cosmic-greeter.enable = true;
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
services.xserver.videoDrivers = [ "nvidia" ];
hardware.graphics.enable = true;
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = false;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.beta;
};
programs.xwayland.enable = true;
services.postgresql.enable = true;
programs.dconf.enable = true;
services.emacs = {
enable = true;
package = pkgs.emacs29-gtk3;
};
services.udev.packages = [ pkgs.nitrokey-udev-rules ];
security.polkit.enable = true;
nix = {
distributedBuilds = true;
buildMachines = [
{
hostName = "epyc.infra.newtype.fr";
maxJobs = 100;
systems = [ "x86_64-linux" ];
sshUser = "root";
supportedFeatures = [
"kvm"
"nixos-test"
"benchmark"
"big-parallel"
];
sshKey = "/home/julien/.ssh/id_ed25519";
speedFactor = 2;
}
];
};
networking.networkmanager.plugins = [ pkgs.networkmanager-openvpn ];
programs.ssh.startAgent = true;
environment.systemPackages = with pkgs; [
tailscale
brightnessctl
sbctl
ddcutil
xorg.xinit
];
environment.persistence."/persistent" = {
hideMounts = true;
directories = [
"/var/lib"
"/var/log"
];
files = [
"/etc/machine-id"
"/etc/ssh/ssh_host_ed25519_key"
"/etc/ssh/ssh_host_ed25519_key.pub"
];
};
programs.fuse.userAllowOther = true;
fileSystems."/persistent".neededForBoot = true;
system.stateVersion = "24.11";
}