1

In Thunderbird, I can go to Add-ons manager, search for extension, and click on Add to Thunderbird to install it.

But I have multiple Thunderbird profiles, and installing every extension in every profile is tedious.

Is there a way to download the extension file, unpack it somewhere (presumably in /usr) so that all clients, all users, all profiles can see it as available and use it?

I found similar question here but that does not seem to work any longer in newer versions of Thunderbird. The paths are definitely different.

I am using Thunderbird 68.2.2 on Debian Buster.

As an example, here is an extension that I would like to install globally: No Message Pane Sort

I have tried installing that extension from Add-ons manager, and it works. So it is definitely compatible with my version of Thunderbird.

However, when I tried to unpack the file in /usr/share/xul-ext/nomessagepanesort/, other clients (other thunderbird profiles) don't see it.

Update

The accepted solution no longer works on Thunderbird 102.

I am trying to install globally the same extension: No Message Pane Sort

I have tried copying the .xpi file to both locations:

/usr/lib/thunderbird/extensions/[email protected]
/usr/local/thunderbird-current/distribution/extensions/[email protected]

But when I start Thunderbird, it does not recognize a new extension available.

This is a new installation, and new profile. Do I need to enable something in about:config, so that locally installed extensions are supported?

Or have the paths changed?

2 Answers 2

2
+500

You'll still need to find the ID of the extension, but you can find it by extracting the manifest.json file from the .xpi package. Then you can either read it by eye, or using any JSON tool, for example:

$ jq .applications.gecko.id </tmp/manifest.json
"{e2fda1a4-762b-4020-b5ad-a41df1933103}"

Once you know the ID, you can place the XPI file into <your Thunderbird installation directory>/distribution/extensions/<extension ID here>.xpi. With modern versions of Thunderbird, you should find the Lightning calendar extension ({e2fda1a4-762b-4020-b5ad-a41df1933103}.xpi) already in that directory.

From this MozillaZine KB article:

Note: Starting in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1), XPI files are no longer unpacked when extensions are installed. Instead, the XPI itself is placed in the extensions directory, and files are loaded directly out of the package. See Updating extensions for Firefox 4 for details.

For your specific example extension, after downloading the no_message_pane_sort_by_mouse-1.5-tb.xpi file, with my Thunderbird installation directory being /usr/local/thunderbird-current/:

$ unzip no_message_pane_sort_by_mouse-1.5-tb.xpi manifest.json
$ jq .applications.gecko.id <manifest.json 
"[email protected]"
$ cp no_message_pane_sort_by_mouse-1.5-tb.xpi /usr/local/thunderbird-current/distribution/extensions/[email protected]
## clean up temporary files in current working directory
$ rm no_message_pane_sort_by_mouse-1.5-tb.xpi manifest.json

And the next time Thunderbird is started, it will be automatically there as an installed extension (unless it requires further configuration, in which case the user may be prompted to configure it unless you supply the required configuration items some other way).

1
  • the solution no longer works for Thunderbird 102. Do you know what needs to be done differently? Commented Jul 30, 2023 at 6:58
0
+450

answer to recent update:

this solution still works for Thunderbird 102, you just need to make sure the extension file has the .xpi suffix, ie:

/usr/lib/thunderbird/extensions/[email protected]

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .