Fireworkx for the 4th of July, without Compiz


Today (as of this writing) is a celebration of America's independence from the British empire. Having looked back and attempted to use the program as a desktop wallpaper, the compiz-free way of doing things no longer works since shantz-xwinwrap (precompiled) is nowhere to be seen, except maybe through some Google Code archive, and even then it's broken; not working without considerable extra effort, which appears to be more bother than its worth versus currently-available methods.

So today before night falls on this side of the United States, figured I would write about it for people to do last-second on their systems to have a fancy animated desktop background with awesome fireworks on their display, if they don't feel like (or cannot) set any off in the real world.

:information_source: Do note, this can apply to anything and everything on your system, however we're highlighting just one program in particular; Fireworkx.


:paintbrush: It will be assumed you want a graphical interface for this, unfortunately that doesn't come too easily. Details below.

For this to work, you will need a couple packages which are available to you now, and a couple more which may not be immediately available depending on your version of Ubuntu. If you have Ubuntu MATE 16.04, you're good to do this right now without issues!

:heavy_dollar_sign: In x-terminal-emulator, only if on Ubuntu 16.04:

sudo apt install xscreensaver-data-extra devilspie gdevilspie

:left_right_arrow: python-wnck is called as a dependency for gdevilspie.

Otherwise, you'll probably have to fetch only these packages because the rest aren't available to you:

:heavy_dollar_sign: In x-terminal-emulator, For everybody else...

sudo apt install xscreensaver-data-extra devilspie

If it so happens you have to do the latter because gdevilspie isn't available to you, it and its dependency is available in the Ubuntu package archive for Xenial. Download the build for your system architecture and install using either apt or dpkg;
python-wnck (architecture-dependent)
gdevilspie (all architectures)

How to install these packages

:fast_forward: For brevity, ~/Downloads is assumed.

:heavy_dollar_sign: In x-terminal-emulator:

:one: The apt way:

sudo apt install ~/Downloads/python-wnck*.deb ~/Downloads/gdevilspie*.deb

:warning: This assumes you have only one copy of the packages above. If multiple (multiple instances of python-wnck for instance) tab-complete to the specific one you need!

:two: The dpkg way:

sudo dpkg -i ~/Downloads/python-wnck*.deb ~/Downloads/gdevilspie*.deb

:warning: Same warning from above applies here too!

Setting it off

After having installed these additional external packages, you should be able to run gdevilspie and have it work. But before you continue, do this first;

:heavy_dollar_sign: In x-terminal-emulator:

/usr/lib/xscreensaver/fireworkx &

That's nice and all, but wouldn't it be awesome to have it be used as a desktop wallpaper? If you had followed the above then yes, you can do that. Open gdevilspie and create a new rule. In this new rule specify as follows:

  • Matching
    • window_class
      • match(es) Fireworkx
        • :warning: Don't check "does not"!
  • Actions
    • Undecorate
    • Fullscreen
      • :information_source: Does what Maximize does, no need to enable it.
    • Stick
    • Below

With the above configured, choose to start devilspie and any instance of Fireworkx will open full-screen, below all other windows, and stuck to all viewports (which means, every workspace should have it.) Feel free to play with this as you like! If you want instructions on how to do this for Compiz, it's mostly the same stuff except instead you're installing ccsm if you don't have it and using the Window Rules plugin to configure how class Fireworkx is manipulated. More than enough examples browsing through ccsm to figure this out on your own.

Keeping only Fireworkx

If you only wanted Fireworkx and didn't want the other cruft which came with Xscreensaver extras, you can very easily put the fireworkx executable binary elsewhere and choose to run from wherever you put it. Simply copy it to somewhere in your home folder and run this once you have done that:

:heavy_dollar_sign: In x-terminal-emulator:

sudo apt purge xscreensaver*

:warning: If you have issues using regex because of your shell configuration, define specifically xscreensaver-data and xscreensaver-data-extra.

Then just execute fireworkx from where you put it and it'll work just as well.

1 Like