Personal Nix setup

Add pinentry-touchid

Changed files
+50 -9
home
base
lib
modules
base
+1
flake.nix
···
inherit (inputs.darwin.packages.${system}) darwin-rebuild;
} // {
inherit (pkgs)
steamworks-sdk-redist
systemd-transparent-udp-forwarderd
force-bind;
···
inherit (inputs.darwin.packages.${system}) darwin-rebuild;
} // {
inherit (pkgs)
+
pinentry-touchid
steamworks-sdk-redist
systemd-transparent-udp-forwarderd
force-bind;
+6 -9
home/base/gpg.nix
···
publicKeys = [
{ source = ./assets/pubring.asc; trust = "ultimate"; }
];
-
settings = {
-
default-key = "DDA4674BEB2FBE8A1EFB6F542FA66EDC2BFD54F5";
-
keyserver = "hkps://keys.openpgp.org";
-
keyserver-options = "auto-key-retrieve";
-
};
-
scdaemonSettings = {
-
disable-ccid = true;
-
};
};
services.gpg-agent = {
enable = true;
enableSshSupport = true;
verbose = true;
-
pinentry.package = pkgs.pinentry_mac;
sshKeys = [ "DDA4674BEB2FBE8A1EFB6F542FA66EDC2BFD54F5" ];
};
systemd.user.services.gpg-agent.Service.Slice = "session.slice";
···
publicKeys = [
{ source = ./assets/pubring.asc; trust = "ultimate"; }
];
};
services.gpg-agent = {
enable = true;
enableSshSupport = true;
verbose = true;
sshKeys = [ "DDA4674BEB2FBE8A1EFB6F542FA66EDC2BFD54F5" ];
+
defaultCacheTtl = 1;
+
defaultCacheTtlSsh = 1;
+
pinentry = helpers.mkIfDarwin {
+
package = pkgs.pinentry-touchid;
+
program = "pinentry-touchid";
+
};
};
systemd.user.services.gpg-agent.Service.Slice = "session.slice";
+1
lib/pkgs/default.nix
···
force-bind = import ./force-bind-seccomp.nix self super;
steamworks-sdk-redist = import ./steamworks-sdk-redist.nix self super;
palworld-server = import ./palworld-server.nix self super;
}
···
force-bind = import ./force-bind-seccomp.nix self super;
steamworks-sdk-redist = import ./steamworks-sdk-redist.nix self super;
palworld-server = import ./palworld-server.nix self super;
+
pinentry-touchid = import ./pinentry-touchid.nix self super;
}
+40
lib/pkgs/pinentry-touchid.nix
···
···
+
self: pkgs @ {
+
lib,
+
buildGoModule,
+
fetchFromGitHub,
+
...
+
}:
+
+
with lib;
+
buildGoModule rec {
+
pname = "pinentry-touchid";
+
version = "v0.0.5";
+
vendorHash = "sha256-3NeKIdsZ7uQQmVXDZ6zUQ0QMF4uxFcUDEOHbPSqoqOg=";
+
proxyVendor = true;
+
+
doCheck = false;
+
doInstallCheck = true;
+
+
src = fetchFromGitHub {
+
owner = "kitten";
+
repo = "pinentry-touchid";
+
rev = "07322ff7e6509a575ce282aeb3b47db74a142a18";
+
sha256 = "sha256-anSdpuUbB1VIIaU28kIqLjsdIEAgHxgzSf0g68MK2as=";
+
};
+
+
subPackages = [ "." ];
+
buildInputs = with pkgs; [ makeBinaryWrapper ];
+
nativeBuildInputs = with pkgs; [ pinentry_mac writableTmpDirAsHomeHook ];
+
ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}" ];
+
+
patchPhase = ''
+
substituteInPlace go.mod \
+
--replace-fail "=> ./go-assuan" "=> $src/go-assuan" \
+
--replace-fail "=> ./go-touchid" "=> $src/go-touchid"
+
'';
+
+
postInstall = ''
+
wrapProgram $out/bin/pinentry-touchid \
+
--prefix PATH : ${pkgs.pinentry_mac}/bin
+
'';
+
}
+2
modules/base/macos.nix
···
"com.apple.TimeMachine".DoNotOfferNewDisksForBackup = true;
"com.apple.ImageCapture".disableHotPlug = true;
"com.apple.gamed".Disabled = true;
"com.apple.dt.XCode".IDEIndexDisable = 1;
};
};
···
"com.apple.TimeMachine".DoNotOfferNewDisksForBackup = true;
"com.apple.ImageCapture".disableHotPlug = true;
"com.apple.gamed".Disabled = true;
+
"org.gpgtools.common".DisableKeychain = true;
+
"org.gpgtools.common".UseKeychain = false;
"com.apple.dt.XCode".IDEIndexDisable = 1;
};
};