{ config, lib, pkgs, ... }: let inherit (config.modules.system) isGraphical; inherit (lib.modules) mkIf; bitwarden-desktop-wrapped = pkgs.symlinkJoin { name = "bitwarden-desktop-wrapped"; paths = [pkgs.bitwarden-desktop]; nativeBuildInputs = [pkgs.makeWrapper]; postBuild = '' wrapProgram $out/bin/bitwarden --set \ BITWARDEN_SSH_AUTH_SOCK /run/user/1000/ssh-agent.sock ''; }; in { config = mkIf isGraphical { environment = { systemPackages = lib.attrValues { inherit (pkgs) bitwarden-cli ; inherit bitwarden-desktop-wrapped; }; # Set the ssh socket globally. This alows all applications and shells to use # the ssh-agent. variables."SSH_AUTH_SOCK" = "/run/user/1000/ssh-agent.sock"; }; }; }