48 lines
1.2 KiB
Nix
48 lines
1.2 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
namespace,
|
|
system,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf mkEnableOption;
|
|
|
|
cfg = config.${namespace}.programs.gpg;
|
|
in {
|
|
options.${namespace}.programs.gpg = {
|
|
enable = mkEnableOption "gpg";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
programs.gpg = {
|
|
enable = true;
|
|
scdaemonSettings = {
|
|
# Fix conflicts with config in common/yubikey.nix
|
|
disable-ccid = true;
|
|
};
|
|
};
|
|
|
|
programs.ssh.matchBlocks = {
|
|
# Fix for pinentry showing up in wrong terminal
|
|
"*".match = "host * exec \"gpg-connect-agent UPDATESTARTUPTTY /bye\"";
|
|
};
|
|
|
|
# gpg-agent configuration does not work on darwin
|
|
# see here: https://github.com/nix-community/home-manager/issues/3864
|
|
services.gpg-agent = mkIf (system == "x86_64-linux") {
|
|
enable = true;
|
|
pinentryPackage =
|
|
if config.${namespace}.windowManagers.sway.enable
|
|
then pkgs.pinentry-qt
|
|
else pkgs.pinentry-curses;
|
|
enableZshIntegration = true;
|
|
enableSshSupport = true;
|
|
sshKeys = [
|
|
# run `gpg-connect-agent 'keyinfo --list' /bye` to get these values for existing keys
|
|
"E274D5078327CB6C8C83CFF102CC12A2D493C77F"
|
|
];
|
|
};
|
|
};
|
|
}
|