Curtail Optimize PNG and JPEG images on Linux with Curtail

There is a lot of push towards better image file formats all around, especially on the web. And while personally I have already moved to WebP for all new content on Libre Arts, there are some valid use cases for PNG and JPEG.

You could be sharing a screenshot created by your desktop environment when you press the Print Screen button. Or maybe you have to use an old content management system that does not accept newer image file formats. Either way, it’s a good idea to compress images before uploading.

And if you never liked using tools like optipng from a terminal, I have good news for you. Apparently, a while ago a French developer Hugo Posnic created a tiny application called Curtail that is pretty much a simplistic user interface for optipng, pngquant, and jpegoptim. Here is the video, the transcript goes below.

I saw Garrett LeSage mentioning that to a fellow Red Hat designer Máirín Duffy on Twitter, so thanks to you both :)

You can install Curtail from Flathub or you can build it yourself which is an exaggeration because it’s just running meson and ninja over Python code, there’s no compilation involved per se.

Now, this is almost everything there is to see in this program:

Main window of Curtail

It’s just foolproof, it’s what you probably have grown to see in online services like

You select whether you want compression to be lossy or lossless, and then you drag and drop files onto the main window (you can drop just the folder, in fact). Then they automatically get compressed, and you can see here names of files, old size, new size, and how much you saved in percents.

Compression results in Curtail

Once compression is done, you can click the left arrow button here to go back to the main view.

Curtail does have some options. Go to the header bar, click the three-dots button, choose ‘Preferences’.

General options in Curtail

  • You can enable or disable the preservation of metadata which you don’t need for things like icons but probably want for photos.
  • You can choose whether you want to overwrite original images or create new ones, in which case you also need to specify the text that will be appended to the base file name. Curtail suggests this -min text by default which sounds like a reasonable default.
  • You can also force Curtail to use a dark version of the user interface theme, if there is one.

Now, ‘Compression’ and ‘Advanced’ pages both have options for setting compression level. The former one is for lossy compression of PNG and JPEG:

Compression options in Curtail

And the latter one has the setting for lossless PNG compression that is basically a trade-off between making smaller files and compressing faster:

Advanced options in Curtail

And now that is really all there is to see here. It’s a nice little app. It does one job and it does it well. It’s entirely possible that adding some more compression settings would be helpful, so if you feel that way, the project has a bug tracker on GitHub for feature requests.