===============================================================================
 LinuxProPaintShop — for the LinuxDoors AppImage Store
===============================================================================

 Name:          LinuxProPaintShop
 Price:         $0.00
 Maker:         Stan Switaj
 Created:       September 7, 2026
 Kind:          A LinuxDoors AppImage Software Product
 File:          LinuxProPaintShop.AppImage
 Size:          72M   (single file, download and run)
 SHA256:        27b5bfffb46271ecca4d6b6566f310b6768c680ea0382eb395aa5df3d15f6e20

 CARD DESCRIPTION (the one line the store shows under the name)

     Paint, retouch and edit pictures in layers, with unlimited undo.


-------------------------------------------------------------------------------
 DESCRIPTION
-------------------------------------------------------------------------------

 A picture editor. Open a photograph, work on it in layers, paint on it, fix
 what is wrong with it, and save it out — or start from an empty canvas and
 paint something that was never a photograph at all.

 The canvas is the program. A picture opens filling the window, the wheel
 zooms in on whatever the pointer is over rather than on the middle, the
 middle button drags the view about, and the tools sit down the left where a
 hand expects them. Whatever tool is in hand puts its own settings in the bar
 across the top and nothing else — the brush shows size, hardness and opacity,
 the bucket shows tolerance, the shape tool shows which shape.

 Everything it needs travels with it. There is no Python to install first, no
 Qt to match, no imaging library to add before the filters work, and nothing
 on the machine for it to disagree with — which is the point of shipping it as
 one file.

 Written for LinuxDoors, though nothing in it is specific to LinuxDoors — it
 runs on Debian and Ubuntu type systems, and on any other Linux distribution
 that can run an AppImage.


-------------------------------------------------------------------------------
 The fourteen tools
-------------------------------------------------------------------------------

     Move                move the layer under the pointer
     Rectangle select    select a rectangle
     Ellipse select      select an ellipse
     Freehand select     draw a selection by hand
     Magic wand          select everything of a similar colour
     Brush               paint, with size, hardness and opacity
     Eraser              rub out, back to transparent
     Paint bucket        fill an area, with a tolerance you set
     Gradient            drag a gradient across — linear, radial or angle
     Colour picker       take a colour out of the picture
     Clone stamp         set a source, then paint one part of a picture
                         over another
     Text                place words on their own layer or on the current one
     Shapes              drag a rectangle, an ellipse or a line, filled or
                         outlined
     Crop                drag what to keep

 Each has a single-key shortcut, and every selection tool feeds the rest of
 the program: paint, a filter or an adjustment applied while something is
 selected happens inside the selection and nowhere else.


-------------------------------------------------------------------------------
 Layers
-------------------------------------------------------------------------------

 As many as the picture needs. Add, copy, reorder, hide, rename, merge down,
 or flatten the lot. Each carries its own opacity and its own blend mode:

     Normal      Multiply    Screen        Overlay      Darken
     Lighten     Colour dodge  Colour burn  Hard light   Soft light
     Difference  Exclusion   Add

 Transparency is real transparency — the checkerboard under a layer is the
 absence of pixels, not a grey square painted on. Every adjustment and every
 filter puts the transparency back exactly as it found it, which is the sort
 of thing that is invisible when it works and ruins an afternoon when it does
 not.


-------------------------------------------------------------------------------
 Fixing a photograph
-------------------------------------------------------------------------------

 ADJUSTMENTS
     Levels, with the histogram drawn as you drag it. Curves, on a real curve
     you place points on. Brightness and contrast. Hue, saturation and
     lightness. Greyscale. Invert. Auto levels, which stretches each channel
     so the darkest pixel is black and the lightest is white and is the first
     thing most photographs want.

 FILTERS
     Blur. Sharpen. Unsharp mask. Emboss. Edge detect. Find edges. Soften.
     Gaussian blur. Noise.

 They are quick because of how they are built rather than by being done at
 low quality. Anything that can be a lookup table is one, run over the whole
 image buffer in a single call, so brightness, contrast, gamma, levels and
 curves land instantly on a picture of any size. Anything that can be a
 composition is one, done in C. What is left is genuine arithmetic across the
 colour channels, and that is what the bundled numpy is for: emboss on a
 sixteen hundred by twelve hundred photograph takes about seven hundredths of
 a second.


-------------------------------------------------------------------------------
 The formats
