changes
This commit is contained in:
parent
7a1aca654d
commit
ff9f3aa198
5 changed files with 68 additions and 59 deletions
|
@ -71,7 +71,9 @@ in {
|
|||
sound = {
|
||||
enable = mkEnableOption "sound related programs and audio-dependent programs";
|
||||
};
|
||||
|
||||
impermanence = {
|
||||
enable = mkEnableOption "Enable Impermanence";
|
||||
};
|
||||
video = {
|
||||
enable = mkEnableOption "video drivers and programs that require a graphical user interface";
|
||||
nvidia = mkEnableOption "Nvidia graphics drivers";
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
.emacsWithPackages (epkgs:
|
||||
with epkgs; [
|
||||
vterm
|
||||
treesit-grammars.with-all-grammars
|
||||
]);
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkForce;
|
||||
inherit (lib) mkIf mkForce;
|
||||
inherit (builtins) map;
|
||||
|
||||
cfg = config.modules.system.impermanence;
|
||||
|
@ -12,68 +12,70 @@ in {
|
|||
imports = [
|
||||
inputs.impermanence.nixosModules.impermanence
|
||||
];
|
||||
users = {
|
||||
mutableUsers = true;
|
||||
config = mkIf cfg.enable {
|
||||
users = {
|
||||
cr = {
|
||||
hashedPasswordFile = "/persist/passwords/cr";
|
||||
mutableUsers = true;
|
||||
users = {
|
||||
cr = {
|
||||
hashedPasswordFile = "/persist/passwords/cr";
|
||||
};
|
||||
root.hashedPasswordFile = "/persist/passwords/root";
|
||||
};
|
||||
root.hashedPasswordFile = "/persist/passwords/root";
|
||||
};
|
||||
};
|
||||
|
||||
environment.persistence."/persist" = {
|
||||
hideMounts = true;
|
||||
directories = [
|
||||
"/etc/nixos"
|
||||
"/etc/nix"
|
||||
"/etc/NetworkManager/system-connections"
|
||||
"/var/db/sudo"
|
||||
"/var/log"
|
||||
"/var/lib/bluetooth"
|
||||
"/var/lib/nixos"
|
||||
"/var/lib/pipewire"
|
||||
"/var/lib/systemd/coredump"
|
||||
environment.persistence."/persist" = {
|
||||
hideMounts = true;
|
||||
directories = [
|
||||
"/etc/nixos"
|
||||
"/etc/nix"
|
||||
"/etc/NetworkManager/system-connections"
|
||||
"/var/db/sudo"
|
||||
"/var/log"
|
||||
"/var/lib/bluetooth"
|
||||
"/var/lib/nixos"
|
||||
"/var/lib/pipewire"
|
||||
"/var/lib/systemd/coredump"
|
||||
];
|
||||
|
||||
files = [
|
||||
"/etc/machine-id"
|
||||
];
|
||||
users.cr = {
|
||||
directories =
|
||||
[
|
||||
"cloud"
|
||||
"repos"
|
||||
]
|
||||
++ map (
|
||||
dir: ".config/${dir}"
|
||||
) ["nicotine" "Signal" "Nextcloud" "emacs" "doom"]
|
||||
++ map (
|
||||
dir: ".cache/${dir}"
|
||||
) ["tealdeer" "keepassxc" "nix" "starship" "nix-index" "mozilla" "zsh" "nvim"]
|
||||
++ map (
|
||||
dir: ".local/share/${dir}"
|
||||
) ["direnv" "Steam" "TelegramDesktop" "PrismLauncher" "nicotine" "zoxide" ".ssh" ".keepass"];
|
||||
};
|
||||
};
|
||||
|
||||
# for some reason *this* is what makes networkmanager not get screwed completely instead of the impermanence module
|
||||
systemd.tmpfiles.rules = [
|
||||
"L /var/lib/NetworkManager/secret_key - - - - /persist/var/lib/NetworkManager/secret_key"
|
||||
"L /var/lib/NetworkManager/seen-bssids - - - - /persist/var/lib/NetworkManager/seen-bssids"
|
||||
"L /var/lib/NetworkManager/timestamps - - - - /persist/var/lib/NetworkManager/timestamps"
|
||||
];
|
||||
|
||||
files = [
|
||||
"/etc/machine-id"
|
||||
services.openssh.hostKeys = mkForce [
|
||||
{
|
||||
bits = 4096;
|
||||
path = "/persist/etc/ssh/ssh_host_rsa_key";
|
||||
type = "rsa";
|
||||
}
|
||||
{
|
||||
bits = 4096;
|
||||
path = "/persist/etc/ssh/ssh_host_ed25519_key";
|
||||
type = "ed25519";
|
||||
}
|
||||
];
|
||||
users.cr = {
|
||||
directories =
|
||||
[
|
||||
"cloud"
|
||||
"repos"
|
||||
]
|
||||
++ map (
|
||||
dir: ".config/${dir}"
|
||||
) ["nicotine" "Signal" "Nextcloud" "emacs" "doom"]
|
||||
++ map (
|
||||
dir: ".cache/${dir}"
|
||||
) ["tealdeer" "keepassxc" "nix" "starship" "nix-index" "mozilla" "zsh" "nvim"]
|
||||
++ map (
|
||||
dir: ".local/share/${dir}"
|
||||
) ["direnv" "Steam" "TelegramDesktop" "PrismLauncher" "nicotine" "zoxide" ".ssh" ".keepass"];
|
||||
};
|
||||
};
|
||||
|
||||
# for some reason *this* is what makes networkmanager not get screwed completely instead of the impermanence module
|
||||
systemd.tmpfiles.rules = [
|
||||
"L /var/lib/NetworkManager/secret_key - - - - /persist/var/lib/NetworkManager/secret_key"
|
||||
"L /var/lib/NetworkManager/seen-bssids - - - - /persist/var/lib/NetworkManager/seen-bssids"
|
||||
"L /var/lib/NetworkManager/timestamps - - - - /persist/var/lib/NetworkManager/timestamps"
|
||||
];
|
||||
|
||||
services.openssh.hostKeys = mkForce [
|
||||
{
|
||||
bits = 4096;
|
||||
path = "/persist/etc/ssh/ssh_host_rsa_key";
|
||||
type = "rsa";
|
||||
}
|
||||
{
|
||||
bits = 4096;
|
||||
path = "/persist/etc/ssh/ssh_host_ed25519_key";
|
||||
type = "ed25519";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue