Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Auto save plug-in for GIMP [2.8, 2.9]
#!/usr/bin/env python
# Original (by yahvuu): http://www.gimpusers.com/forums/gimp-developer/11718-autosave-plugin
import tempfile, os
from time import *
from gimpfu import *
def autosave(image, layer):
backupInterval = 10 * 60
backupFiles = {}
print "Autosave activated"
while 1:
sleep(backupInterval)
print ctime(time())
curImages = {}
for k in gimp.image_list():
curImages[k.ID] = k
curIDs = curImages.keys()
oldIDs = backupFiles.keys()
newIDs = [x for x in curIDs if x not in oldIDs]; delIDs = [x for x in oldIDs if x not in curIDs];
# create (empty) backup files for new images
for id in newIDs:
prefix = 'gimpbackup-ID' + str(id) + '-'
fn = tempfile.mkstemp(prefix = prefix, suffix = '.xcf')
os.close(fn[0])
backupFiles[id] = fn[1]
# remove closed images' backups
for id in delIDs:
filename = backupFiles[id]
del(backupFiles[id])
try:
os.remove(filename)
except:
print "ERROR: ", sys.exc_info()[0]
# backup images
for id, filename in backupFiles.iteritems():
img = curImages[id]
try:
print "saving " + img.name + '-' + str(id) + ' to ' + filename
pdb.gimp_xcf_save(1, img, img.active_drawable, filename, filename)
except:
print "ERROR: ", sys.exc_info()[0]
register(
"autosave",
"Autosave dirty hack",
"Periodically saves all opened images to a %temp% directory",
"public domain",
"public domain",
"2016",
"<Image>/File/Activate Autosave",
"*",
[],
[],
autosave)
main()
@s0urc3ray

This comment has been minimized.

Copy link

@s0urc3ray s0urc3ray commented Oct 22, 2019

Thanks! Lost my work twice in the past few days, power cut and then a crash today :(
I find it absurd that GIMP does not have this built in yet, the bug report requesting auto-save is still open with comments from 15 years ago!

@ErtYwek

This comment has been minimized.

Copy link

@ErtYwek ErtYwek commented Feb 21, 2020

Where does it save "all opened images"? Autosave function should be implemented in gimp cause its crash very often when you edit big [ 100mb+] xcf files

I find it absurd that GIMP does not have this built in yet, the bug report requesting auto-save is still open with comments from 15 years ago!

But still remember that GNU Image Manipulation Program is free of charge

@crogonint

This comment has been minimized.

Copy link

@crogonint crogonint commented Dec 9, 2020

Remember, free isn't worth it when it costs you precious time.
Over and over again.
For sixteen years.

@crogonint

This comment has been minimized.

Copy link

@crogonint crogonint commented Dec 9, 2020

So.. this plug-in DOES go in the /home/username/.gimp-2.8/plug-ins/ folder

You do not have to jump through hoops downloading obscure packages to figure out how to register it in Gimp.
You do not have to do a bunch of top secret command crap in terminal.
You do not have to hack it in to the system directory or install a system Python version.
Once you have it in the proper folder, go to the file properties for the script and make it executable.
That is all.
God alone knows why.

If you still don't see it on the FIle menu the next time you open Gimp, close Gimp, go to the /home/username/.gimp-2.8/ folder and delete the pluginrc file. open Gimp again, and it will rediscover all of the add-ons.

Ta-Da!

@wolfbeaumont

This comment has been minimized.

Copy link

@wolfbeaumont wolfbeaumont commented Apr 19, 2021

Where is the autosave storing these temporary images?

@crogonint

This comment has been minimized.

Copy link

@crogonint crogonint commented Apr 22, 2021

FYI, I had it out with the GIMP developers a couple of months ago. Bottom line.. they have no intention of EVER making auto-save a priority.
They actually banned me from the GIT over there.
It will never get done.

People will need to keep this precious little script updated and running, or the capability will be lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment