2024-05-23 20:26:30 +00:00
|
|
|
{
|
|
|
|
|
pkgs,
|
|
|
|
|
lib,
|
|
|
|
|
system,
|
|
|
|
|
inputs,
|
|
|
|
|
config,
|
|
|
|
|
...
|
|
|
|
|
}: {
|
2025-01-07 18:42:17 +00:00
|
|
|
imports = [./hardware-configuration.nix (import ./disko.nix {device = "/dev/nvme0n1";})];
|
2024-05-23 20:26:30 +00:00
|
|
|
|
2024-05-29 22:14:43 -04:00
|
|
|
nix.settings = {
|
2024-07-09 20:51:16 -04:00
|
|
|
trusted-users = ["zoey"];
|
2024-05-29 22:14:43 -04:00
|
|
|
};
|
|
|
|
|
|
2024-08-07 10:44:50 -04:00
|
|
|
nix.optimise = {
|
|
|
|
|
automatic = true;
|
|
|
|
|
dates = ["03:45"];
|
|
|
|
|
};
|
|
|
|
|
|
2024-11-23 18:12:57 -05:00
|
|
|
nix.package = inputs.lix-module.packages.${pkgs.system}.default;
|
|
|
|
|
|
2024-08-07 10:44:50 -04:00
|
|
|
nix.gc = {
|
|
|
|
|
automatic = true;
|
2024-12-19 21:47:51 -05:00
|
|
|
dates = "daily";
|
|
|
|
|
options = "--delete-older-than 1d";
|
2024-08-07 10:44:50 -04:00
|
|
|
};
|
|
|
|
|
|
2024-05-23 20:26:30 +00:00
|
|
|
hardware.audio.enable = true;
|
|
|
|
|
hardware.nvidia.enable = true;
|
2024-10-17 02:05:02 -04:00
|
|
|
hardware.keyboard.qmk.enable = true;
|
2024-10-08 00:27:07 -04:00
|
|
|
programs.nix-ld.enable = true;
|
2024-10-06 21:37:22 -04:00
|
|
|
|
2024-05-23 20:26:30 +00:00
|
|
|
programs.steam.enable = true;
|
|
|
|
|
programs.steam.gamescopeSession.enable = true;
|
|
|
|
|
programs.gamemode.enable = true;
|
|
|
|
|
|
|
|
|
|
ui.fonts.enable = true;
|
|
|
|
|
|
|
|
|
|
protocols.wayland.enable = true;
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
programs.openvpn3.enable = true;
|
|
|
|
|
|
2024-05-27 11:53:20 -04:00
|
|
|
services.udev.extraRules = ''
|
|
|
|
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev"
|
|
|
|
|
'';
|
2024-05-23 20:26:30 +00:00
|
|
|
services.fstrim.enable = true;
|
|
|
|
|
services.vpn.enable = true;
|
2024-05-28 12:57:57 -04:00
|
|
|
services.xserver.enable = true;
|
2024-05-30 16:22:16 -04:00
|
|
|
services.vpn.mullvad = true;
|
2024-10-16 15:40:35 -04:00
|
|
|
services.lorri.enable = true;
|
2024-09-23 19:22:17 -04:00
|
|
|
services.udisks2.enable = true;
|
2024-05-23 20:26:30 +00:00
|
|
|
services.transmission = {
|
|
|
|
|
enable = true;
|
|
|
|
|
package = pkgs.transmission_4;
|
|
|
|
|
settings = {
|
2024-07-09 20:51:16 -04:00
|
|
|
download-dir = "/home/zoey/dl";
|
2024-05-23 20:26:30 +00:00
|
|
|
};
|
|
|
|
|
};
|
2024-05-23 21:24:09 +00:00
|
|
|
services.gnome.gnome-keyring.enable = true;
|
2024-10-14 22:29:36 -04:00
|
|
|
services.solaar = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
2024-07-30 12:08:53 -04:00
|
|
|
services._1password = {
|
|
|
|
|
enable = true;
|
|
|
|
|
polkitPolicyOwnerUsername = "zoey";
|
|
|
|
|
};
|
2024-05-23 20:26:30 +00:00
|
|
|
|
|
|
|
|
# Bootloader.
|
|
|
|
|
boot.loader.systemd-boot.enable = lib.mkForce false;
|
|
|
|
|
boot.lanzaboote = {
|
|
|
|
|
enable = true;
|
|
|
|
|
pkiBundle = "/etc/secureboot";
|
|
|
|
|
};
|
|
|
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
|
|
2025-01-07 18:42:17 +00:00
|
|
|
boot.initrd.postDeviceCommands = lib.mkAfter ''
|
|
|
|
|
mkdir /btrfs_tmp
|
|
|
|
|
mount /dev/root_vg/root /btrfs_tmp
|
|
|
|
|
if [[ -e /btrfs_tmp/root ]]; then
|
|
|
|
|
mkdir -p /btrfs_tmp/old_roots
|
|
|
|
|
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
|
|
|
|
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
delete_subvolume_recursively() {
|
|
|
|
|
IFS=$'\n'
|
|
|
|
|
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
|
|
|
|
delete_subvolume_recursively "/btrfs_tmp/$i"
|
|
|
|
|
done
|
|
|
|
|
btrfs subvolume delete "$1"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
|
|
|
|
|
delete_subvolume_recursively "$i"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
btrfs subvolume create /btrfs_tmp/root
|
|
|
|
|
umount /btrfs_tmp
|
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
fileSystems."/persist".neededForBoot = true;
|
|
|
|
|
environment.persistence."/persist/system" = {
|
|
|
|
|
hideMounts = true;
|
|
|
|
|
directories = [
|
|
|
|
|
"/etc/nixos"
|
|
|
|
|
"/var/log"
|
|
|
|
|
"/var/lib/bluetooth"
|
|
|
|
|
"/var/lib/nixos"
|
|
|
|
|
"/var/lib/systemd/coredump"
|
|
|
|
|
"/etc/NetworkManager/system-connections"
|
|
|
|
|
{
|
|
|
|
|
directory = "/var/lib/colord";
|
|
|
|
|
user = "colord";
|
|
|
|
|
group = "colord";
|
|
|
|
|
mode = "u=rwx,g=rx,o=";
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
files = [
|
|
|
|
|
"/etc/machine-id"
|
|
|
|
|
{
|
|
|
|
|
file = "/var/keys/secret_file";
|
|
|
|
|
parentDirectory = {mode = "u=rwx,g=,o=";};
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
2024-05-23 20:26:30 +00:00
|
|
|
networking.hostName = "earth"; # Define your hostname.
|
|
|
|
|
|
2024-05-27 16:04:59 -04:00
|
|
|
networking.extraHosts = "127.0.0.1 local-cald.io";
|
|
|
|
|
|
2024-05-23 20:26:30 +00:00
|
|
|
networking.networkmanager = {
|
|
|
|
|
enable = true;
|
|
|
|
|
unmanaged = ["enp6s0"];
|
|
|
|
|
# insertNameservers = ["1.1.1.1" "1.0.0.1"];
|
|
|
|
|
};
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
boot.kernelPackages = pkgs.linuxPackages_zen;
|
2024-05-23 20:26:30 +00:00
|
|
|
boot.supportedFilesystems = ["ntfs"];
|
|
|
|
|
|
2024-10-16 15:40:35 -04:00
|
|
|
services.dlna.enable = false;
|
2024-05-23 20:26:30 +00:00
|
|
|
# services.openssh = {
|
|
|
|
|
# enable = true;
|
|
|
|
|
# PasswordAuthentication = true;
|
|
|
|
|
# };
|
|
|
|
|
|
2024-05-23 23:43:27 -04:00
|
|
|
time.timeZone = "America/Detroit";
|
|
|
|
|
|
2024-05-23 20:26:30 +00:00
|
|
|
environment.systemPackages = [
|
|
|
|
|
pkgs.sbctl
|
2024-10-31 21:01:42 -04:00
|
|
|
pkgs.vesktop
|
2024-05-23 20:26:30 +00:00
|
|
|
pkgs.mangohud
|
|
|
|
|
pkgs.transmission_4
|
|
|
|
|
inputs.agenix.packages.${system}.agenix
|
2024-12-19 21:47:51 -05:00
|
|
|
inputs.awsvpnclient.packages."${pkgs.system}".awsvpnclient
|
2024-05-23 20:26:30 +00:00
|
|
|
];
|
|
|
|
|
|
2024-12-19 21:47:51 -05:00
|
|
|
programs.fish.enable = true;
|
2025-01-07 18:42:17 +00:00
|
|
|
programs.fuse.userAllowOther = true;
|
2024-07-09 20:51:16 -04:00
|
|
|
users.users.zoey = {
|
|
|
|
|
isNormalUser = true;
|
|
|
|
|
description = "zoey";
|
|
|
|
|
extraGroups = ["networkmanager" "wheel" "docker" "libvirtd" "plugdev"];
|
2024-12-19 21:47:51 -05:00
|
|
|
shell = pkgs.fish;
|
2024-07-09 20:51:16 -04:00
|
|
|
initialHashedPassword = "$6$rounds=2000000$rFBJH7LwdEHvv.0i$HdHorWqp8REPdWPk5fEgZXX1TujRJkMxumGK0f0elFN0KRPlBjJMW2.35A.ID/o3eC/hGTwbSJAcJcwVN2zyV/";
|
|
|
|
|
};
|
|
|
|
|
|
2024-05-26 19:34:26 -04:00
|
|
|
users.groups.plugdev = {};
|
|
|
|
|
|
2024-07-09 20:51:16 -04:00
|
|
|
snowfallorg.users.zoey = {
|
2024-05-23 20:26:30 +00:00
|
|
|
create = true;
|
|
|
|
|
admin = false;
|
|
|
|
|
|
|
|
|
|
home = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
catppuccin.enable = true;
|
|
|
|
|
programs.virt-manager.enable = true;
|
|
|
|
|
|
2024-09-21 18:49:15 -04:00
|
|
|
sites.jellyfin.enable = true;
|
|
|
|
|
|
2024-05-23 20:26:30 +00:00
|
|
|
virtualisation.docker.enable = true;
|
|
|
|
|
virtualisation.libvirtd.enable = true;
|
2024-09-12 19:29:12 -04:00
|
|
|
|
|
|
|
|
system.stateVersion = "24.05";
|
2024-05-23 20:26:30 +00:00
|
|
|
}
|