diff options
Diffstat (limited to 'home/pass/default.nix')
-rw-r--r-- | home/pass/default.nix | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/home/pass/default.nix b/home/pass/default.nix new file mode 100644 index 0000000..3ea7892 --- /dev/null +++ b/home/pass/default.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: +let cfg = config.my.home.pass; +in { + options.my.home.pass = with lib; { + enable = mkEnableOption "pass configuration"; + }; + config = lib.mkIf cfg.enable { + programs.password-store = { + enable = true; + settings = { + PASSWORD_STORE_DIR = "${config.xdg.dataHome}/password-store"; + PASSWORD_STORE_GENERATED_LENGTH = "30"; + PASSWORD_STORE_CHARACTER_SET = "a-zA-Z0-9~!@#$%^&*()-_=+[]{};:,.<>?"; + PASSWORD_STORE_KEY = config.programs.gpg.settings.default-key; + }; + }; + + programs.git = { + signing = { + key = config.programs.gpg.settings.default-key; + signByDefault = true; + }; + extraConfig = { + credential = { + helper = "${pkgs.gitAndTools.pass-git-helper}/bin/pass-git-helper"; + useHttpPath = true; + }; + }; + }; + + xdg.configFile."pass-git-helper/git-pass-mapping.ini" = { + source = ./git-pass-mapping.ini; + }; + + services.password-store-sync.enable = true; + + # Ensure the password store things are in the systemd session + systemd.user.sessionVariables = config.programs.password-store.settings; + }; +} |