diff --git a/modules/home-manager/flake-parts.nix b/modules/nix-tools/home-manager.nix similarity index 100% rename from modules/home-manager/flake-parts.nix rename to modules/nix-tools/home-manager.nix diff --git a/modules/nix-tools/user.nix b/modules/nix-tools/user.nix index 8d2e141..6160603 100644 --- a/modules/nix-tools/user.nix +++ b/modules/nix-tools/user.nix @@ -15,6 +15,7 @@ "wheel" ]; }; + # https://github.com/Doc-Steve/dendritic-design-with-flake-parts/wiki/Dendritic_Aspects#multi-context-aspect home-manager.users."${username}" = { imports = [ self.modules.homeManager."${username}" diff --git a/modules/home-manager/profiles/base.nix b/modules/programs/base.nix similarity index 100% rename from modules/home-manager/profiles/base.nix rename to modules/programs/base.nix diff --git a/modules/home-manager/programs/bash.nix b/modules/programs/bash.nix similarity index 100% rename from modules/home-manager/programs/bash.nix rename to modules/programs/bash.nix diff --git a/modules/home-manager/profiles/desktop.nix b/modules/programs/desktop.nix similarity index 100% rename from modules/home-manager/profiles/desktop.nix rename to modules/programs/desktop.nix diff --git a/modules/home-manager/programs/eza.nix b/modules/programs/eza.nix similarity index 100% rename from modules/home-manager/programs/eza.nix rename to modules/programs/eza.nix diff --git a/modules/home-manager/programs/files.nix b/modules/programs/files.nix similarity index 100% rename from modules/home-manager/programs/files.nix rename to modules/programs/files.nix diff --git a/modules/home-manager/programs/ghostty.nix b/modules/programs/ghostty.nix similarity index 100% rename from modules/home-manager/programs/ghostty.nix rename to modules/programs/ghostty.nix diff --git a/modules/home-manager/programs/git.nix b/modules/programs/git.nix similarity index 100% rename from modules/home-manager/programs/git.nix rename to modules/programs/git.nix diff --git a/modules/home-manager/programs/onepassword.nix b/modules/programs/onepassword.nix similarity index 100% rename from modules/home-manager/programs/onepassword.nix rename to modules/programs/onepassword.nix diff --git a/modules/home-manager/profiles/shell-tools.nix b/modules/programs/shell-tools.nix similarity index 100% rename from modules/home-manager/profiles/shell-tools.nix rename to modules/programs/shell-tools.nix diff --git a/modules/home-manager/programs/sops.nix b/modules/programs/sops.nix similarity index 97% rename from modules/home-manager/programs/sops.nix rename to modules/programs/sops.nix index 620947e..0c5fe6d 100644 --- a/modules/home-manager/programs/sops.nix +++ b/modules/programs/sops.nix @@ -15,8 +15,8 @@ in flake.modules.homeManager.sops = { inputs, config, pkgs, lib, ... }: let sopsBin = lib.getExe pkgs.sops; - sopsConfigPath = ../../../.sops.yaml; - sopsSecretsPath = ../../../keys/secrets.yaml; + sopsConfigPath = ../../.sops.yaml; + sopsSecretsPath = ../../keys/secrets.yaml; ageKeyFile = "${config.xdg.configHome}/sops/age/keys.txt"; in { diff --git a/modules/home-manager/programs/sublime.nix b/modules/programs/sublime.nix similarity index 100% rename from modules/home-manager/programs/sublime.nix rename to modules/programs/sublime.nix diff --git a/modules/home-manager/programs/vscode.nix b/modules/programs/vscode.nix similarity index 100% rename from modules/home-manager/programs/vscode.nix rename to modules/programs/vscode.nix diff --git a/modules/home-manager/programs/zsh.nix b/modules/programs/zsh.nix similarity index 100% rename from modules/home-manager/programs/zsh.nix rename to modules/programs/zsh.nix diff --git a/modules/services/restic/base.yaml b/modules/services/restic/base.yaml new file mode 100644 index 0000000..014f301 --- /dev/null +++ b/modules/services/restic/base.yaml @@ -0,0 +1,42 @@ +base: + repository: local:/mnt/backup + password-file: '{{ .ConfigDir }}/password.txt' + status-file: '{{ .ConfigDir }}/backup-status.json' + retention: + after-backup: true + keep-last: '10' + keep-hourly: '8' + keep-daily: '14' + keep-weekly: '8' + backup: + verbose: true + exclude: + - .cache + - .devenv + - .rustup + - .cargo + - .venv + - .pyenv + - .vscode* + - data/postgres + - build + - __pycache__ + - '*.log' + - '*.egg-info' + - '*.csv' + - '*.m4a' + - .local/share/Steam + - .local/share/Trash + - build + - dist + - /home/*/Pictures + - /home/*/Videos + - /home/*/go + - /home/*/snap + - /home/john/john-nas + schedule-permission: user + schedule-priority: background + check-after: true + prune: + schedule-permission: user + schedule-lock-wait: 1h diff --git a/modules/home-manager/programs/resticprofile.nix b/modules/services/restic/resticprofile.nix similarity index 95% rename from modules/home-manager/programs/resticprofile.nix rename to modules/services/restic/resticprofile.nix index 7fabfa0..1d123f0 100644 --- a/modules/home-manager/programs/resticprofile.nix +++ b/modules/services/restic/resticprofile.nix @@ -33,7 +33,8 @@ let cfg = config.programs.resticprofile; yamlFormat = pkgs.formats.yaml { }; - baseProfile = import ../../../resticprofile/base.nix { inherit lib config; }; + baseProfile = import ../../../resticprofile/base.nix; + # baseProfile = builtins.fromJSON (builtins.readFile ./base.yaml) profiles = lib.recursiveUpdate baseProfile cfg.profiles; in { options.programs.resticprofile = { diff --git a/modules/users/john.nix b/modules/users/john.nix index 3c67ed0..7457d1c 100644 --- a/modules/users/john.nix +++ b/modules/users/john.nix @@ -20,7 +20,9 @@ in modules = lib.mkMerge [ (inputs.self.factory.user username true) { - # https://github.com/Doc-Steve/dendritic-design-with-flake-parts/wiki/Dendritic_Aspects#multi-context-aspect + # + # NixOS + # nixos."${username}" = { pkgs, ... }: { users.users."${username}" = { openssh.authorizedKeys.keys = inputs.self.meta.users."${username}".authorizedKeys; @@ -28,7 +30,9 @@ in }; }; - # This gets imported by the user factory: + # + # Home Manager + # homeManager."${username}" = with inputs.self.meta.users."${username}"; { home.stateVersion = "25.11"; xdg.enable = true; @@ -36,9 +40,9 @@ in programs.git.settings.user.name = name; programs.git.settings.user.email = email; - # imports = with inputs.self.modules.homeManager; [ - # # base - # ]; + imports = with inputs.self.modules.homeManager; [ + # base + ]; }; } ]; diff --git a/resticprofile/base.nix b/resticprofile/base.nix index 1c39a3c..d8c577f 100644 --- a/resticprofile/base.nix +++ b/resticprofile/base.nix @@ -1,4 +1,3 @@ -{ lib, config, ... }: { base = { repository = "local:/mnt/backup";