# How to save a list of plugins

**URL:** <https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992>\
**Category:** Help\
**Tags:** supertool-script\
**Created:** [November 23, 2021, 12:56pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992 "2021-11-23T12:56:33Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![bgee](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bgee](https://gramps.discourse.group/u/bgee)\
**Post date:** [November 23, 2021, 12:56pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/1 "2021-11-23T12:56:33Z")

</div>

Gramps 5.1.4, Fedora 35

Is there a way to save a list of all the installed plugins? Reports, views, rules … Everything that shows up in the Plugin Manager. Saving to TXT file or print to PDF would be fine.

I want to compare the list among several computers to make sure they have the same set of plugins. I also want to document the list for future reference and installations.

Thanks - Bill Gee

---

<div class="post-metadata">

**Author:** ![DaveSch](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/davesch/32/40_2.png) [@DaveSch](https://gramps.discourse.group/u/DaveSch)\
**Post date:** [November 23, 2021, 3:48pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/2 "2021-11-23T15:48:10Z")

</div>

There is a `new_addons.txt` file in your [user version directory](https://gramps-project.org/wiki/index.php/Gramps_5.1_Wiki_Manual_-_User_Directory). `\gramps\gramps51\`

I install all available addons so I am not sure if/how an addon that is not installed is listed. After the addon category, all my addons have a `'1'` which I assume means it is installed.

---

<div class="post-metadata">

**Author:** ![prculley](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/prculley/32/41_2.png) [@prculley](https://gramps.discourse.group/u/prculley)\
**Post date:** [November 23, 2021, 4:07pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/3 "2021-11-23T16:07:25Z")

</div>

The new\_addons.txt file is only present if you have the enhanced plugin manager installed.

---

<div class="post-metadata">

**Author:** ![kku](https://avatars.discourse-cdn.com/v4/letter/k/6bbea6/32.png) [@kku](https://gramps.discourse.group/u/kku)\
**Post date:** [November 23, 2021, 9:07pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/4 "2021-11-23T21:07:33Z")

</div>

If you use SuperTool ([isotammi-addons/source/SuperTool at master · Taapeli/isotammi-addons · GitHub](https://github.com/Taapeli/isotammi-addons/tree/master/source/SuperTool))  
then you can try the following script (list-all-plugins.script):

```auto
[Gramps SuperTool script file]
version=1

[title]
list all plugins

[category]
Dashboard

[initial_statements]
from gramps.gen.plug._pluginreg import PluginRegister, PTYPE, PTYPE_STR
def all_plugins():
	pgr = PluginRegister.get_instance()
	for ptype in PTYPE:
		for pd in pgr.type_plugins(ptype):
			yield (ptype, pd)

plugins = []
for ptype, pd in all_plugins():
	s = "{:20} {:40} {:80} {}".format(PTYPE_STR[ptype], pd.id, pd.fpath, pd.fname)
	plugins.append(s)

[statements]

[filter]

[expressions]
plugins

[scope]
selected

[unwind_lists]
True

[commit_changes]
False

[summary_only]
True

```

Please use SuperTool version 1.1.6, the previous version 1.1.5 was broken.

---

<div class="post-metadata">

**Author:** ![bgee](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bgee](https://gramps.discourse.group/u/bgee)\
**Post date:** [November 24, 2021, 12:51pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/5 "2021-11-24T12:51:47Z")

</div>

I think the new-addons.txt file contains everything. It has exactly the same contents on all of my machines even though the installed plugins are not the same. The third field is ‘i’ on every line in my files.

Perhaps examining the contents of ~/.gramps/gramps51/plugins? I am not sure that includes rules, but it does seem to cover the other categories.

Supertool looks nice, but I am leery of the installation process. Installation requires replacing the “Where to check” field with a different URL. Once that is done, then Gramps will no longer check the master location. Or, if I change it back after installing Supertool, then it will no longer check for updates to Supertool. Is it possible to put several locations in this field?

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [November 24, 2021, 1:20pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/6 "2021-11-24T13:20:25Z")

</div>

Installing SuperTool does not require changing this path. That just is the easy way using the automated installer.

You can download the zip file for any plugin and expand it to a folder in the plugins folder of your User Directory. The next time Gramps starts, the registration check will find the new folder and try to compile the contents & add its functionality to Gramps.

An alternate method is, while the path is still on the Isotammi add-on repository, add the [Isotammi Configuration](https://mattkmmr.github.io/gramps-addons-listings/#isotammiconfig) Gramplet. This (dashboard ONLY) Gramplet lets you easily change between repository paths.

_An observation. If you are uncomfortable with changing paths manually, you are probably going to find SuperTool unfriendly. It has no safety nets and blissfully will let you do massive damage._

---

<div class="post-metadata">

**Author:** ![bgee](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bgee](https://gramps.discourse.group/u/bgee)\
**Post date:** [November 24, 2021, 2:03pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/7 "2021-11-24T14:03:40Z")

</div>

I am not uncomfortable about changing a pathname or URL - ONCE! But in this case it would have to be changed every time I checked for updates. Since the field can apparently have only one URL, then checking for updates would require entering a URL, checking for updates, and then entering another URL and checking for updates again. No more automated checks. A manual install does not help much since I still have to check for updates manually. Perhaps a feature request is in order - Create some way to allow the “Where to check” field to contain a list of URLs.

What about looking at the contents of the plugins directory? Would that be a reasonable way to see what is installed? And does that directory include all categories of plugins? I am thinking of rules, but there may be other categories that go somewhere else.

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [November 24, 2021, 2:20pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/8 "2021-11-24T14:20:56Z")

</div>

> [@bgee](#):
>
> Perhaps a feature request is in order - Create some way to allow the “Where to check” field to contain a list of URLs.

The Isotammi Configuration does this. It has a functionality to flip between paths & a button to open preferences so you can check for updates. (See [documentation](https://www.gramps-project.org/wiki/index.php/Isotammi_addons#Isotammi_configuration).)

> [@bgee](#):
>
> What about looking at the contents of the plugins directory?

Yes, looking at the `plugins` folder is a quick way to gain an overview of your installed add-ons.

However, this overlooks the built-in plug-ins.

If you are using the Plug-in Manager Enhanced, then the locally stored list @prculley compiles has both.

I set up a Media object to make opening Paul’s list easier. (Although I had to trick Gramps into linking something in a hidden folder as a Media Object.)

---

<div class="post-metadata">

**Author:** ![bgee](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bgee](https://gramps.discourse.group/u/bgee)\
**Post date:** [November 24, 2021, 4:01pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/9 "2021-11-24T16:01:03Z")

</div>

Given that my purpose is to be able to replicate a Gramps installation from one computer to another, the list of built-ins is not important. They will be there as part of the base install.

I am using Plugin Manager Enhanced. Where is the “locally stored list” that you mentioned?

Thanks!

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [November 24, 2021, 4:08pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/10 "2021-11-24T16:08:46Z")

</div>

> [@bgee](#):
>
> I am using Plugin Manager Enhanced. Where is the “locally stored list” that you mentioned?

It is in your User Directory. The creator of the add-on, Paul, mentioned the file in a reply earlier in this thread:

> [@prculley](#):
>
> The **`new_addons.txt`** file is only present if you have the **enhanced plugin manager** installed.

---

<div class="post-metadata">

**Author:** ![bgee](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bgee](https://gramps.discourse.group/u/bgee)\
**Post date:** [November 24, 2021, 4:27pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/11 "2021-11-24T16:27:00Z")

</div>

Ah, OK. I have looked at that file. The file was byte-identical between two of my computers which have widely different sets of installed plugins.

I suspect it is not a list of installed plugins, but rather a list of all plugins, both installed and available. My guess is that it is created whenever “Check for updates” is run.

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [November 24, 2021, 4:44pm UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/12 "2021-11-24T16:44:52Z")

</div>

It should also indicate disable & hidden add-ons. (Or is that an ` .ini` item for the Plug-in Manager Enhanced?)

---

<div class="post-metadata">

**Author:** ![emyoulation](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/emyoulation/32/67_2.png) [@emyoulation](https://gramps.discourse.group/u/emyoulation)\
**Post date:** [September 22, 2022, 6:32am UTC](https://gramps.discourse.group/t/how-to-save-a-list-of-plugins/1992/14 "2022-09-22T06:32:16Z")

</div>

> [@kku](#):
>
> If you use SuperTool ([isotammi-addons/source/SuperTool at master · Taapeli/isotammi-addons · GitHub](https://github.com/Taapeli/isotammi-addons/tree/master/source/SuperTool))  
> then you can try the following script (list-all-plugins.script):

This script generates a list preceded on each line with the ID of the active object in the currently active View category & a comma. (That’s just before the `PTYPE_STR[ptype]` value.)

_[update: Toggling the “Summary only” checkbox (two times) cleared the extraneous ID column]_

 ![image](https://global.discourse-cdn.com/free1/uploads/gramps/original/2X/0/06a963783a24d9bfd0851813f3a094a8b5a612f5.png)

And while it lists the plugin’s category, internal name (ID), the plugin location, and the source code filename,

The Plugin Manager (advanced) and its info dialogs

 ![image](https://global.discourse-cdn.com/free1/uploads/gramps/original/2X/d/d3d2975217070d9c7010ebfeb2363f5a52e16f41.png)