-------------------------------------------------------------------------------

 OPENS
     png  jpg  jpeg  jfif  webp  tif  tiff  bmp  gif  ico  cur  icns
     tga  jp2  pbm  pgm  ppm  xbm  xpm  wbmp  svg  svgz  pdf

 WRITES
     png  jpg  jpeg  jfif  webp  tif  tiff  bmp  ico  cur  icns
     pbm  pgm  ppm  xbm  xpm  wbmp

 TIFF is worth a note. Most machines now carry a libtiff newer than the one Qt
 was built against, and on those the TIFF support quietly is not there at all.
 This build carries its own imaging library, so TIFF opens and writes here
 whatever the machine has on it.

 ITS OWN FILE
     .lpsp — the whole thing, layers and all. It is a zip holding one PNG per
     layer and a small text file describing the stack, so nothing about it is
     secret or trapped: unzip one and the layers are there as ordinary PNGs,
     openable by anything.


-------------------------------------------------------------------------------
 What else is in the program
-------------------------------------------------------------------------------

 UNLIMITED UNDO AND REDO
     Everything that changes the picture can be taken back, and that is meant
     literally: every brush stroke, fill and gradient, every filter and
     adjustment, the crop, the rotate, the flip, both resizes, and every layer
     operation down to its opacity, its blend mode and whether it is showing.

     There is no ceiling on how far back it goes. It starts at twenty-four
     steps, and when the picture reaches that it asks once whether to keep
     going or to stop at a number — and either answer can be changed at any
     time afterwards from Edit, Undo steps, where the choice is between
     keeping every step there has ever been and stopping at a number you set.
     Lowering the number takes effect at once rather than at the next stroke.

     It is affordable because of how a step is stored. A step holds the layers
     themselves rather than a description of what changed, which is why no
     operation has an undo that can be subtly wrong — but a layer nothing has
     happened to shares its pixels with the live one, so most of a step costs
     nothing at all. What has genuinely been painted over is squeezed down
     once the history grows past a quarter of a gigabyte, at about eight times
     smaller. Two hundred painted steps on a sixteen hundred by twelve hundred
     photograph come to 255 MB rather than the 1.4 GB the same steps would
     take stored plainly, and all two hundred were taken back and put forward
     again with every pixel where it should be.

     Each step is named, so undoing says "Undone: emboss" rather than leaving
     you to guess what went. Dragging a slider is one step and not sixty.
     Closing a picture with unsaved changes asks first.

 THE VIEW BEHAVES
     Zoom to fit, zoom to actual size, and free zoom on the wheel in fine
     steps rather than doubling. After a crop the result is centred rather
     than left hanging off the corner of the window.

 THE PANELS MOVE
     Tools, layers and colours are dockable — put them down either side, stack
     them, or float them off as windows of their own.

 IT REMEMBERS
     The theme, the brush size, hardness and opacity, the tolerance, both
     colours, the JPEG quality, how many undo steps to keep, which panels are
     showing and the folder you were last in.

 LIGHT AND DARK
     Both, switched with one key, with every colour pair in both themes
     measured against the WCAG contrast standard rather than judged by eye.
     The program will tell you so itself:

         LinuxProPaintShop.AppImage --check-contrast


-------------------------------------------------------------------------------
 On the command line
-------------------------------------------------------------------------------

     LinuxProPaintShop.AppImage picture.jpg     open that picture
     LinuxProPaintShop.AppImage --what-works    what this machine can do
     LinuxProPaintShop.AppImage --check-contrast   the contrast report
     LinuxProPaintShop.AppImage --version

 --what-works is the honest one. It says what is present on the machine and
 what each thing changes, rather than leaving you to find out by pressing a
 menu item that does nothing. In this build everything is present.


-------------------------------------------------------------------------------
 LinuxDoors original
-------------------------------------------------------------------------------

 Built by LinuxDoors — this is our own application, not a mirror and not a
 repackaging of somebody else's build. The SHA-256 above is authoritative.

 It carries its own Python, its own Qt, its own numerical library and its own
 imaging library, so every format and every filter above works on a computer
 with nothing installed on it. The painting, the layer stack, the selections
 and the adjustments are all the program's own code.


-------------------------------------------------------------------------------
 Running it — nothing to install
-------------------------------------------------------------------------------

     chmod +x LinuxProPaintShop.AppImage
     ./LinuxProPaintShop.AppImage

 Or give it a picture to open:

     ./LinuxProPaintShop.AppImage holiday.jpg

 On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage:

     ./LinuxProPaintShop.AppImage --appimage-extract-and-run

 or through linuxdoors-run-appimage, which does that for you and unpacks it
 once rather than on every launch.

 Settings live in ~/.config/LinuxProPaintShop/LinuxProPaintShop.save and are
 written when the program closes. Deleting that file puts everything back as
 it started.
