fix(client): keychain -> ssh-agent
keychain is cool but is first of all unmaintained, and only really works in the context of a shell. since it "dynamically" starts agents and exports variables (with set -U to make matters worse), nothing exists outside of the context of the shell which makes it impossible to sign commits in gui apps (except vscode for some reason); using a classical ssh-agent with the env var exported by hand simply works
This commit is contained in:
parent
ccbff72f9e
commit
aa4aac6063
3 changed files with 17 additions and 8 deletions
|
@ -3,8 +3,9 @@
|
||||||
imports = [
|
imports = [
|
||||||
./common.nix
|
./common.nix
|
||||||
|
|
||||||
../programs/rust.nix
|
|
||||||
../programs/neovim
|
../programs/neovim
|
||||||
|
../programs/rust.nix
|
||||||
|
../programs/ssh-agent.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
@ -14,12 +15,6 @@
|
||||||
nixd
|
nixd
|
||||||
];
|
];
|
||||||
|
|
||||||
hm.programs.keychain = {
|
|
||||||
enable = true;
|
|
||||||
agents = [ "ssh" ];
|
|
||||||
keys = [ "id_ed25519" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = false;
|
useNetworkd = false;
|
||||||
networkmanager = {
|
networkmanager = {
|
||||||
|
|
|
@ -12,9 +12,10 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
security.pam.services.sddm.kwallet.enable = true;
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
flameshot
|
|
||||||
gnome-calculator
|
gnome-calculator
|
||||||
camasca.packages.${pkgs.system}.koi
|
camasca.packages.${pkgs.system}.koi
|
||||||
];
|
];
|
||||||
|
|
13
programs/ssh-agent.nix
Normal file
13
programs/ssh-agent.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.sessionVariables = {
|
||||||
|
SSH_AUTH_SOCK = "\${XDG_RUNTIME_DIR}/ssh-agent";
|
||||||
|
SSH_ASKPASS_REQUIRE = "prefer";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.ssh-agent = {
|
||||||
|
wantedBy = [ "default.target" ];
|
||||||
|
environment.SSH_AUTH_SOCK = "%t/ssh-agent";
|
||||||
|
script = "${lib.getExe' pkgs.openssh "ssh-agent"} -d -a $SSH_AUTH_SOCK";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue