Thank you so much for this!! I've been working on my own plug-in to do this, but it's not nearly as slick as yours. Googling around you'll see that a lot of people have been wanting this for years.
I do have one feature request though: the ability to specify which layers get exported, and the ability to have a background layer. Here's how I would do it:
* Add an option where only layers that have [square brackets] in the name them get exported (to, say, "square brackets.png"). Maybe call this option: "Only layers in [square brackets]"
* Any layer that's currently visible, but not with a name as square brackets is left alone and can be treated as a background layer. So what the plug-in does is hide all other square bracketed layers, merge visible, export the merged visible, then move on to the next square bracketed layer. Maybe call this option "Treat visible layers as background", and it would be only enabled if the first option was enabled.
Here's how I plan to use this plug-in, by the way. I make various card and board games. I would love to have one file with background artwork, but then keep each card as a separate layer group and then just export everything to PNGs at once. I need that constant background for this to work easier, though.
Sincere apologies for the (very) late reply. I was completely unaware of the "Questions" panel on the right side of the page for my plug-in, until now...
Anyhow, I like your request. I didn't think of "background" layers before.
I'm not sure if manually renaming layers to contain square brackets is the most convenient way to achieve your goal. If you keep renaming layers often, I imagine it may become quite tedious if there are many layers in the image.
As a possible alternative, here's how I would do it:
1. Move layers serving as background layers to a new, separate layer group.
2. Open up the Export Layers dialog, check the option to use background layers and select the layer group containing the background layers (from a drop-down combo box).
3. Export all other visible layers (representing the square bracketed ones) while also merging in the background layers.
Maybe it could also be the other way around - leave background layers where they are and move the other layers to the specific layer group.
Of course, your approach is more convenient if:
* the background layers are scattered all over the layer tree and it's better to leave them where they are,
* you don't need to rename the square bracketed layers that often.
Either way, I'm not sure when I'll be able to implement this, as I'm quite busy these days (or, rather, months). When I'll get back to this plug-in, it'll be one of the first things to implement.