Compare commits

..

No commits in common. "904b64c6f41522d13828b3348348ad707d7a97c7" and "4e2a6e7757745bcecd00822da510779c1891b1a2" have entirely different histories.

9 changed files with 7 additions and 134 deletions

View file

@ -29,10 +29,8 @@ in
# These imports will be scoped under this key so all settings # These imports will be scoped under this key so all settings
# in them will be added to `home-manager.users.${username}`.. # in them will be added to `home-manager.users.${username}`..
imports = [ imports = [
./misc
./packages ./packages
./programs ./programs
./impermanence
]; ];
config = { config = {

View file

@ -1,29 +0,0 @@
{
lib,
osConfig,
inputs,
...
}: let
inherit (lib) mkIf;
cfg = osConfig.myOptions.system.impermanence.home;
in {
imports = [ inputs.impermanence.nixosModules.home-manager.impermanence ];
config = mkIf cfg.enable {
home.persistence."${cfg.persistentMountPoint}" = {
directories = [
".cache/nix"
".cache/nix-index"
] ++ cfg.extraDirectories;
files = [
] ++ cfg.extraFiles;
# Allow other users (such as root), to access files through the bind
# mounted directories listed in `directories`. Useful for `sudo` operations,
# Docker, etc. Requires NixOS configuration programs.fuse.userAllowOther = true;
allowOther = true;
};
};
}

View file

@ -1,10 +0,0 @@
{
dconf.settings = {
# This is like a system-wide dark mode swithc that some apps respect
# Equivalent of the following dconf command:
# `conf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"`
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
}

View file

@ -1,5 +0,0 @@
{
imports = [
./dconf.nix
];
}

View file

@ -37,47 +37,7 @@
sound.enable = true; sound.enable = true;
bluetooth.enable = true; bluetooth.enable = true;
impermanence = { # TODO: Impermanence
root = {
enable = true;
# Some people use /nix/persist/system for this, leaving persistent files in /nix subvolume
# I much prefer using a standalone subvolume for this though.
persistentMountPoint = "/persist";
extraDirectories = [
"/var/log"
];
};
home = {
enable = true;
persistentMountPoint = "/persist/home";
extraDirectories = [
"Downloads"
"Personal"
"Media"
"dots"
".local/share/gnupg"
".local/share/wakatime"
".local/share/nvim"
".local/state/nvim"
".local/share/zsh"
".local/cargo"
".local/go"
];
extraFiles = [
".config/git/git-credentials"
];
};
# Configure automatic root subvolume wiping on boot from initrd
autoWipeBtrfs = {
enable = true;
devices."/dev/disk/by-label/NIXOS-FS".subvolumes = [ "root" ];
};
};
}; };
device = { device = {

View file

@ -34,6 +34,12 @@
neededForBoot = true; neededForBoot = true;
}; };
fileSystems."/home" =
{ device = "/dev/disk/by-label/NIXOS-FS";
fsType = "btrfs";
options = [ "subvol=home" "noatime" "compress=zstd:3" ];
};
fileSystems."/data" = fileSystems."/data" =
{ device = "/dev/disk/by-label/NIXOS-FS"; { device = "/dev/disk/by-label/NIXOS-FS";
fsType = "btrfs"; fsType = "btrfs";

View file

@ -34,47 +34,6 @@ in
Path to a persistent directory (usually a mount point to a Path to a persistent directory (usually a mount point to a
standalone partition / subvolume), which will hold the persistent standalone partition / subvolume), which will hold the persistent
system state files. system state files.
This should point to the entire persistent partition, this setup
then expects this directory to contain `passwords` and `system` subdirectories.
'';
};
};
home = {
enable = mkEnableOption ''
the Impermanence module for persisting important state directories.
This requires home-manager.
'';
extraFiles = mkOption {
default = [];
type = types.listOf types.str;
example = literalExpression ''[".zshrc"]'';
description = ''
Additional files in home to link to persistent storage.
'';
};
extraDirectories = mkOption {
default = [];
type = types.listOf types.str;
example = literalExpression ''["Downloads"]'';
description = ''
Additional directories in home to link to persistent storage.
'';
};
persistentMountPoint = mkOption {
default = "/persist/home";
description = ''
Path to a persistent directory (usually a mount point to a
standalone partition / subvolume), which will hold the persistent
system state files.
This does not expect any subdirectories, all of the persistent home files
will be put directly in here. The user should be the owner of this direcotry.
''; '';
}; };
}; };

View file

@ -16,9 +16,6 @@ in {
# gnome's keyring manager # gnome's keyring manager
seahorse.enable = true; seahorse.enable = true;
# registry for linux (thanks to Gnome)
dconf.enable = true;
}; };
}; };
} }

View file

@ -32,9 +32,6 @@ in
"/etc/nixos" # NixOS configuration source "/etc/nixos" # NixOS configuration source
"/etc/NetworkManager/system-connections" # saved network connections "/etc/NetworkManager/system-connections" # saved network connections
"/var/db/sudo" # keeps track of who got the sudo lecture already "/var/db/sudo" # keeps track of who got the sudo lecture already
# "/var/log" # I sometimes use a subvolume for this, added manually if not
"/var/lib/nixos"
"/var/lib/bluetooth"
"/var/lib/systemd/coredump" # captured coredumps "/var/lib/systemd/coredump" # captured coredumps
] ++ cfg.extraDirectories; ] ++ cfg.extraDirectories;