diff --git a/hosts/common/programs/firefox/browserpass.nix b/hosts/common/programs/firefox/browserpass.nix index 9dcb1e149..617a7b80a 100644 --- a/hosts/common/programs/firefox/browserpass.nix +++ b/hosts/common/programs/firefox/browserpass.nix @@ -43,6 +43,10 @@ in "knowledge/secrets/accounts" ]; + # firefox learns about this package by looking in ~/.mozilla/native-messaging-hosts + fs.".mozilla/native-messaging-hosts/com.github.browserpass.native.json".symlink.target + = "${browserpass}//lib/mozilla/native-messaging-hosts/com.github.browserpass.native.json"; + # TODO: env.PASSWORD_STORE_DIR only needs to be present within the browser session. # alternative to PASSWORD_STORE_DIR: # fs.".password-store".symlink.target = "knowledge/secrets/accounts"; diff --git a/hosts/common/programs/firefox/default.nix b/hosts/common/programs/firefox/default.nix index 096812cf1..439307d01 100644 --- a/hosts/common/programs/firefox/default.nix +++ b/hosts/common/programs/firefox/default.nix @@ -16,7 +16,9 @@ let cfg.addons ); addonSuggestedPrograms = lib.map (n: config.sane.programs."${n}") addonSuggestedProgramNames; - addonHomePaths = lib.concatMap (p: p.sandbox.extraHomePaths) (addonSuggestedPrograms ++ nativeMessagingPrograms); + addonHomePaths = lib.concatMap + (p: p.sandbox.extraHomePaths ++ builtins.attrNames p.fs) + (addonSuggestedPrograms ++ nativeMessagingPrograms); packageUnwrapped = let unwrapped = pkgs.firefox-unwrapped // { @@ -29,7 +31,8 @@ let # inherit the default librewolf.cfg # it can be further customized via ~/.librewolf/librewolf.overrides.cfg libName = "firefox"; - inherit nativeMessagingHosts; + # XXX(2025-08-26): nativeMessagingHosts wrapping is broken! put things in ~/.mozilla/native-messaging-hosts/ instead. + # inherit nativeMessagingHosts; nixExtensions = lib.concatMap (ext: lib.optional ext.enable ext.package) (builtins.attrValues cfg.addons);