May 20, 2026

Notes from text file in GIMP on startup

Since GIMP (aka GNU Image Manupulation Program) is still a complicated raster graphics editor, kinda like Photoshop, it has same problem of having a ton of tools and options which can be easy to forget.

And especially for some same-y but rare tasks, like going back to update/export specific .xcf once in a while - kinda like making a software release - it's always nice to make a doc/notes or checklist for the procedure, so that you don't need to bother remembering all the fine details of the task or worry about skipping some important step accidentally.

I've used GIMP scripting a bunch before (e.g. in an old desktop wallpaper-setter script), so thought to try it for this as well, and it was a surprisingly easy hack, which don't think I've found mentioned elsewhere (despite people going to .c patching for this) - add ad-hoc -b/--batch script via wrapper, which will flash message in Error Console.

In simplest form it can work like this:

  • Dedicate some file like ~/.gimp.notes.txt for this, write free-form plaintext notes there. These will be displayed with var-width font, any long lines wrapped, newlines preserved as-is, tabs as ~8 spaces.

  • Run GIMP, add Error Console to any of the dialog stacks on the right, clicking Windows > Dockable Dialogs > Error Console (at the bottom there) in 3.2. Should initially just open an empty tab.

  • Add ~/bin/gimp or whatever wrapper in $PATH to include -b/--batch option with trivial script that reads notes-file on startup:

    #!/bin/sh
    notes="$HOME"/.gimp.startup.txt
    [ -s "$notes" ] || exec /usr/bin/gimp "$@"
    exec /usr/bin/gimp --batch-interpreter python-fu-eval -b '
    import gi.repository.Gimp as g, pathlib as pl
    g.message(pl.Path("'"$notes"'").read_text().strip())' "$@"
    

That will make running gimp (or more typical gimp someimage.xcf) command switch to that "Error Console" tab on startup and visibly draw attention to it (flashing), with message from txt file displayed in there (labelled "python-fu warning" or smth). Using gimp some-other-image.png to open another file in an already-running GIMP instance will re-run the script and flash console tab with current notes-file too.

Without Error Console docked into tabs, this hack will instead popup a modal window reminder, which is much less useful, as it'll go away once you click OK in it, hence adding/opening console tab as a separate mandatory step above.

That's enough for me, to have one generic window with all reminders, but can also be tweaked to:

  • Display a per-project/image-specific notes file, by e.g. setting notes var as notes=${1%.*}.notes.txt to display image.notes.txt when opening image.jpg (using command-line "gimp ..." invocation), if there's such file next to it.
  • Display Image > Image Properties > Comment data instead, which can be stored per-image in XCF files, but likely limited to XCF format, limited in size, and more difficult to manage in GIMP textbox instead of a separate plaintext file. Can be done by fetching that comment in the code, either via gimp's script-fu API, or even calling external tool/module (as in some imagemagick incantation).

More generally, kinda wish more editor apps (and most complicated games too) had some kind of in-app front-and-center visible reminder/notes functionality, where you can return to it later and leave your notes right there for what's still left to do or what was the long-term project outline, to quickly get up to speed, instead of going through "the hell was I doing here?" phase after weeks or months.

It's easier in text projects like code repos, where docs and notes are common and expected, but they really aren't the only ones badly needing those. Also suspect there might be a different shared fix via dedicated note-taking apps, which can monitor OS windows, apps and/or specific opened files, and display whatever is relevant to those, but haven't seen/used any myself.