Skip to content

Usage

First, before you can use these extensions, you need a browser that is built with MOZ_REQUIRE_SIGNING="".

Here is a non-exhaustive list of these:

Then set xpinstall.signatures.required to false in either user.js or about:config.

Once you have a browser that supports unsigned extensions, follow the instructions for your platform.

First, add the github:firefox-extensions-declarative/firefox-extensions-declarative flake to your flake inputs.
Now, you can use the extensions in you home-manager configuration like so:

# Example with surfingkeys-declarative
{
programs.firefox.profiles.nix = {
extensions.packages = [
inputs.firefox-extensions-declarative.packages.${pkgs.stdenv.hostPlatform.system}.surfingkeys-declarative
];
};
programs.firefox.policies = {
"3rdparty".Extensions."surfingkeys@brookhong.github.io" = {
showAdvanced = true;
snippets = builtins.readFile ./surfingkeys.js;
};
};
}

Clone the extension you want to install and follow the build instructions in its reference.

To install an XPI, go to about:addons, click the button to the side of “Manage Your Extensions”, and click “Install from file”.