Fireworkx for the 4th of July (or any occasion)

This guide isn’t just about Fireworkx or XScreensaver, as any program or screensaver can be used as an “Animated desktop”, and there are also means of making your media player function similarly. This can be anything, so feel free to use this guide as a base for your own ideas.

Fireworks are neat to have and all, but handling them incorrectly will blow your hand off. This guide will tell you of a fireworks simulation not necessarily dependent on xscreensaver to function, but can be and is intended to be used with it.

This guide will explain how to use Fireworkx for your desktop. This means, not as a screensaver, but as something you can keep running in the background as you do other stuff.

#Just the Fireworks
For this, all you need to do is sudo apt install xscreensaver-data-extra and that will give you fireworkx. In fact, you can even install that in a live session, and extract it for later use in your primary session because the demo is self-contained and requires no additional dependencies (I know of), which means you can excise the bloat or not bother with the other screensavers in the first place.

#Setting it off
For this purpose, you will need a way to run it so it occupies your entire desktop. There are a couple ways:

###XWinWrap (for Marco / Compton users)
Visit this page to install Shantanu Goel’s rebuild of xwinwrap. There’s a reasonably-clear guide below the download link, but for convenience I will provide the command which worked for me, which was;
xwinwrap -ov -fs -- /usr/lib/xscreensaver/fireworkx -root -window-id WID
I don’t know why “WID” works as a window ID when it demands an integer. Help me understand?

Compiz Reloaded? If you have that, you don’t need to install anything for this!
If you already have Compiz* and compizconfig-settings-manager* set up, you can append the following into ccsm's plugin configuration (append with pipes if you need to);

Window Decoration / Decorate Windows: any & !class=Fireworkx
Window Rules / Matches - Maximized: class=Fireworkx
Window Rules / Matches - Sticky: class=Fireworkx
Window Rules / Matches - Below: class=Fireworkx

If you want to hide it, then add more window rules;
Window Rules / Matches - Skip taskbar: class=Fireworkx
Window Rules / Matches - Skip pager: class=Fireworkx

After, simply do /usr/lib/xscreensaver/fireworkx and it’ll run as an emulated desktop wallpaper. Though, you’ll be missing the geometry functions of xwinwrap, since there’s no known Compiz plugin to emulate that, you can at least make any application act like a screensaver.

#Advanced configuration
The help for the fireworkx program is a bit cryptic far as values, but most people can get by with experimentation to find how they want to configure it. If dealing with the terminal isn’t your thing, then install xscreensaver-demo alongside xscreensaver-data-extra. Run xscreensaver-demo and don’t allow it to replace mate-screensaver's daemon. After, you can select fireworkx from the selection of available screensavers and configure it from there using xscreensaver-demo's GUI, then in the Advanced tab, you can find the arguments xscreensaver will use based upon your selections which you can then copy and paste into run or terminal to make it use those arguments.