mirror of
https://git.sr.ht/~magic_rb/dotfiles
synced 2024-11-30 03:56:12 +01:00
108 lines
2.3 KiB
Nix
108 lines
2.3 KiB
Nix
{ inputs', pkgs, ... }:
|
|
{
|
|
nixpkgs.overlays = [
|
|
inputs'.self.overlays.show-files-to-be-deleted
|
|
];
|
|
|
|
environment.systemPackages = [
|
|
pkgs.show-files-to-be-deleted
|
|
];
|
|
|
|
environment.persistence."/nix/persist" = {
|
|
hideMounts = true;
|
|
directories = [
|
|
"/var/log"
|
|
"/var/lib/bluetooth"
|
|
"/var/lib/nixos"
|
|
"/var/lib/systemd/coredump"
|
|
"/var/lib/iwd"
|
|
"/var/lib/syncthing"
|
|
];
|
|
files = [
|
|
"/etc/machine-id"
|
|
"/etc/ssh/ssh_host_rsa_key"
|
|
"/etc/ssh/ssh_host_rsa_key.pub"
|
|
"/etc/ssh/ssh_host_ed25519_key"
|
|
"/etc/ssh/ssh_host_ed25519_key.pub"
|
|
];
|
|
users.main = {
|
|
directories = [
|
|
"sync"
|
|
".steam"
|
|
".local/share/Steam"
|
|
".emacs.d"
|
|
"roam"
|
|
"dotfiles"
|
|
"Documents"
|
|
{ directory = ".gnupg"; mode = "0700"; }
|
|
{ directory = ".ssh"; mode = "0700"; }
|
|
".local/share/direnv"
|
|
"repos"
|
|
".config/SchildiChat"
|
|
".config/matlab"
|
|
".matlab"
|
|
"MATLAB"
|
|
".stack"
|
|
".cache/nix"
|
|
".cache/fontconfig"
|
|
".cache/mesa_shader_cache"
|
|
".cache/ghcide"
|
|
".local/share/pantalaimon"
|
|
"Mail"
|
|
".cache/mu"
|
|
".gradle"
|
|
".password-store"
|
|
];
|
|
files = [
|
|
{ file = ".config/wallpaper"; method = "symlink"; }
|
|
];
|
|
};
|
|
};
|
|
|
|
boot.initrd.systemd.storePaths = with pkgs; [
|
|
zfs
|
|
busybox
|
|
];
|
|
boot.initrd.systemd.services.rollback = {
|
|
description = "Rollback ZFS datasets to a pristine state";
|
|
wantedBy = [
|
|
"initrd.target"
|
|
];
|
|
after = [
|
|
"zfs-import-omen-ssd.service"
|
|
];
|
|
before = [
|
|
"sysroot.mount"
|
|
];
|
|
path = with pkgs; [
|
|
zfs
|
|
busybox
|
|
];
|
|
unitConfig.DefaultDependencies = "no";
|
|
serviceConfig.Type = "oneshot";
|
|
script = ''
|
|
${pkgs.rolling_datasets}/bin/roll_dataset "omen-ssd/ephemeral/home" "10"
|
|
'';
|
|
};
|
|
|
|
|
|
systemd.services."home-manager-main-pre.service" = {
|
|
description = "Home Manager environment prestart for main";
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
before = [ "home-manager-main.service" ];
|
|
|
|
script = ''
|
|
set -e
|
|
mkdir -p /home/main
|
|
chown 1000:1000 /home/main
|
|
'';
|
|
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
RemainAfterExit = "yes";
|
|
TimeoutStartSec = "5m";
|
|
};
|
|
};
|
|
}
|