{ config, lib, pkgs, ... }: with lib; let cfg = config.nixfiles.modules.password-store; in { options.nixfiles.modules.password-store.enable = mkEnableOption "the standard UNIX password manager"; config = mkIf cfg.enable { hm.programs = { password-store = { enable = true; package = pkgs.pass.withExtensions (p: with p; [ pass-otp ]); settings.PASSWORD_STORE_DIR = "${config.my.home}/.password-store"; }; # HACK https://github.com/NixOS/nixpkgs/issues/183604 bash.initExtra = let completions = "${config.hm.programs.password-store.package}/share/bash-completion/completions"; in mkAfter '' source ${completions}/pass-otp source ${completions}/pass ''; }; }; }