my favorite image editing program is "Jerry's Java Image Editor" because it runs on everything [including just a browser] and runs as though I coded it myself, which is to say, entirely in one thread, with just the previous list node for undo (ie, you get one undo, if you're very lucky), and you can really feel the O(n³) time as it iterates over each bitmapped layer.
I use it for nearly every project that i'm doing native-digital art in, because the things that are like twelve step processes in adobe products and require me to look up tutorials are ezpz in ImageEditor.jar.
I have been using it for nearly 13 years. It is the closest a digital tool has felt to using physical tools, imo.
Keyboard shortcuts? you got about a 50/50 chance of the keyboard event listener working.
There is one way it runs as though i wasn't the one who programmed it, and that is that it has its own hardcoded memory limit of 12GB. I can't increase it via the jvm parameters, and i've wanted to bump that up to 32+GB for Academic Reasons.
Oh also sometimes the export image function (which is also the save image function) breaks and the way to get the image you made out of the program is the windows snipping tool.
try it yourself: http://www.jhlabs.com/ie/