diff --git a/flake.lock b/flake.lock index a50e908..5bcbdde 100644 --- a/flake.lock +++ b/flake.lock @@ -84,6 +84,24 @@ "type": "github" } }, + "flake-utils_3": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "ghostty": { "inputs": { "flake-compat": "flake-compat_2", @@ -299,6 +317,22 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1749086602, + "narHash": "sha256-DJcgJMekoxVesl9kKjfLPix2Nbr42i7cpEHJiTnBUwU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4792576cb003c994bd7cc1edada3129def20b27d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1747542820, "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", @@ -327,6 +361,7 @@ "nixpkgs-msft-go": "nixpkgs-msft-go", "nixpkgs-unstable": "nixpkgs-unstable_2", "sops-nix": "sops-nix", + "ssh-agent-switcher": "ssh-agent-switcher", "walker": "walker" } }, @@ -350,6 +385,26 @@ "type": "github" } }, + "ssh-agent-switcher": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1749108251, + "narHash": "sha256-1tXo21//5Mmy1zfyQoRcaTM6uuK4WHAtFq6PpoCExkY=", + "owner": "AYM1607", + "repo": "ssh-agent-switcher", + "rev": "6cd7ce973cf08656d42e475945216d8c0f0b0c7b", + "type": "github" + }, + "original": { + "owner": "AYM1607", + "repo": "ssh-agent-switcher", + "rev": "6cd7ce973cf08656d42e475945216d8c0f0b0c7b", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -366,6 +421,21 @@ } }, "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -382,8 +452,8 @@ }, "walker": { "inputs": { - "nixpkgs": "nixpkgs_3", - "systems": "systems_2" + "nixpkgs": "nixpkgs_4", + "systems": "systems_3" }, "locked": { "lastModified": 1748171996, diff --git a/flake.nix b/flake.nix index bc4c131..7542910 100644 --- a/flake.nix +++ b/flake.nix @@ -38,8 +38,8 @@ # ssh-agent forwarder for linux. ssh-agent-switcher = { - url = "github:AYM1607/ssh-agent-switcher/6cd7ce973cf08656d42e475945216d8c0f0b0c7b" - } + url = "github:AYM1607/ssh-agent-switcher/6cd7ce973cf08656d42e475945216d8c0f0b0c7b"; + }; }; outputs = { @@ -100,6 +100,7 @@ ./hosts/devbox/configuration.nix home-manager.nixosModules.home-manager { + home-manager.extraSpecialArgs = { inherit inputs ssh-agent-switcher; }; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.jmug = import ./hosts/devbox/home.nix; diff --git a/hosts/devbox/home.nix b/hosts/devbox/home.nix index bc41ce3..cb49052 100644 --- a/hosts/devbox/home.nix +++ b/hosts/devbox/home.nix @@ -1,5 +1,4 @@ -{ inputs, config, pkgs, ... } : - +{ inputs, config, pkgs, ssh-agent-switcher, ... } : { imports = [ @@ -28,13 +27,6 @@ exercism # Thin provisioning tools thin-provisioning-tools - pkgs.writeShellApplication { - name = "sas"; - runtimeInputs = [ inputs.ssh-agent-switcher.aarch64-linux.default ]; - text = '' - ssh-agent-switcher - ''; - } ]; stateVersion = "24.11"; @@ -52,6 +44,17 @@ # TODO: Interpolate the name of the host here. nrsw = "sudo nixos-rebuild switch --flake /home/jmug/nixos#devbox"; }; + loginExtra = '' + if [ ! -e "/tmp/ssh-agent.''${USER}" ]; then + if [ -n "''${ZSH_VERSION}" ]; then + eval ${ssh-agent-switcher.packages.x86_64-linux.default}/bin/ssh-agent-switcher 2>/dev/null "&!" + else + ${ssh-agent-switcher.packages.x86_64-linux.default}/bin/ssh-agent-switcher 2>/dev/null & + disown 2>/dev/null || true + fi + fi + export SSH_AUTH_SOCK="/tmp/ssh-agent.''${USER}" + ''; }; services.ssh-agent.enable = true;