nix-config/trantor.nix

217 lines
5.8 KiB
Nix
Raw Normal View History

2022-01-18 09:32:55 +01:00
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
2022-03-05 18:55:50 +01:00
{ config, pkgs, stablePkgs, impermanence, ... }:
2022-01-18 09:32:55 +01:00
2022-04-24 16:53:55 +02:00
let home = "/home/rilla";
in {
2022-02-23 12:40:21 +01:00
imports = [ ./nixos/hardware-configuration/trantor.nix ./nixos/common.nix ];
2022-01-18 09:32:55 +01:00
2022-03-05 18:55:50 +01:00
home-manager = {
users.rilla.imports =
[ home/trantor.nix "${impermanence}/home-manager.nix" ];
extraSpecialArgs.stablePkgs = stablePkgs;
};
2022-01-25 12:27:52 +01:00
2022-01-18 09:32:55 +01:00
fileSystems = {
2022-01-25 12:27:52 +01:00
"/boot/efi" = {
device = "/dev/disk/by-uuid/0BFA-9A66";
fsType = "vfat";
};
2022-11-06 13:00:02 +01:00
"/mnt/btr_system" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/btr_user" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/persist" = {
2022-05-12 11:00:26 +02:00
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/data" = {
2022-07-12 12:20:36 +02:00
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=data" "compress=zstd" ];
neededForBoot = true;
};
2022-11-13 16:00:42 +01:00
"/mnt/vfs_share" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=vfs_share" "compress=zstd" ];
neededForBoot = true;
};
2022-05-12 11:00:26 +02:00
"/nix" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" ];
};
"/mnt/logs" = {
2022-07-12 12:20:36 +02:00
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=logs" "compress=zstd" ];
neededForBoot = true;
};
2022-05-12 11:00:26 +02:00
"/boot" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=boot" "compress=zstd" ];
};
"/swap" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=swap" ];
};
2022-01-28 15:11:30 +01:00
2022-01-25 12:27:52 +01:00
};
2022-04-24 16:53:55 +02:00
environment.variables = {
NIXOS_CONFIG = "${home}/configs/nix-config/trantor.nix";
LV2_PATH =
"${home}/.nix-profile/lib/lv2:${home}/Audio/plugins/lv2:/run/current-system/sw/lib/lv2";
LXVST_PATH =
"${home}/.nix-profile/lib/lxvst:${home}/Audio/plugins/lxvst:/run/current-system/sw/lib/lxvst";
LADSPA_PATH =
"${home}/.nix-profile/lib/ladspa:${home}/Audio/plugins/ladspa:/run/current-system/sw/lib/ladspa";
};
2022-01-28 14:38:47 +01:00
2022-01-25 12:27:52 +01:00
networking.networkmanager.wifi.macAddress = "80:FA:5B:41:12:0F";
2022-01-18 09:32:55 +01:00
nixpkgs.config.allowUnfree = true;
2022-01-25 12:27:52 +01:00
programs.steam.enable = true;
2022-01-18 09:32:55 +01:00
boot = {
loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
enable = true;
version = 2;
device = "nodev";
enableCryptodisk = true;
2022-01-25 12:27:52 +01:00
efiSupport = true;
2022-01-18 09:32:55 +01:00
};
};
initrd = {
2022-04-08 19:37:32 +02:00
luks = {
#yubikeySupport = true;
devices = {
"system" = {
device = "/dev/disk/by-uuid/b9778e01-a86c-4c6b-beb3-f97888d4a6eb";
keyFile = "/system_keyfile.bin";
allowDiscards = true;
# yubikey = {
# slot = 2;
# twoFactor = false;
# gracePeriod = 30;
# keyLength = 64;
# saltLength = 16;
# storage = {
# device = "/dev/nvme0n1p1";
# fsType = "vfat";
# path = "/crypt-storage/default";
# };
# };
};
"user" = {
device = "/dev/disk/by-uuid/d8e9b35d-704a-4f66-bc19-0dd3e158de36";
keyFile = "/user_keyfile.bin";
# yubikey = {
# slot = 2;
# twoFactor = false;
# gracePeriod = 30;
# keyLength = 64;
# saltLength = 16;
# storage = {
# device = "/dev/nvme0n1p1";
# fsType = "vfat";
# path = "/crypt-storage/default";
# };
# };
};
2022-01-18 09:32:55 +01:00
};
};
secrets = {
2022-01-28 14:38:47 +01:00
"/system_keyfile.bin" = "/boot/system_keyfile.bin";
"/user_keyfile.bin" = "/boot/user_keyfile.bin";
2022-01-18 09:32:55 +01:00
};
};
};
2022-09-26 16:54:54 +02:00
# services.beesd.filesystems = {
# system = {
# spec = "/dev/mapper/system";
# hashTableSizeMB = 256;
# verbosity = "info";
# extraOptions = [ "--loadavg-target" "2.0" ];
# };
# user = {
# spec = "/dev/mapper/user";
# hashTableSizeMB = 256;
# verbosity = "info";
# extraOptions = [ "--loadavg-target" "2.0" ];
# };
# };
2022-08-17 12:07:27 +02:00
2022-11-06 13:31:43 +01:00
# todo: target and/or archive
services.btrbk.instances.btrbk = {
onCalendar = "*:0/30"; # every 30 minutes
settings = {
snapshot_preserve = "2d";
snapshot_preserve_min = "latest";
snapshot_create = "onchange";
volume."/mnt/btr_user" = {
snapshot_dir = "btrbk_snapshots";
subvolume = {
data = { };
persist = { };
};
};
};
};
2022-01-18 09:32:55 +01:00
networking = {
hostName = "trantor";
interfaces = {
enp3s0f1.useDHCP = true;
wlp4s0.useDHCP = true;
};
};
2022-01-25 12:27:52 +01:00
services.xserver = { videoDrivers = [ "nvidia" ]; };
hardware.nvidia = {
nvidiaPersistenced = true;
modesetting.enable = true;
prime = {
sync.enable = true;
nvidiaBusId = "PCI:1:0:0";
intelBusId = "PCI:0:2:0";
};
};
2022-01-18 09:32:55 +01:00
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
2023-01-07 20:28:54 +01:00
system.stateVersion = "22.11"; # Did you read the comment?
2022-01-18 09:32:55 +01:00
}