Personal Nix setup

Move GPG to home-manager

Changed files
+62 -77
home
modules
+28 -27
flake.lock
···
"systems": "systems"
},
"locked": {
-
"lastModified": 1723293904,
-
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
+
"lastModified": 1736955230,
+
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
"owner": "ryantm",
"repo": "agenix",
-
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
+
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1737058742,
-
"narHash": "sha256-akgqrW8z7Nt6SrP56umZRcG4RYUW+nH2WbU4MNF3mPQ=",
+
"lastModified": 1738441082,
+
"narHash": "sha256-u9VxWHI/tuJOUCxUZwU/OdKDZgWOrh8ub7MKTSjBSK8=",
"owner": "tadfisher",
"repo": "android-nixpkgs",
-
"rev": "42733564fa7787454437727d09389c8a3663e225",
+
"rev": "113ee3d89d2df95ff6b6bc4432852bb880f1df54",
"type": "github"
},
"original": {
···
"rust-overlay": "rust-overlay"
},
"locked": {
-
"lastModified": 1735172763,
-
"narHash": "sha256-a6n8RsiAolz6p24Fsr/gTndx9xr9USpKqKK6kzBeXQc=",
+
"lastModified": 1737610453,
+
"narHash": "sha256-OLgl/kgjOmDFrkU04PlqVklXj1m9y8xF7xbD+blAdg8=",
"owner": "tpwrules",
"repo": "nixos-apple-silicon",
-
"rev": "3daf0637409689d7a1304cedc50d20542bc47905",
+
"rev": "1f7bdbb82f6b9ec1d8d206e2c64d36f13bae91a1",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1736085891,
-
"narHash": "sha256-bTl9fcUo767VaSx4Q5kFhwiDpFQhBKna7lNbGsqCQiA=",
+
"lastModified": 1738277753,
+
"narHash": "sha256-iyFcCOk0mmDiv4ut9mBEuMxMZIym3++0qN1rQBg8FW0=",
"owner": "lnl7",
"repo": "nix-darwin",
-
"rev": "ba9b3173b0f642ada42b78fb9dfc37ca82266f6c",
+
"rev": "49b807fa7c37568d7fbe2aeaafb9255c185412f9",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1735344290,
-
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
+
"lastModified": 1736373539,
+
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
"owner": "nix-community",
"repo": "home-manager",
-
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
+
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1721810896,
-
"narHash": "sha256-HuI4ci+0OwWYJsRDPAdzq15OhQ6PrIN957o/ZDRgEPI=",
+
"lastModified": 1738491590,
+
"narHash": "sha256-4kfFt2XpLQt91rFBzJAn5RwQart1kHwsLp2oljlUETY=",
"owner": "kitten",
"repo": "language-servers.nix",
-
"rev": "b5783394d5706161ef9d572b514d2c7b7cb4cec9",
+
"rev": "98546154224afdc6637ebdb21932cd5a2452337a",
"type": "github"
},
"original": {
···
"rust-overlay": "rust-overlay_2"
},
"locked": {
-
"lastModified": 1734994463,
-
"narHash": "sha256-S9MgfQjNt4J3I7obdLOVY23h+Yl/hnyibwGfOl+1uOE=",
+
"lastModified": 1737639419,
+
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
"owner": "nix-community",
"repo": "lanzaboote",
-
"rev": "93e6f0d77548be8757c11ebda5c4235ef4f3bc67",
+
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
"type": "github"
},
"original": {
"owner": "nix-community",
+
"ref": "v0.4.2",
"repo": "lanzaboote",
"type": "github"
}
···
},
"nixos-hardware": {
"locked": {
-
"lastModified": 1736283893,
-
"narHash": "sha256-BG1FfTexFwNty5VhYjaQLMR6CMPfI3QRcaZrFQYu2EM=",
+
"lastModified": 1738471961,
+
"narHash": "sha256-cgXDFrplNGs7bCVzXhRofjD8oJYqqXGcmUzXjHmip6Y=",
"owner": "NixOS",
"repo": "nixos-hardware",
-
"rev": "4f339f6be2b61662f957c2ee9eda0fa597d8a6d6",
+
"rev": "537286c3c59b40311e5418a180b38034661d2536",
"type": "github"
},
"original": {
···
},
"nixpkgs": {
"locked": {
-
"lastModified": 1737525964,
-
"narHash": "sha256-3wFonKmNRWKq1himW9N3TllbeGIHFACI5vmLpk6moF8=",
+
"lastModified": 1738297584,
+
"narHash": "sha256-AYvaFBzt8dU0fcSK2jKD0Vg23K2eIRxfsVXIPCW9a0E=",
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "5757bbb8bd7c0630a0cc4bb19c47e588db30b97c",
+
"rev": "9189ac18287c599860e878e905da550aa6dec1cd",
"type": "github"
},
"original": {
+2 -6
flake.nix
···
};
lanzaboote = {
-
url = "github:nix-community/lanzaboote";
+
url = "github:nix-community/lanzaboote/v0.4.2";
inputs.nixpkgs.follows = "nixpkgs";
};
···
inputs.lix-module.overlays.lixFromNixpkgs
inputs.nvim-plugins.overlays.default
inputs.android-sdk.overlays.default
-
(self: super: {
-
inherit (inputs.language-servers.packages.${self.system})
-
typescript-language-server
-
vscode-langservers-extracted;
-
})
+
inputs.language-servers.overlays.default
];
in {
darwinConfigurations."sprite" = mkSystem {
+25 -9
home/base/gpg.nix
···
-
{ lib, config, ... }:
+
{ lib, helpers, config, ... }:
with lib;
let
···
};
config = mkIf cfg.enable {
-
modules.git.signingKey = mkDefault "303B6A9A312AA035";
+
programs.gpg = {
+
enable = true;
+
homedir = home;
+
mutableKeys = true;
+
};
-
home.sessionVariables = {
-
GNUPGHOME = home;
+
services.gpg-agent = {
+
enable = true;
+
# See: https://github.com/nix-community/home-manager/pull/5901
+
enableSshSupport = !helpers.isDarwin;
+
verbose = true;
+
sshKeys = [
+
"E2BFF19637FDC25A02F45583176FAD1ED1F6BDD6"
+
"75EF1DBB30A59CFB56BCE06A88CCF363DA63B1A7"
+
];
};
+
+
# See: https://github.com/nix-community/home-manager/pull/5901
+
programs.zsh.initExtra = let
+
gpgPkg = config.programs.gpg.package;
+
in optionalString helpers.isDarwin ''
+
${gpgPkg}/bin/gpg-connect-agent --quiet updatestartuptty /bye > /dev/null 2>&1
+
export SSH_AUTH_SOCK=$(${gpgPkg}/bin/gpgconf --list-dirs agent-ssh-socket)
+
'';
+
+
modules.git.signingKey = mkDefault "303B6A9A312AA035";
age.secrets."pubring.kbx" = {
symlink = true;
···
path = "${home}/private-keys-v1.d/CA84692E3CC846C8EC7272468E962B63FC599E49.key";
file = ./encrypt/CA84692E3CC846C8EC7272468E962B63FC599E49.key.age;
};
-
-
xdg.dataFile."gnupg/sshcontrol".text = ''
-
E2BFF19637FDC25A02F45583176FAD1ED1F6BDD6
-
75EF1DBB30A59CFB56BCE06A88CCF363DA63B1A7
-
'';
};
}
+2 -2
home/base/xdg.nix
···
};
};
xdg.runtimeDir = mkOption {
-
type = types.nullOr types.string;
-
default = if helpers.isDarwin then "$(mktemp -d --suffix=$UID)" else null;
+
type = types.nullOr types.str;
+
default = if helpers.isDarwin then "$(mktemp -d)" else null;
apply = (val: if val != null then (toString val) else null);
};
};
+1 -1
modules/base/certs.nix
···
with lib;
let
-
cfg = config.modules.gpg;
+
cfg = config.modules.certs;
in {
options.modules.certs = {
enable = mkOption {
-1
modules/base/default.nix
···
./certs.nix
./shell.nix
./linux.nix
-
./gpg.nix
];
}
-27
modules/base/gpg.nix
···
-
{ lib, config, pkgs, ... }:
-
-
with lib;
-
let
-
cfg = config.modules.gpg;
-
in {
-
options.modules.gpg = {
-
enable = mkOption {
-
default = true;
-
description = "GnuPG";
-
type = types.bool;
-
};
-
};
-
-
config = mkIf cfg.enable {
-
environment.systemPackages = [
-
pkgs.gnupg
-
];
-
-
programs.gnupg = {
-
agent = {
-
enable = true;
-
enableSSHSupport = true;
-
};
-
};
-
};
-
}
+4 -4
modules/nvim/default.nix
···
nix_bins = {
terraformls = '${pkgs.terraform-ls}/bin/terraform-ls',
tsserver = '${pkgs.typescript-language-server}/bin/typescript-language-server',
-
eslintls = '${pkgs.vscode-langservers-extracted}/bin/vscode-eslint-language-server',
-
cssls = '${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server',
-
htmlls = '${pkgs.vscode-langservers-extracted}/bin/vscode-html-language-server',
-
jsonls = '${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server',
+
eslintls = '${pkgs.vscode-eslint-language-server}/bin/vscode-eslint-language-server',
+
cssls = '${pkgs.vscode-css-language-server}/bin/vscode-css-language-server',
+
htmlls = '${pkgs.vscode-html-language-server}/bin/vscode-html-language-server',
+
jsonls = '${pkgs.vscode-json-language-server}/bin/vscode-json-language-server',
bunx = '${pkgs.bun}/bin/bunx',
ripgrep = '${pkgs.ripgrep}/bin/rg',
rustanalyzer = '${pkgs.rust-analyzer}/bin/rust-analyzer',