{ config, ... }: let home = config.home.homeDirectory; darwinSockPath = "${home}/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"; sockPath = ".1password/agent.sock"; in { home.sessionVariables = { SSH_AUTH_SOCK = "${home}/${sockPath}"; }; home.file.sock = { source = config.lib.file.mkOutOfStoreSymlink darwinSockPath; target = sockPath; }; programs.fish = { interactiveShellInit = '' op completion fish | source ''; }; programs.ssh = { extraConfig = "IdentityAgent ~/${sockPath}"; }; # Generate ssh agent config for 1Password # I want both my personal and work keys home.file.".config/1Password/ssh/agent.toml".text = '' [[ssh-keys]] account = "my.1password.com" [[ssh-keys]] account = "roblox.1password.com" item = "GitHub ssh key" vault = "Private" ''; }