LinuxDoors AppImage Store

One file. Download and run.

Each of these is a single self-contained executable — the whole application plus the runtime it needs — that you download, mark executable, and run. Nothing to install, nothing left behind, and it runs the same on Debian, Ubuntu and other Linux distributions that can launch an AppImage.

Some are LinuxDoors' own work. Others are trusted upstream builds — we mirror them here unmodified, so you can get them from the same place as the rest of the system, each with a SHA-256 you can check against the project's own. Every app shows who made it and where it really comes from.

LinuxDoors Games Games have their own shelf — one game, free, one file, download and play. Browse Games →

A recommended way imho to keep AppImages

This is Stan Switaj’s recommendation for how per-user AppImages should be stored — a tidy layout for the ones you download from the Store, with a real Desktop launcher for each.

One folder per user. Every AppImage a user keeps lives in ~/AppImages/ — for the default account, /home/linuxdoors/AppImages/. The AppImage files sit directly in that folder: /home/linuxdoors/AppImages/FlashScp.AppImage, and so on for every other one.

One subfolder, for icons only. That folder holds exactly one subfolder, images/, and nothing else. Each AppImage’s icon goes there as a PNG: /home/linuxdoors/AppImages/images/FlashScp.png.

A Desktop launcher per AppImage. For each one, a launcher is placed on the Desktop. Its Exec= line calls LinuxDoors’ own AppImage runner — Exec=linuxdoors-run-appimage /home/linuxdoors/AppImages/FlashScp.AppImage — and its icon comes from the matching PNG (Icon=/home/linuxdoors/AppImages/images/FlashScp.png), so the Desktop shows a real, recognizable icon for launching the program instead of a generic one.

Why the runner. LinuxDoors has no FUSE, so an AppImage unpacks itself before it starts; and /tmp is cleared on every reboot, so a bare Exec= path re-unpacks the whole app on the first launch after each boot — several seconds with nothing on screen, which reads as “I clicked the icon and nothing happened.” linuxdoors-run-appimage (in /usr/bin, on every LinuxDoors install) unpacks into a persistent ~/.cache/appimage-run/ instead — so each AppImage unpacks once, ever, every later launch is instant, and that one first run shows a “Starting… unpacking” notification. You can still run any AppImage directly; the runner is just the friendlier path for a Desktop shortcut.

In short: ~/AppImages/<Name>.AppImage for the program, ~/AppImages/images/<Name>.png for its icon, and a Desktop launcher (Exec=linuxdoors-run-appimage …) wiring the two together.

No terminal? Here’s the same thing with a mouse

An AppImage has to be marked executable before it will run — normally a one-line chmod +x in a terminal. Every graphical file manager offers the exact same switch from its Properties dialog, with no terminal needed. These are real screenshots from a LinuxDoors desktop (Thunar, LinuxDoors’ default MATE file manager), using LinuxUltraOffice.AppImage right after downloading it as the example.

1Right-click the downloaded file. Right-clicking LinuxUltraOffice.AppImage in a file manager shows a context menu with Properties at the bottom In your Downloads folder (or wherever you saved it), right-click the .AppImage file. Look for Properties near the bottom of the menu — it's on every mainstream Linux file manager (Thunar, Caja/Nautilus, Dolphin, PCManFM-Qt), though the exact wording of the checkbox in step 3 can vary slightly by file manager.
2Open the Permissions tab. The Properties dialog for LinuxUltraOffice.AppImage, showing General, Emblems, Highlight and Permissions tabs The Properties dialog opens showing file details first (name, size, kind, dates). Click the Permissions tab along the top.
3Find the “run as a program” checkbox. The Permissions tab, unchecked, showing the Allow this file to run as a program checkbox with a security warning below it Down near the bottom, under Program:, there's a checkbox — on Thunar it reads “Allow this file to run as a program” (Caja/Nautilus phrases the same checkbox as “Allow executing file as program”). It starts unchecked on a fresh download, and the file manager shows a short security note under it — worth reading once: only mark a file executable if you trust where it came from.
4Check it, then close. The same Permissions tab with the Allow this file to run as a program checkbox now checked Check the box and close the dialog. That's the whole procedure — it takes effect immediately, the same way chmod +x does from a terminal, because it is chmod +x: the file manager is just setting the same executable bit through a checkbox instead of a command. Double-click the AppImage from here on and it runs.

If a checkbox for this isn't where you expect, look for an Executable or Permissions section in whatever your file manager calls its Properties/Info panel — the control is universal on Linux desktops even where the exact wording differs.

AppImages 1–10 of 14.

FlashScp icon

FlashScp$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

Copy files and folders between computers, over SSH using scp.

by Stan Switaj · created August 30, 2026

A LinuxDoors AppImage Software Product

↓  Download FlashScp.AppImage icon (.png) 49.8 MB  ·  27 downloads  ·  single file, download and run
SHA256 dff351637680464ee4e8d3170cbb325a5dad67483b186c0c028fa54c803d5eef
A two-pane file-transfer window in the manner of FlashFXP — but where FlashFXP spoke FTP, FlashScp copies with scp over an SSH connection. Two computers side by side; drag from one to the other; a queue underneath does the work and tells you how far along it is. Either side can be this computer or any machine you have saved, so local→remote, remote→local and remote→remote are all the same gesture.
chmod +x FlashScp.AppImage ./FlashScp.AppImage
LinuxDoors original. Built by LinuxDoors -- this is our own application, not a mirror. The SHA-256 above is authoritative.

scp, over SSH

SSH is the connection: it authenticates you to the far machine and encrypts everything that travels. scp is the copying: it moves the bytes, running over the SSH link that SSH established. FlashScp does not invent its own protocol and does not carry its own SSH library — it drives the real ssh and scp programs already on your system, the same ones you would type in a terminal. So your private keys, ~/.ssh/config, your ssh agent, known_hosts, ProxyJump through a bastion, and machines that demand a key AND a password all keep working exactly as they do in a shell. Nothing here re-implements authentication, so nothing here can get it subtly wrong.

Why scp over SSH is the right way

Everything is encrypted — your password, the file names, and the file contents. One port, already open: SSH is a single connection on 22, with no second data channel to fight NAT and firewalls over. Nothing to install on the far end — if you can ssh in, you can copy in. Keys instead of passwords, or a key combined with a password where a machine demands both. You can tell you are talking to the right machine, because SSH remembers each host key and refuses a substituted server. Corruption in transit is detected, because SSH authenticates every packet. And files arrive with their modification time and mode intact.

What is in the program

A Manager of Computers — every machine with its host, port, user, key path, optional password, starting folder and a note, plus a Test button. One connection per machine — the first connect opens a shared channel and every listing, file and command travels down it, so a password-protected machine is asked once, not once per file. The Queue — a dragged folder is walked and queued a file at a time, giving a real progress figure, several files at once, resume of an interrupted folder copy, and an optional speed cap. Compare and Mirror — see what differs by size and time between two folders and send only that. A Terminal tab, full file management (new folder / rename / permissions / delete, with a delete that names exactly what and where), light/dark themes with every colour measured to WCAG contrast, and a keep-alive that notices a dead link in about a minute.

What scp costs, plainly

scp has no resume of its own and no delta transfer — it cannot send only the changed part of a large file the way rsync can. FlashScp works around the first by walking the folder itself and skipping any file already complete at the far end; it cannot work around the second. scp also has more per-file overhead than FTP, so thousands of tiny files are slower — FlashScp answers that by holding one connection open and sending several files at once. And since SSH has no directory-listing protocol, FlashScp reads folders by running find on the far machine, falling back to ls.

Running it — nothing to install

Download the AppImage, make it executable, run it. It carries its own Python and interface libraries, plus sshpass for machines that want a password. It deliberately does NOT carry its own ssh or scp — those must be the ones on your machine, because they are what read your keys, ~/.ssh/config and known_hosts. Every Linux system already has them. Your saved machines live in ~/.config/FlashScp/FlashScp.save, created readable only by you; a password is written there only if you tick “Save the password”, scrambled (obfuscation, not encryption — the program says so). Otherwise it is asked once and kept in memory only, and handed to ssh through the environment, never on a command line.

Prefer the package manager? FlashScp is also an installable LinuxDoors package — flashscp — which uses the copy of Python and Qt already on your system instead of carrying its own.

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

LinuxNoteText icon

LinuxNoteText$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

Edit text and source code, with the editing engine Notepad++ is built on.

by Stan Switaj · created September 10, 2026

A LinuxDoors AppImage Software Product

↓  Download LinuxNoteText.AppImage icon (.png) Version 0.2  ·  49.4 MB  ·  32 downloads  ·  single file, download and run
SHA256 a383577e12a28249228639c78652851f5a10d9dabc644bb9ed9ce9c6655d5995
A text and source editor. Open a file, work on it, save it -- and have the editing itself behave the way thirty years of editors have taught your hands to expect, because the part that does the editing is not an imitation of a real editor: it is Scintilla, the same engine Notepad++ is built on, compiled from source and carried inside. The window around it is this program's own -- the tabs, the menus, the document list, the map, the search, the plugins and the settings. Unlimited undo and redo with no ceiling, 139 languages coloured including Apache and nginx configuration files, real regular-expression find and replace with a Find All results tree, a full-file document map, sessions that bring back your open files with the caret where you left it, a session manager for keeping several pieces of work side by side, a style configurator with a live preview, light and dark themes with every colour pair measured to the WCAG contrast standard, and nine plugins that travel with it -- four in Python, five in Lua. Everything it needs travels with it -- no Python to install first, no Qt to match.
chmod +x LinuxNoteText.AppImage ./LinuxNoteText.AppImage ./LinuxNoteText.AppImage notes.py # open a file ./LinuxNoteText.AppImage report.log -n 42 # open at line 42 ./LinuxNoteText.AppImage --what-works # what this machine can do # on LinuxDoors (no FUSE): ./LinuxNoteText.AppImage --appimage-extract-and-run # or via linuxdoors-run-appimage, which unpacks it once rather than on every launch
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, and the X11 helper libraries Qt's xcb platform plugin needs (libxcb-cursor and its companions), so it starts on a machine with nothing installed on it. The editing canvas is Scintilla 5.6.6 and Lexilla 5.5.3, from scintilla.org, compiled from source and carried inside unmodified, used under their own permissive licence with their notices inside the AppImage.

The editing engine is a real one

The canvas is Scintilla 5.6.6 with Lexilla 5.5.3 -- the same editing component Notepad++ is built on -- compiled from source and carried inside, unmodified. Undo and redo have no ceiling and no step count to configure: twenty thousand separate edits were made, taken back one at a time and put forward again with every character where it should be, in under a fifth of a second each way, and undo restores the selection too. Syntax colouring by Lexilla covers 139 languages, 53 of them described by name, file extension and keyword list -- C, C++, C#, Java, JavaScript, TypeScript, Go, Rust, Python, Ruby, PHP, Lua, Shell, PowerShell, HTML, XML, CSS, JSON, YAML, TOML, Markdown, LaTeX, SQL, Makefile, CMake, Assembly, Apache and nginx configuration files, and more. Python's three kinds of string are three colours on screen because they are three different things in the language.

Find, replace, and Find All

Ctrl+F to find, Ctrl+H to replace, F3 to step, Ctrl+F3 to search for the selection. Match case, whole word, wrap, and real regular expressions -- alternation, {n,m}, lookahead, and backreferences in the replacement. Every match is boxed as you type and the panel says which one you are on ("3 of 114"). Replace All is one undo step and can be held to the selection. Find All puts every match in a panel as a tree -- the search, then each file, then each hit with its line number and the line itself; click a line to go there with the match selected.

The file, seen whole

A document map down the right shows the entire file in miniature, still coloured, with the part you are looking at lit and the rest dimmed -- click or drag anywhere on it to go there. A document list down the left names every open file and marks the ones with unsaved work; drag files onto it from a file manager to open them.

Sessions, and not losing things

The files you had open come back next time, with the caret and the scroll position where you left them. Work that was never saved comes back too, still marked unsaved, and undo takes you back to what is actually on the disk -- but answer Discard on the way out and that text is not kept and does not return. The Session Manager (Ctrl+Shift+M) keeps several pieces of work side by side: each entry is a set of files, a note in your own words, and the date you last opened it. Opening one brings back its eleven files; opening another brings back its four, without either disturbing the other. The note is the point -- a list of file names never says what you were in the middle of.

Making it look how you want

The Style Configurator: choose a language, then the kind of text, then the colour, weight, face and size -- per kind of text, so Python docstrings can be in a different font or a larger size while the code around them stays as it was. Three layers, each falling back to the one under it: what the theme says, what you changed for every language, what you changed for one, with a real editor showing that language sitting underneath. Light and dark themes, switched with one key, with every colour pair in both measured against the WCAG 2.1 contrast standard rather than judged by eye -- 128 pairs, all passing, and "LinuxNoteText.AppImage --check-contrast" will tell you so. Preferences (Ctrl+,) cover General, Editing, Indentation, New Documents, Searching, Saving and Performance; every setting listed does something, and what the program cannot do yet is simply not offered.

Plugins, now in two languages

Four travel with it in Python -- Word Count, Sort Lines, Tidy On Save and Insert Date -- and five more travel with it in Lua: Hello Lua, Change Case, Sum Numbers, Align Equals and Stamp Modified. Your own go in ~/.config/LinuxNoteText/plugins, and the manager shows the folder so reading one before running it is a click away. A plugin is code running inside the editor's own process -- Python or Lua 5.5, bundled the same way -- and the program says plainly what that does and does not mean: finding a plugin never runs it (discovery reads a plain-text manifest and imports nothing), nothing runs until it is switched on by hand, new plugins arrive switched off, what a plugin may do through the editor is declared in its manifest and refused at the API boundary if it did not ask, and a plugin that keeps failing is switched off with the reason shown. The Lua side takes capability-enforcement further than declaring it: import, io, os.execute, require and load are removed from the Lua environment itself before a plugin's code ever runs, not merely left undocumented, so a Lua plugin that never declared file or process access cannot reach for it by another name.

Apache and nginx, told apart correctly

Server configuration files don't name themselves the way source files do -- an nginx site and an Apache vhost can both be called default.conf. Recognising them by name alone gets it wrong as often as right, so LinuxNoteText looks at what's actually inside the file instead: nginx's server { } / location { } blocks and its \$variable syntax read one way, Apache's <VirtualHost> / <Directory> blocks and its %{FOO} and $1 syntax read another, and the two are coloured accordingly. The rule was checked against 172 real configuration files pulled from a live /etc/nginx and /etc/apache2, not written from memory of what those files are supposed to look like.

Files can be dragged in

Drop files from the file manager anywhere on the window -- the document list down the left, the text itself, the tabs along the top, the status bar -- and they open, however many at once. The last one dropped is the one you're left looking at, and a file already open is brought to the front instead of being opened a second time. A dragged web link or folder is declined rather than opened as though it were a file, and dropping more than a dozen at once asks first. Dragging off a desktop works too, which is less obvious than it sounds -- a desktop's own icons carry their file addresses in a format the file manager invented, not the ordinary one, and that format is read as well, whichever desktop it is. None of this disturbs what the text area already did with a drag: a selection can still be picked up and moved from one part of a file to another, since only a drag actually carrying files is intercepted.

Small fixes worth naming

The close button on a tab used to draw its hover highlight square over the tab's own border instead of inside it -- a small thing, but visible on every tab, every time. It now draws as a proper rounded square that sits inside the tab. Files named .gitconfig and .editorconfig are now recognised by name and coloured as the INI-style files they are, rather than falling back to plain text because they carry no file extension for the usual by-extension check to key off.

On the command line

The switches follow Notepad++, so a command line written for it works here: file.py -n 42 to open at a line, -l python to colour a file as Python, -ro to open read only, -nosession to skip last time's files, -monitor to follow a file as it is written. Also -c and -p for a column or position, -x and -y to place the window, -notabbar, -noPlugin, -openSession, -settingsDir, -titleAdd, -alwaysOnTop, -r for wildcards, and -qt and -qf for typing text out as though by hand. Switches that cannot mean anything on Linux are still accepted and say so. --what-works reports what is present on this machine and what each thing changes; --check-contrast prints the full contrast report.

Running it -- nothing to install

Download the AppImage, make it executable, run it -- optionally with a file to open. On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./LinuxNoteText.AppImage --appimage-extract-and-run, or through linuxdoors-run-appimage, which does that for you and unpacks it once rather than on every launch. It carries its own Python and its own Qt, so everything above works on a computer with nothing installed on it. Settings live in ~/.config/LinuxNoteText/ -- the preferences, the styles you chose, the session, your saved pieces of work and your plugins, each in its own plain text file. Deleting that folder puts everything back as it started. Version 0.2, an early version; bug reports to bug-reports-linuxnotetext@linuxdoors.com.

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. Only the GPU libraries come from the host.

=============================================================================== LinuxNoteText — for the LinuxDoors AppImage Store =============================================================================== Name: LinuxNoteText Price: $0.00 Programmer: Stan Switaj From: LinuxDoors.com Created: September 10, 2026 Kind: A LinuxDoors AppImage Software Product File: LinuxNoteText.AppImage Size: 48M (single file, download and run) SHA256: a383577e12a28249228639c78652851f5a10d9dabc644bb9ed9ce9c6655d5995 CARD DESCRIPTION (the one line the store shows under the name) Edit text and source code, with the editing engine Notepad++ is built on. ------------------------------------------------------------------------------- DESCRIPTION ------------------------------------------------------------------------------- A text and source editor. Open a file, work on it, save it — and have the editing itself behave the way thirty years of editors have taught your hands to expect, because the part that does the editing is not an imitation of a real editor. It is Scintilla, the same engine Notepad++ is built on, compiled from source and carried inside. The window around it is this program's own: the tabs, the menus, the document list, the map, the search, the plugins and the settings. Scintilla does the editing, and it is very good at it. Everything else here was written to be worth putting around it. Everything it needs travels with it. There is no Python to install first, no Qt to match, no editor component to build, 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 editing ------------------------------------------------------------------------------- UNLIMITED UNDO AND REDO Every change can be taken back, and that is meant literally: there is no ceiling and no step count to configure. Twenty thousand separate edits were made, taken back one at a time, and put forward again with every character where it should be — in under a fifth of a second each way. Undo restores the selection too, not only the text. 139 LANGUAGES COLOURED Syntax colouring by Lexilla, with 53 of them described by name, by file extension, and by the keyword lists that actually make the colouring work: C, C++, C#, Java, JavaScript, TypeScript, Go, Rust, Swift, Kotlin, Python, Ruby, Perl, PHP, Lua, R, Julia, Haskell, Shell, PowerShell, HTML, XML, CSS, JSON, YAML, TOML, Markdown, LaTeX, SQL, Makefile, CMake, Assembly, Pascal, Ada, Fortran, Verilog, VHDL and more. The Language menu is there when a file wants colouring as something other than its name suggests. Apache and nginx are both in that list, and telling them apart is done by reading rather than guessing. Both live in .conf files, and the ones that matter most on a server often have no extension at all, so when the name leaves the question open the file itself is consulted: <VirtualHost and DocumentRoot against server { and proxy_pass, with the directory it sits in counting too. Checked against every file under /etc/nginx and /etc/apache2 on the machine it was written on, 172 of them, all landing right. PYTHON, PROPERLY Its three kinds of string are three different things on screen, because they are three different things in the language: one-line strings green, triple-quoted strings orange and italic, f-strings with a colour of their own. Most editors give all three one colour and lose the difference. FIND AND REPLACE Ctrl+F to find, Ctrl+H to replace, F3 to step, Ctrl+F3 to search for whatever is selected. Match case, whole word, wrap, and real regular expressions — alternation, {n,m}, lookahead, and \1 backreferences in the replacement. Every match is boxed as you type and the panel says which one you are on: "3 of 114". Replace All is one undo step and can be held to the selection. Find All puts every match in a panel as a tree — the search, then each file, then each hit with its line number and the line itself. Click a line to go there with the match selected. THE FILE, SEEN WHOLE A document map down the right shows the entire file in miniature, still coloured, with the part you are looking at lit and the rest dimmed. Click or drag anywhere on it to go there. A document list down the left names every open file and marks the ones with unsaved work. ------------------------------------------------------------------------------- Sessions, and not losing things ------------------------------------------------------------------------------- The files you had open come back next time, with the caret and the scroll position where you left them. Work that was never saved comes back too, still marked unsaved, and undo takes you back to what is actually on the disk. If you answer Discard on the way out, that text is not kept and does not return — a session must never resurrect what you threw away. THE SESSION MANAGER (Ctrl+Shift+M) Several pieces of work, kept side by side. Each entry is a set of files, a note in your own words, and the date you last opened it. Opening one brings back its eleven files; opening another brings back its four, without either disturbing the other. The note is the point. A list of file names says what a piece of work touches. It never says what you were in the middle of, and that is exactly what is gone by the time you come back to it. ------------------------------------------------------------------------------- Making it look how you want ------------------------------------------------------------------------------- THE STYLE CONFIGURATOR Choose a language, then the kind of text, then the colour, the weight, the face and the size. Not just per language — per kind of text, so Python docstrings can be in a different font or a larger size while the code around them stays exactly as it was. Three layers, each falling back to the one under it: what the theme says, what you changed for every language, what you changed for one. A real editor showing that language sits underneath, so the answer is visible while it is being chosen rather than after the dialog closes. LIGHT AND DARK Both, switched with one key, with every colour pair in both themes measured against the WCAG 2.1 contrast standard rather than judged by eye. 128 pairs, all passing. The program will tell you so itself: LinuxNoteText.AppImage --check-contrast The configurator shows the contrast of every choice as you make it. It never refuses one — it is your editor — but the number is there, so choosing something unreadable is a decision rather than a discovery made an hour later. PREFERENCES (Ctrl+,) General, Editing, Indentation, New Documents, Searching, Saving and Performance. Changes take effect as they are made, so there is no Apply button. Every setting listed does something. A preference that is shown but not wired up is worse than a missing one, because it is a promise quietly not kept — so what the program cannot do yet is simply not offered. ------------------------------------------------------------------------------- Plugins ------------------------------------------------------------------------------- Nine travel with it, and they are written in two languages. FOUR IN PYTHON Word Count, Sort Lines, Tidy On Save and Insert Date. FIVE IN LUA Hello Lua, Change Case, Sum Numbers, Align Equals and Stamp Modified. Lua 5.5 travels inside, so nothing needs installing to run or write one. Each is short and each shows a different part of what a plugin can do, and there is a guide beside them. Your own go in ~/.config/LinuxNoteText/plugins, and the manager shows the folder so that reading one before running it is a click away. WHAT SAFE MEANS HERE, AND WHAT IT DOES NOT A Python plugin is Python running inside the editor's own process. Nothing short of a separate process with a real sandbox can stop such code doing whatever the person running the editor could do, and this is not that. Saying otherwise would be worse than saying nothing. So, plainly: - Finding a plugin never runs it. Discovery reads a plain text manifest and imports nothing, so dropping a folder into the plugins directory executes nothing at all. - Nothing runs until it is switched on by hand, and new plugins arrive switched off. - What a plugin may do through the editor is declared in its manifest and refused at the API boundary if it did not ask. The manager says plainly which of those the editor cannot enforce. - A plugin that fails cannot take the editor down, and one that keeps failing is switched off with the reason shown. A LUA PLUGIN IS DIFFERENT, AND THIS PART IS A REAL LIMIT A Lua plugin does not run in the editor's Python. It runs in a Lua interpreter whose whole global environment the editor builds, and what is not put into that environment does not exist for the plugin. There is no import, no io, no os.execute, no require and no load. What is left of os is os.date, os.time, os.clock and os.difftime, none of which can reach anything. So a Lua plugin cannot read your files, write to them, use the network or start a program — not because it undertook not to, but because there is no way to from inside. For Lua the capability list is enforced rather than declared, and the plugin manager says so rather than showing the caveat it shows for Python. Three genuine escapes had to be closed to be able to say that, and every one of them is attempted again by the checks each time the program is built: the Python bridge the Lua binding installs by default, Lua's own standard library, and the subtle one — any Python function handed to Lua will give up its __globals__, and with it __builtins__ and __import__, unless attribute access is refused outright. What it is still not: a security boundary of the sort a separate process would give. A Lua plugin can loop forever and hang the editor, and it can use everything it was granted. The advice that follows is the same as for any program: run plugins you have reason to trust, and read the source of the ones you do not. ------------------------------------------------------------------------------- On the command line ------------------------------------------------------------------------------- The switches follow Notepad++, so a command line written for it works here. LinuxNoteText.AppImage file.py -n 42 open at line 42 LinuxNoteText.AppImage -l python notes.txt colour it as Python LinuxNoteText.AppImage -ro report.log open it read only LinuxNoteText.AppImage -nosession without last time's files LinuxNoteText.AppImage -monitor server.log follow it as it is written LinuxNoteText.AppImage --what-works what this machine can do LinuxNoteText.AppImage --check-contrast the contrast report LinuxNoteText.AppImage --help Also -c and -p for a column or a position, -x and -y to place the window, -notabbar, -noPlugin, -openSession, -settingsDir, -titleAdd, -alwaysOnTop, -loadingTime, -quickPrint, -r for wildcards, -z, and -qt and -qf for typing text out as though by hand. Switches that cannot mean anything on Linux are still accepted and say so, rather than failing. --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. ------------------------------------------------------------------------------- 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 and its own Lua, so everything above works on a computer with nothing installed on it. The window, the tabs, the search, the document map, the session manager, the style configurator, the plugin system and the settings are all the program's own code. The editing canvas is Scintilla 5.6.6 and Lexilla 5.5.3, from scintilla.org and the ScintillaOrg repository, compiled from source and carried inside. Both are unmodified: the one thing Scintilla needs that Qt 6 no longer has was supplied alongside rather than by patching them, so what is inside is the official release and nothing else. Lua comes from lupa 2.8, the official build from PyPI, with Lua 5.5 compiled into it so that nothing here depends on a Lua being installed. Only the one interpreter the editor uses travels; the other six the package offers were taken out. Scintilla, Lexilla and lupa are used under their own permissive licences. All three notices travel inside the AppImage, in usr/share/linuxnotetext/licences, together with a record of exactly which release each came from and the checksum of the archive it was taken from. ------------------------------------------------------------------------------- Running it — nothing to install ------------------------------------------------------------------------------- chmod +x LinuxNoteText.AppImage ./LinuxNoteText.AppImage Or give it a file to open: ./LinuxNoteText.AppImage notes.py On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./LinuxNoteText.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/LinuxNoteText/ — the preferences, the styles you chose, the session, your saved pieces of work and your plugins, each in its own plain text file. Deleting that folder puts everything back as it started. ------------------------------------------------------------------------------- What changed in this build ------------------------------------------------------------------------------- APACHE AND NGINX ARE COLOURED, AND TOLD APART BY READING THEM Both are new. They share one lexer and are separated by their keyword lists, so nothing upstream was patched to add them. The harder half was working out which is which: both live in .conf files, and the ones that matter most on a server — /etc/nginx/sites-enabled/default and its like — have no extension at all. So the name is tried first, and only when the name leaves the question open is the file itself read. Checked against all 172 files under /etc/nginx and /etc/apache2 on the machine it was written on. PLUGINS CAN NOW BE WRITTEN IN LUA Five Lua examples ship alongside the four Python ones, with a guide beside them. Lua 5.5 travels inside, so nothing needs installing to run or write one. The point of it is not a second language for its own sake. A Lua plugin runs in an interpreter this program builds, so it has no import, no io and no way back into Python — which means its capability list is enforced rather than declared, which was never true of a Python plugin and is said plainly in the Plugins section above. FILES CAN BE DRAGGED IN Drop files from the file manager anywhere on the window -- the list of open files down the left, the text itself, the tabs along the top, the status bar -- and they open, however many at once. The list says it will take them while the drag is still over it rather than after the fact, the last one dropped is the one you are left looking at, and a file that is already open is brought to the front instead of being opened twice. A dragged web link or folder is declined rather than opened as though it were a file, and a drop of more than a dozen asks first. Dragging off the desktop works as well, which is less obvious than it sounds: a file dragged from a desktop does not necessarily arrive in the ordinary way, because the file managers that draw a desktop have a format of their own for it, carrying the addresses together with where the icons sat. Those are read too, whichever desktop it is. Dropping on the text does not disturb what the text area already did with a drag: a selection can still be picked up and moved from one part of a file to another, because only drags carrying files are taken and everything else is left alone. SMALLER THINGS The × on each tab no longer draws its hover highlight over the tab's own border, and that highlight is now the rounded square it was always meant to be rather than a clipped block. Files like .gitconfig and .editorconfig are recognised as configuration again; they had been named in the wrong place and were quietly falling through to plain text. ------------------------------------------------------------------------------- Stage ------------------------------------------------------------------------------- Version 0.2, an early version. Bug reports to bug-reports-linuxnotetext@linuxdoors.com.
FlashPhoto icon

FlashPhoto$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

View, crop and adjust photographs — and crop a JPEG without re-encoding it.

by LinuxDoors.com · created September 7, 2026

A LinuxDoors AppImage Software Product

↓  Download FlashPhoto.AppImage icon (.png) Version 1.0 (build 2)  ·  62.7 MB  ·  19 downloads  ·  single file, download and run
SHA256 70b5bf6713cef5e025aa79c44a043a269142cc04d1c220419143172bc01d3c4b
A photograph viewer and editor for the everyday work: open a folder, move through it with the arrow keys, throw out the ones that did not come off, crop the ones that did, resize a few for a website, convert a folder to another format. It is not a darkroom and does not pretend to be one — no layers, no masks, no history brush, because the moment a program carries those it stops being the thing you open to glance at a picture. What it is instead is quick, and careful with the original: a picture appears the moment you press the key, and a crop on a JPEG does not damage the photograph.
chmod +x FlashPhoto.AppImage ./FlashPhoto.AppImage # on LinuxDoors (no FUSE): ./FlashPhoto.AppImage --appimage-extract-and-run # or via linuxdoors-run-appimage, which unpacks it once rather than on every launch
LinuxDoors original. Built by LinuxDoors.com -- 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, Pillow for the formats Qt has no plugin for, and jpegtran for the lossless work. Nothing is installed on the machine and nothing on the machine is disturbed.

Build 2 — the folder strip is off until you ask for it

Opening one photograph should not send the program off to read every other photograph in the folder first. In build 2 the folder thumbnail strip starts hidden and reads nothing off the disk while it is hidden -- it just holds the list of what is there. Press F3 and it walks the folder and decodes the thumbnails then, and only then; press F3 again and it stops, rather than leaving the reading going on out of sight. On a folder of large or raw-sized photographs that is the difference between a picture appearing at once and a wait while a hundred others are read. The state is remembered between runs, so if you keep the strip open it opens with it. Nothing else about the program changed: same viewer, same lossless JPEG cropping, same crop and adjust and resize and batch, same formats.

Lossless JPEG cropping

A JPEG is stored as compressed blocks, and the compression is lossy: some of the original detail went the moment the camera wrote the file. The trouble is what happens next. Open a JPEG in an ordinary editor, crop it, and save: the program decodes those blocks into pixels, discards the blocks, and compresses the result again from scratch. A little more detail goes each time -- soft edges, blotches around lettering, banding in a clear sky. That is generation loss, and none of it is recoverable. FlashPhoto does not work that way. For a crop or a rotation on a JPEG it hands the file to jpegtran, which copies the compressed blocks straight across without ever decoding them. The pixels that remain are bit for bit what they were, however many times it is done. It is a tested guarantee, not a claim: cropping a photograph this way and comparing against the same region of the original gives an identical set of bytes, and rotating four times by ninety degrees returns the file it started as, metadata intact. jpegtran travels inside the AppImage, so this works on a machine that has never installed it.

The one rule, and why the selection moves

Because it is the blocks that are copied, a lossless crop can only fall on a block boundary -- 8 or 16 pixels across depending on how the camera wrote the file. So while Lossless is ticked the selection snaps to that grid, and the grid size is read out of the file itself rather than assumed. Zoom past six times and the grid is drawn on the picture, so the snapping is something you can see rather than a rectangle that jumps for no reason. Snapping only ever grows the selection: a crop that quietly lost a strip you had included would be worse than one that keeps a few pixels you had not. Untick Lossless and any pixel is available, at the cost of a re-encode -- and the program says plainly which of the two you are getting.

What is in the program

The viewer: open a file or a whole folder, arrow keys to move; fit to window, actual size, or anywhere between with a fine-grained wheel zoom; drag to pan, double-click to switch fit/1:1, F11 fullscreen, drop a file to open. The wheel works either way round -- by default it zooms and Control moves through the folder; one setting swaps them. The next picture is already loaded: while one is on screen the program decodes the neighbours in the direction of travel, so moving to the next takes about three milliseconds instead of sixty on a twelve-megapixel photo -- and every held picture is re-checked against the file on disk, so an image edited elsewhere is never served stale. Crop tools: an eight-handle selection with a live readout of size, position and proportions -- double-click inside it to crop to it (or use the button), and Ctrl+Z puts it back either way; lockable to 1:1, 4:3, 3:2, 16:9 or 5:4; auto-crop finds the picture inside a plain border and offers the rectangle for approval. Adjustments: brightness, contrast, gamma, saturation and sharpening, previewed live, with transparency preserved. Resize by pixels or percentage with quick fits for a 1920 / 1280 / 800 long edge. A thumbnail strip of the whole folder, decoded at display size, off by default and toggled with F3 -- it reads nothing while it is closed, so opening a single picture never waits on the rest of the folder. A properties panel -- camera, lens, exposure, aperture, ISO, focal length, flash, date taken and GPS coordinates -- that docks left or right or floats, and follows you through the folder. Batch: the same change to many pictures at once (resize, convert, rotate, rename), every rename shown first, results written to a folder of their own, originals never touched. Light and dark themes, every colour pair measured to the WCAG contrast standard.

The formats it reads and writes

Reads: png jpg jpeg jfif webp bmp ico tif tiff gif ppm pgm pbm tga svg svgz xpm xbm icns cur wbmp j2k jp2, and PDF pages. Writes: png jpg jpeg webp bmp ico tif tiff ppm pgm pbm xpm xbm j2k jp2. Everything those need travels inside the AppImage, TIFF included -- nothing has to be installed on the machine for any of them.

Saving, and why it asks

Editing never overwrites the file that was opened unless you ask twice. Save As is the ordinary path and suggests a new name. Save on top of the original asks first, and says what it is about to do and where -- a program that can crop a photograph in one keystroke should not be able to destroy the only copy of it in the same one. A lossless crop or rotation always writes a new file on purpose: the operation reads the original and writes its replacement, and doing that in place would mean the one copy of the photograph is briefly the output of a program that might fail.

What it does not do, plainly

No camera raw -- CR2, NEF, ARW and the rest are not read; this is a program for photographs after they have been developed, not before. No layers, masks, curves or levels -- brightness, contrast, gamma, saturation and sharpening are the whole of the adjustment. An animated GIF shows its first frame; it is not a player. A lossless crop lands on the block grid by definition; cropping to an exact pixel means accepting a re-encode, which the program offers and labels rather than hiding. Metadata is read, not written -- carried across a lossless crop or rotation untouched, but the program does not edit tags.

Running it -- nothing to install

Download the AppImage, make it executable, run it -- optionally with a file or a folder to open (./FlashPhoto.AppImage ~/Pictures). On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./FlashPhoto.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/FlashPhoto/FlashPhoto.save and are written when the program closes; deleting that file puts everything back as it started.

Prefer the package manager? FlashPhoto is also an installable LinuxDoors package — flashphoto — which uses the copy of Python and Qt already on your system instead of carrying its own.

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.

=============================================================================== FlashPhoto — for the LinuxDoors AppImage Store =============================================================================== Name: FlashPhoto Price: $0.00 Maker: LinuxDoors Created: September 7, 2026 Kind: A LinuxDoors AppImage Software Product File: FlashPhoto.AppImage Size: 60M (single file, download and run) SHA256: 70b5bf6713cef5e025aa79c44a043a269142cc04d1c220419143172bc01d3c4b CARD DESCRIPTION (the one line the store shows under the name) View, crop and adjust photographs — and crop a JPEG without re-encoding it. ------------------------------------------------------------------------------- DESCRIPTION ------------------------------------------------------------------------------- A photograph viewer and editor for the everyday work: open a folder, move through it with the arrow keys, throw out the ones that did not come off, crop the ones that did, resize a few for a website, convert a folder to another format. It is not a darkroom and does not pretend to be one. There are no layers, no masks and no history brush, because the moment a program carries those it stops being the thing you open to glance at a picture. What it is instead is quick, and careful with the original: a picture appears the moment you press the key, and a crop on a JPEG does not damage the photograph. 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. ------------------------------------------------------------------------------- Build 2 — the folder strip is off until you ask for it ------------------------------------------------------------------------------- Opening one photograph should not send the program off to read every other photograph in the folder first. So the folder thumbnail strip now starts hidden, and reads nothing off the disk while it is hidden — it only holds the list of what is there. Press F3 and it walks the folder and decodes the thumbnails then, and only then. Press F3 again and it stops, rather than leaving the reading going on out of sight. On a folder of large or raw-sized photographs that is the difference between a picture appearing at once and a wait while a hundred others are read. Whether the strip is open is remembered between runs, so if you keep it open it opens with it. Nothing else about the program changed — same viewer, same lossless JPEG cropping, same crop, adjust, resize and batch, same formats. ------------------------------------------------------------------------------- Lossless JPEG cropping ------------------------------------------------------------------------------- A JPEG is not stored as pixels. It is stored as compressed blocks, and the compression is lossy: some of the original detail went the moment the camera wrote the file. That is a bargain most people are happy with, once. The trouble is what happens next. Open a JPEG in an ordinary editor, crop it, and save: the program decodes those blocks into pixels, discards the blocks, and compresses the result again from scratch. A little more detail goes each time. Crop the same photograph five times over a year and it shows — soft edges, blotches around lettering, banding in a clear sky. This is generation loss, and none of it is recoverable. FlashPhoto does not work that way. For a crop or a rotation on a JPEG it hands the file to jpegtran, which copies the compressed blocks straight across without ever decoding them. The pixels that remain are bit for bit what they were. Nothing is re-encoded, so nothing is lost, however many times it is done. That is a tested guarantee rather than a claim. Cropping a photograph this way and comparing the result against the same region of the original gives an identical set of bytes, and rotating a photograph four times by ninety degrees returns the file it started as, with its metadata intact. jpegtran travels inside the AppImage, so this works on a machine that has never installed it. ------------------------------------------------------------------------------- The one rule, and why the selection moves ------------------------------------------------------------------------------- Because it is the blocks that are copied, a lossless crop can only fall on a block boundary, and those blocks are 8 or 16 pixels across depending on how the camera wrote the file. So while Lossless is ticked the selection snaps to that grid, and the grid size is read out of the file itself rather than assumed. Zoom past six times and the grid is drawn on the picture, so the snapping is something you can see rather than a rectangle that jumps for no reason. Snapping only ever grows the selection: a crop that quietly lost a strip you had included would be worse than one that keeps a few pixels you had not. Untick Lossless and any pixel is available, at the cost of a re-encode. The program says plainly which of the two you are getting. ------------------------------------------------------------------------------- What is in the program ------------------------------------------------------------------------------- THE VIEWER Open a file or a whole folder; the arrow keys move through it. Fit to window, actual size, or anywhere between with the wheel — and the wheel zoom is fine grained rather than jumping in quarters, so a magnification can be settled on rather than overshot. Drag to pan, double-click to switch between fit and 1:1, F11 for fullscreen, drop a file on the window to open it. THE WHEEL, EITHER WAY ROUND By default the wheel zooms and Control moves through the folder. One setting swaps them. Whichever is chosen, the other stays one key away. THE NEXT PICTURE IS ALREADY LOADED While a picture is on screen the program is decoding the next one, the previous one, and one further ahead in the direction of travel. Moving to a neighbour then takes about three milliseconds instead of sixty on a twelve-megapixel photograph — some twenty times quicker, and the difference between a viewer that feels instant and one that does not. What it holds is capped, and every held picture is checked against the file on disk before use, so a photograph edited by something else while the program is open is never served stale. CROP TOOLS A selection with eight handles, movable and resizable, with a live readout of size, position and proportions. Double-click inside the selection to crop to it, or use the button; either way Ctrl+Z puts it back. The shape can be locked to 1:1, 4:3, 3:2, 16:9 or 5:4, or left free. Auto-crop finds the picture inside a plain border and offers the rectangle for approval rather than acting on its own. ADJUSTMENTS Brightness, contrast, gamma, saturation and sharpening, previewed as the slider moves. Transparency survives all of them, so a PNG with a transparent background still has one afterwards. RESIZE By pixels or by percentage, proportions kept unless told otherwise, with quick settings for fitting the long edge to 1920, 1280 or 800 pixels. THE FOLDER, AS THUMBNAILS A strip along the bottom showing every picture in the folder, with a size slider. Thumbnails are decoded at the size they are displayed at, so a twenty-four-megapixel photograph costs about what a small one does. It is off until you ask for it, on F3, and it reads nothing while it is off. Opening one photograph does not send the program away to read every other photograph in the folder first, and turning the strip off again stops the reading rather than leaving it running out of sight. PROPERTIES Everything the file says about itself, in three tabs: what the file is, how the photograph was taken, and every metadata tag it carries without interpretation. Camera and lens, exposure time, aperture, ISO, focal length, flash, metering, the date taken, and the coordinates where the camera recorded them, with a button to copy them. The panel docks on the left or the right, or comes away as a window of its own, and it follows you as you move through the folder. BATCH The same change to many pictures at once — resize, convert, rotate, rename — with every rename shown before anything happens. Results go to a folder of their own, and a name already in use is given a number rather than replacing what is there. The pictures you started with are never written to. LIGHT AND DARK Both, switched with one key, every colour pair in both themes measured against the WCAG contrast standard rather than judged by eye. ------------------------------------------------------------------------------- The formats it reads and writes ------------------------------------------------------------------------------- Reads: png jpg jpeg jfif webp bmp ico tif tiff gif ppm pgm pbm tga svg svgz xpm xbm icns cur wbmp j2k jp2, and PDF pages Writes: png jpg jpeg webp bmp ico tif tiff ppm pgm pbm xpm xbm j2k jp2 Everything those need travels inside the AppImage, TIFF included. Nothing has to be installed on the machine for any of them. ------------------------------------------------------------------------------- Saving, and why it asks ------------------------------------------------------------------------------- Editing never overwrites the file that was opened unless you ask twice. Save As is the ordinary path and suggests a new name. Save on top of the original asks first, and says what it is about to do and where. A program that can crop a photograph in one keystroke should not be able to destroy the only copy of it in the same one. A lossless crop or rotation always writes a new file, deliberately: the operation reads the original and writes its replacement, and doing that on top of the original would mean the one copy of the photograph is briefly the output of a program that might fail. ------------------------------------------------------------------------------- What it does not do, plainly ------------------------------------------------------------------------------- It is better to know the edges of a program before downloading it. - No camera raw. CR2, NEF, ARW and the rest are not read; this is a program for the photographs after they have been developed, not before. - No layers, masks, curves or levels. Brightness, contrast, gamma, saturation and sharpening are the whole of the adjustment. - An animated GIF shows its first frame. It is not a player. - A lossless crop lands on the block grid, by definition. Cropping to an exact pixel means accepting a re-encode, which the program offers and labels rather than hiding. - Metadata is read, not written. It is carried across a lossless crop or rotation untouched, but the program does not edit tags. ------------------------------------------------------------------------------- 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, Pillow for the formats Qt has no plugin for, and jpegtran for the lossless work. Nothing is installed on the machine and nothing on the machine is disturbed. ------------------------------------------------------------------------------- Running it — nothing to install ------------------------------------------------------------------------------- chmod +x FlashPhoto.AppImage ./FlashPhoto.AppImage Or give it something to open: ./FlashPhoto.AppImage photograph.jpg ./FlashPhoto.AppImage ~/Pictures On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./FlashPhoto.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/FlashPhoto/FlashPhoto.save and are written when the program closes. Deleting that file puts everything back as it started.
FlashZip icon

FlashZip$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

Open, extract and make archives — .7z, .zip, tarballs and more.

by LinuxDoors.com · created September 7, 2026

A LinuxDoors AppImage Software Product

↓  Download FlashZip.AppImage icon (.png) 56.8 MB  ·  15 downloads  ·  single file, download and run
SHA256 474e03cfc905936f7c522435352f1961d4ef035be5bcbf06a95518cdb01f56ae
An archive manager. Open a .7z, a .zip or a .tar.gz, look at what is inside, take things out, put things in, and make new ones. The archive is the window: open one and its contents fill the view, with the folders inside it walked the way folders are walked anywhere else. Everything it needs travels with it -- no separate archiver to install first, no package to add before .7z works, and nothing on the machine for it to disagree with, which is the point of shipping it as one file.
chmod +x FlashZip.AppImage ./FlashZip.AppImage ./FlashZip.AppImage backup.7z # open an archive # on LinuxDoors (no FUSE): ./FlashZip.AppImage --appimage-extract-and-run # or via linuxdoors-run-appimage, which unpacks it once rather than on every launch
LinuxDoors original. Built by LinuxDoors.com -- 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, and its own compression engine, so every format works on a computer with nothing installed on it. The zip and tarball families are handled inside the program itself, which is why progress is counted file by file and Stop stops when you press it.

The formats it makes -- and the ones it only opens

Makes: .7z (the strongest of these, and the one to use for a backup), .zip (the one every computer on earth can already open), .tar.gz (the tarball everything on Linux understands), .tar.bz2, .tar.xz, .tar.zst (nearly as small as xz and far quicker -- a good default now), plain .tar for contents that are already compressed, and a single file compressed on its own as .gz / .bz2 / .xz / .zst. Compression runs from Store (packs without compressing at all) to Ultra, and an archive can be split into pieces of a chosen size -- 100 MB, a CD, a DVD -- for carrying somewhere that will not take one large file. Opens and unpacks, but does not create: .rar including the newer RAR5 form, .iso disc images, and .cab / .deb / .rpm packages. A .rar cannot be written here because the compression is proprietary and the only program that writes it belongs to the company that owns the format; opening and unpacking one is a different matter and works out of the box.

Passwords

AES-256, on .7z and .zip. The file names can be encrypted too, and that matters more than it sounds -- an encrypted archive whose file list is readable still tells anyone holding it that you keep tax_return_2026.pdf and a folder called divorce. Ticking “Hide the file names as well” puts the list inside the encryption, and the archive cannot be listed at all without the password. Nothing about a password is written down: it is held for as long as the archive is open and forgotten when it closes.

Being careful with your files

Three things it will not do, by design. It will not write outside the folder you chose: an archive can contain a member called ../../.ssh/authorized_keys, and both tar and zip will obey that unless somebody checks -- this checks, refuses such an archive with the offending name shown, and writes nothing at all. It will not replace something without asking: making an archive over one that already exists asks first, and extracting tells you where things are going before they go. And it will not leave half an archive behind: removing files from a compressed archive means rewriting it (no compressed format can cut a piece out of the middle), so that rewrite goes to a temporary file beside the original and is moved into place only when it has finished -- an interrupted delete cannot leave half an archive where a backup used to be.

What is in the program

The list: name, size, packed size, ratio, date and checksum for everything in the archive, sorted by any column, with folders that open like folders and a padlock on anything encrypted. Walking a large archive and taking one file out of it is the ordinary case, not a special one -- open the folders down to what you want, select it, press Extract, and only that file is written; one file out of a seventy-file archive takes about four milliseconds. In a solid archive the files are compressed as a single stream, so there is no packed size for one file in it; those rows say “solid” rather than pinning the whole block's size on whichever file carried the figure. Add and remove: put more files into an existing archive, or take files out, without rebuilding it by hand. Test: read every byte back out and confirm nothing is damaged, before finding out the hard way that the backup was no good. Information: what the archive is, how many files, how much it saved, whether it is encrypted. Long jobs run in the background with a progress bar and a Stop, so the window never freezes and stopping stops between files rather than part-way through writing one. Light and dark themes, every colour pair measured to the WCAG contrast standard.

On the command line

The same program, without a window, so it is as useful in a script as it is on a desktop -- the work is done by the same code the buttons use, including the refusal to write outside the chosen folder. FlashZip.AppImage -l backup.7z lists what is inside; -x backup.7z -o ~/restore extracts all of it; -x backup.7z docs/notes.txt -o ~/here pulls just that one file (or a folder name for just that folder); -t backup.7z checks it is not damaged; -a new.tar.xz docs/ notes.txt --level 9 makes one; -x secret.7z -p 'the password' for an encrypted archive; --formats reports what this machine can do. It reports properly: 0 when it worked, 1 when the archive was the problem, 2 when the command was, and 3 when a password is needed or wrong -- so a script can tell the difference without reading the text.

Running it -- nothing to install

Download the AppImage, make it executable, run it -- optionally with an archive to open (./FlashZip.AppImage backup.7z). On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./FlashZip.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/FlashZip/FlashZip.save and are written when the program closes; deleting that file puts everything back as it started.

Prefer the package manager? FlashZip is also an installable LinuxDoors package — flashzip — which uses the copy of Python and Qt already on your system instead of carrying its own.

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.

=============================================================================== FlashZip — for the LinuxDoors AppImage Store =============================================================================== Name: FlashZip Price: $0.00 Maker: Stan Switaj Created: September 7, 2026 Kind: A LinuxDoors AppImage Software Product File: FlashZip.AppImage Size: 55M (single file, download and run) SHA256: 474e03cfc905936f7c522435352f1961d4ef035be5bcbf06a95518cdb01f56ae CARD DESCRIPTION (the one line the store shows under the name) Open, extract and make archives — .7z, .zip, tarballs and more. ------------------------------------------------------------------------------- DESCRIPTION ------------------------------------------------------------------------------- An archive manager. Open a .7z, a .zip or a .tar.gz, look at what is inside, take things out, put things in, and make new ones. The archive is the window. Open one and its contents fill the view, with the folders inside it walked the way folders are walked anywhere else, and the things you do to an archive along the top where they can be found rather than hidden in a menu. Everything it needs travels with it. There is no separate archiver to install first, no package to add before .7z works, 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 formats it makes ------------------------------------------------------------------------------- .7z the strongest of these, and the one to use for a backup .zip the one every computer on earth can already open .tar.gz the tarball everything on Linux understands .tar.bz2 smaller than gzip, slower to make .tar.xz smaller still, slower again .tar.zst nearly as small as xz and far quicker — a good default now .tar no compression, for when the contents are already compressed .gz .bz2 .xz .zst a single file, compressed on its own Compression runs from Store, which packs without compressing at all, to Ultra. An archive can be split into pieces of a chosen size — 100 MB, a CD, a DVD — for carrying somewhere that will not take one large file. The formats it opens as well .rar opens and unpacks, including the newer RAR5 form .iso disc images .cab .deb .rpm packages, unpacked like any other archive A .rar cannot be created here. The compression is proprietary and the only program that writes it belongs to the company that owns the format; it is not free software and is not included. Opening and unpacking one is a different matter and works out of the box. ------------------------------------------------------------------------------- Passwords ------------------------------------------------------------------------------- AES-256, on .7z and .zip. The file names can be encrypted too, and that matters more than it sounds. An encrypted archive whose file list is readable still tells anyone holding it that you keep tax_return_2026.pdf and a folder called divorce. Ticking "Hide the file names as well" puts the list inside the encryption, and the archive cannot be listed at all without the password. Nothing about a password is written down. It is held for as long as the archive is open and forgotten when it closes. ------------------------------------------------------------------------------- Being careful with your files ------------------------------------------------------------------------------- Three things it will not do, by design. IT WILL NOT WRITE OUTSIDE THE FOLDER YOU CHOSE. An archive can contain a member called ../../.ssh/authorized_keys, and both tar and zip will obey that unless somebody checks. This checks. Such an archive is refused with the offending name shown, and nothing is written at all. IT WILL NOT REPLACE SOMETHING WITHOUT ASKING. Making an archive over one that already exists asks first. Extracting tells you where things are going before they go. IT WILL NOT LEAVE HALF AN ARCHIVE BEHIND. Removing files from a compressed archive means writing it again, because no compressed format can cut a piece out of the middle. That rewrite goes to a temporary file beside the original and is moved into place only when it has finished — so an interrupted delete cannot leave half an archive where a backup used to be. ------------------------------------------------------------------------------- What is in the program ------------------------------------------------------------------------------- THE LIST Name, size, packed size, ratio, date and checksum for everything in the archive, sorted by any column. Folders inside the archive open like folders. A padlock marks anything encrypted. Walking a large archive and taking one file out of it is the ordinary case, not a special one: open the folders down to what you want, select it, press Extract, and only that file is written. Nothing else is unpacked along the way — one file out of a seventy-file archive takes about four milliseconds. One detail worth explaining: in a solid archive the files are compressed as a single stream, so there is no such thing as the packed size of one file in it. Those rows say "solid" rather than pinning the whole block's size on whichever file happened to carry the figure — which is where a six-byte note ends up described as 195 KB at a ratio of 33,000%. ADD AND REMOVE Put more files into an archive that already exists, or take files out of one, without rebuilding it by hand. TEST Read every byte back out and confirm nothing is damaged, before you find out the hard way that the backup was no good. INFORMATION What the archive is, how many files, how much it saved, whether it is encrypted. IT KEEPS WORKING WHILE IT WORKS Long jobs run in the background with a progress bar and a Stop, so the window never freezes, and stopping stops between files rather than part-way through writing one. 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. ------------------------------------------------------------------------------- On the command line ------------------------------------------------------------------------------- The same program, without a window, so it is as useful in a script as it is on a desktop. The work is done by the same code the buttons use, including the refusal to write outside the chosen folder. FlashZip.AppImage -l backup.7z list what is inside FlashZip.AppImage -x backup.7z -o ~/restore extract all of it FlashZip.AppImage -x backup.7z docs/notes.txt -o ~/here just that one file FlashZip.AppImage -x backup.7z photos -o ~/here just that one folder FlashZip.AppImage -t backup.7z check it is not damaged FlashZip.AppImage -a new.tar.xz docs/ notes.txt --level 9 FlashZip.AppImage -x secret.7z -p 'the password' FlashZip.AppImage --formats what this machine can do It reports properly: 0 when it worked, 1 when the archive was the problem, 2 when the command was, and 3 when a password is needed or wrong — so a script can tell the difference without reading the text. ------------------------------------------------------------------------------- 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, and its own compression engine, so every format above works on a computer with nothing installed on it. The zip and tarball families are handled inside the program itself, which is why progress is counted file by file and Stop stops when you press it. ------------------------------------------------------------------------------- Running it — nothing to install ------------------------------------------------------------------------------- chmod +x FlashZip.AppImage ./FlashZip.AppImage Or give it an archive to open: ./FlashZip.AppImage backup.7z On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./FlashZip.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/FlashZip/FlashZip.save and are written when the program closes. Deleting that file puts everything back as it started.
LinuxProPaintShop icon

LinuxProPaintShop$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

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

by LinuxDoors.com · created September 7, 2026

A LinuxDoors AppImage Software Product

↓  Download LinuxProPaintShop.AppImage icon (.png) 74.8 MB  ·  14 downloads  ·  single file, download and run
SHA256 27b5bfffb46271ecca4d6b6566f310b6768c680ea0382eb395aa5df3d15f6e20
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, the middle button drags the view about, and the tools sit down the left where a hand expects them. Everything it needs travels with it -- 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.
chmod +x LinuxProPaintShop.AppImage ./LinuxProPaintShop.AppImage ./LinuxProPaintShop.AppImage holiday.jpg # open a picture # on LinuxDoors (no FUSE): ./LinuxProPaintShop.AppImage --appimage-extract-and-run # or via linuxdoors-run-appimage, which unpacks it once rather than on every launch
LinuxDoors original. Built by LinuxDoors.com -- 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 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.

The fourteen tools

Move (move the layer under the pointer), Rectangle select, Ellipse select, Freehand select, Magic wand (select everything of a similar colour), Brush (size, hardness, opacity), Eraser (rub out, back to transparent), Paint bucket (fill an area, with a tolerance you set), Gradient (drag one 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 (words on their own layer or the current one), Shapes (rectangle, ellipse or line, filled or outlined), and 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 -- and every adjustment and every filter puts the transparency back exactly as it found it, 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; and Auto levels, which stretches each channel so the darkest pixel is black and the lightest white -- 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, not 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; and what is left is genuine arithmetic across the colour channels, which is what the bundled numpy is for -- emboss on a 1600x1200 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 Qt's 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 is .lpsp: the whole thing, layers and all, as a zip holding one PNG per layer and a small text file describing the stack -- nothing about it is secret or trapped, unzip one and the layers are ordinary PNGs, openable by anything.

Unlimited undo and redo

Everything that changes the picture can be taken back, 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, 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 later from Edit > Undo steps (lowering the number takes effect at once). It is affordable because of how a step is stored: a step holds the layers themselves rather than a description of what changed, so 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, and 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 1600x1200 photograph come to 255 MB rather than the 1.4 GB the same steps stored plainly would take, with every pixel back where it should be. Each step is named, dragging a slider is one step and not sixty, and closing a picture with unsaved changes asks first.

What else is in the program

The view behaves: zoom to fit, zoom to actual size, free zoom on the wheel in fine steps rather than doubling, and after a crop the result is centred rather than left hanging off a corner. The panels move: tools, layers and colours are dockable -- either side, stacked, or floated off as their own windows. It remembers: the theme, brush size / hardness / 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 themes, switched with one key, every colour pair in both themes measured against the WCAG contrast standard -- the program will tell you so itself with --check-contrast.

On the command line

LinuxProPaintShop.AppImage picture.jpg opens that picture; --what-works reports what this machine can do; --check-contrast prints the contrast report; --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.

Running it -- nothing to install

Download the AppImage, make it executable, run it -- optionally with 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.

Prefer the package manager? LinuxProPaintShop is also an installable LinuxDoors package — linuxpropaintshop — which uses the copy of Python and Qt already on your system instead of carrying its own.

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.

=============================================================================== 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.
Kate icon

Kate$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

KDE's advanced text editor -- multi-document, project-aware, with an LSP client and a built-in terminal.

by KDE Community · mirrored September 11, 2026

↓  Download Kate.AppImage icon (.png) Version 26.11.70 development snapshot (KDE CI master build 12373, built 2026-09-10)  ·  228.9 MB  ·  29 downloads  ·  single file, download and run
SHA256 48dde6515aca42d29860b584f03e0fb0ed15d328e130522f21fda61c49c8d337
Kate is the full-size editor from KDE: many documents at once with split views and saved sessions, syntax highlighting for well over 300 languages, code folding, multiple cursors and column selection, a regular-expression find-and-replace that reaches across every file in a folder, an optional vi input mode, and a plugin set that turns it into a light IDE -- a project browser that follows your git checkout, a Language Server client for completion and go-to-definition, an embedded terminal, and a build panel. It is the same editing engine (KTextEditor) that KDevelop is built on.
chmod +x Kate.AppImage ./Kate.AppImage
Mirrored, unmodified. This is KDE's own AppImage from cdn.kde.org, offered here exactly as they build it -- byte for byte, not repackaged. The SHA-256 above is of that file, so you can verify it against KDE's. LinuxDoors mirrors it only so you can get it from the same place as the rest of the system.
Upstream download: https://cdn.kde.org/ci-builds/utilities/kate/master/linux/

Editing, in depth

Open as many documents as you like, arranged in horizontal or vertical splits, and keep whole working sets as named sessions you can reopen later. Syntax highlighting covers 300-plus languages and formats; code folding, auto-indent, bracket matching and word completion come with it. Select in columns, place several cursors at once, and use a search-and-replace that speaks regular expressions and can run over every file under a directory in one pass. Prefer modal editing? Turn on the vi input mode.

Close to an IDE, when you want it

The bundled plugins do the IDE-shaped work without the weight. The project plugin notices a git, svn or mercurial checkout and gives you a file tree and a fast cross-file search scoped to it. The LSP client connects to language servers for completion, diagnostics, go-to-definition and symbol search in C/C++, Python, Rust, Go and many more. There is a terminal panel docked in the window, a build panel that parses compiler output into clickable errors, and Git integration for stage/commit/blame.

Mirrored, not repackaged

LinuxDoors did not build this and does not modify it. It is pulled straight from KDE's continuous-integration build server (cdn.kde.org) and served here unchanged, with its SHA-256 published so you can check it matches KDE's. The authoritative home for Kate, its source, its handbook and its issue tracker is kate-editor.org. If you would rather get it from KDE directly, that link is on the card.

Running it -- nothing to install

Download the AppImage, mark it executable, run it. Everything it needs -- Qt, the KDE Frameworks, the highlighting definitions -- travels inside the single file. Your settings live under ~/.config and ~/.local/share like any other Kate. To pin it to your panel or menu, most desktops let you right-click the running window, or you can use a tool like AppImageLauncher; LinuxDoors' own menu integration is on the roadmap for the Store.

KDE's AppImage carries Qt and the KDE Frameworks inside it, so it runs on most current Linux distributions that have FUSE (or with ./Kate.AppImage --appimage-extract). Built for x86-64.

LinuxMovieMaker icon

LinuxMovieMaker$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

Make a film from your clips, photographs, titles and music.

by LinuxDoors.com · created September 7, 2026

A LinuxDoors AppImage Software Product

↓  Download LinuxMovieMaker.AppImage icon (.png) Version 1.0 (build 2)  ·  101.4 MB  ·  16 downloads  ·  single file, download and run
SHA256 cd1b7af630eb4456156a09657f30812e8fd21c5fb6ea6e015970bf2b4eefb560
A video editor for making something watchable out of what you already have. Drop in the clips off a phone, the photographs from a holiday, a song and a few words spoken over the top, put them in the order you want, and make a film of it. The window is laid out the way the work goes: what you brought in sits down the left, the film plays in the middle, whatever you clicked on has its settings down the right, and along the bottom are four lanes -- Pictures, Titles, Music and Narration. Drag a clip to move it, drag its end to trim it, drop a transition between two clips; everything can be taken back. Everything it needs travels with it -- no ffmpeg to install first, no codec pack, no Python or Qt to match.
chmod +x LinuxMovieMaker.AppImage ./LinuxMovieMaker.AppImage ./LinuxMovieMaker.AppImage holiday.lmm # open a film (or a clip to start one) # on LinuxDoors (no FUSE): ./LinuxMovieMaker.AppImage --appimage-extract-and-run # or via linuxdoors-run-appimage, which unpacks it once rather than on every launch
LinuxDoors original. Built by LinuxDoors.com -- 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, and its own statically built ffmpeg and ffprobe, so every format opens and every format is written on a computer with nothing installed on it. The timeline, the compositor, the effects, the transitions and the titles are all the program's own code. One honest note: hearing the sound while you edit uses the machine's own media libraries, so on a computer with no ffmpeg libraries installed the editing is silent -- nothing else changes, the picture, the timeline and the exported film's sound all come from the ffmpeg carried inside, and --what-works says which it found.

Build 2 — a window that stays responsive, and picture/sound in step

Build 2 moves the frame-composing work off the thread that draws the window. Scrubbing and dragging the ruler stay smooth while ffmpeg decodes -- the window no longer freezes waiting for a frame, and only the latest position you asked for is worked on, so it cannot fall behind a fast drag. Playback composes frames ahead of the playhead into a small buffer and shows them as the clock reaches them; on a machine that cannot decode in real time the picture drops frames while the sound and the clock stay true, rather than the whole window seizing up. Picture and sound now stay together: during playback the picture is timed from the sound's own position instead of a free-running clock, which fixes the sound trailing the picture across a cut or a transition. Pressing Play from a moved playhead starts from there and no longer snaps back to the beginning -- the sound is seeked to that point once it has finished loading (an earlier seek was silently ignored), and until the sound reaches the point the picture waits rather than following the sound backwards. The export composes frames across the machine's cores (one per core, up to six; set LMM_EXPORT_WORKERS=1 for the old single-threaded path) while still writing them into ffmpeg strictly in order -- the file it produces is byte-for-byte the one the single-threaded export made. And the build now carries the Kerberos libraries Qt's media stack needs, with their version links in place, so the sound while editing works on systems that do not ship them -- LinuxDoors among them -- not only on Debian- and Ubuntu-type machines.

The preview is the film

This is where video editors usually let you down. Every frame you see while dragging the playhead about is composed by the same code that composes the exported file -- the same decoder, the same effects, the same transitions, the same titles, in the same order. There is no second, faster, rougher preview path that can disagree with what finally comes out; the export takes those frames and writes them straight into ffmpeg as raw pixels. That is a measurable claim, so it was measured: 142 frames of an exported film compared against what the preview composes at the same moments came to an average difference of 1.82 levels out of 255 -- which is H.264's own compression, not the composing. What you gain is that a fade lands where you put it, a title sits where you left it, and a transition looks in the file exactly as it looked on screen.

What is on the lanes

Pictures: video clips and photographs, one after another, each with its own length, its own start point inside the original file, its own speed from a quarter to eight times, its own volume and its own effect; a photograph gets however many seconds you say. Titles: words on the screen, over the picture or on a card of their own -- eight styles, three positions, and six ways of arriving including rolling credits. Music: one song under the whole film, with its own volume and a fade in and out. Narration: speech over the top, kept separate from the music so the two can be balanced against each other.

Effects and transitions

Twenty effects: fade in, fade out, fade both ends, black and white, sepia, old film, brighter, darker, more contrast, warmer, cooler, soft focus, pixelate, vignette, mirror, flip, rotate left, rotate right, and a slow zoom in or out -- which is what stops a photograph looking like a photograph. Sixteen transitions: crossfade, fade through black, flash through white, wipe left/right/up/down, slide in from any of the four sides, circle opening, circle closing, blinds, checkerboard and dissolve -- a transition eats into both clips rather than being added between them, so putting one in does not make the film longer than you expected. And Make it for me: one button that builds a whole film out of everything you brought in -- the clips in order, a different transition between each pair, a slow zoom on every still, an opening title with today's date, The End at the end, and the music underneath trimmed to the length of the pictures -- then change whatever you like.

Unlimited undo and redo

Every change can be taken back, and there is no ceiling on how far. That is affordable because of what a step is: the undo history holds the film described in words -- which clips, in what order, with which effects and how loud -- and not one frame of your video. A step comes to about seven hundred bytes; four hundred changes to a film came to 287 KB, and all four hundred were taken back and put forward again with everything exactly where it was. So it keeps every step by default; if you would rather it did not, Edit then Undo steps lets you stop at a number, and change your mind again at any time.

The formats

Opens -- video: mp4 mov mkv avi webm m4v mpg mpeg wmv flv ogv 3gp ts mts m2ts vob asf divx; photos: jpg jpeg png bmp gif webp tif tiff heic avif ppm pgm tga ico; sound: mp3 wav aac m4a flac ogg oga opus wma aiff aif ac3 amr. Writes: MP4 at 1080p / 720p / 480p or the size of the film itself; MP4 in H.265 for a smaller file of the same quality; WebM in VP9 for a web page; MKV in H.264; MOV in ProRes for taking into another editor; animated GIF with a palette built from the film so it does not band; and MP3 of the sound on its own. Its own file is .lmm -- a zip holding one readable JSON describing the film. It points at your video where it already lives rather than copying it, so a project file is a few kilobytes rather than a few gigabytes; if something has moved since, it says which, and everything else still works.

Being careful with your work

It will not leave half a film behind: stopping an export removes the part-written file rather than leaving something that looks like a finished film and is not. It asks before writing over anything -- both the film file and the exported movie. And it tells you what is missing before it starts: if a clip has been moved or deleted since you last opened the project, it says which ones and asks whether to go on, rather than quietly exporting several seconds of black. Light and dark themes, switched with one key, every colour pair in both themes measured against the WCAG contrast standard -- the program will tell you so itself with --check-contrast.

On the command line

LinuxMovieMaker.AppImage holiday.lmm opens that film; a bare clip.mp4 starts a film from that clip; --what-works reports what this machine can do; --check-contrast prints the contrast report; --version. --what-works is the honest one -- it says what is present on the machine and what each thing changes, including whether editing audio will be silent for want of the machine's own ffmpeg libraries (the picture, timeline and exported sound are unaffected -- those use the ffmpeg carried inside).

Running it -- nothing to install

Download the AppImage, make it executable, run it -- optionally with a .lmm project or a clip to start from. On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./LinuxMovieMaker.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/LinuxMovieMaker/LinuxMovieMaker.save and are written when the program closes; deleting that file puts everything back as it started.

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.

=============================================================================== LinuxMovieMaker — for the LinuxDoors AppImage Store =============================================================================== Name: LinuxMovieMaker Price: $0.00 Maker: Stan Switaj Created: September 7, 2026 Kind: A LinuxDoors AppImage Software Product File: LinuxMovieMaker.AppImage Size: 97M (single file, download and run) SHA256: cd1b7af630eb4456156a09657f30812e8fd21c5fb6ea6e015970bf2b4eefb560 CARD DESCRIPTION (the one line the store shows under the name) Make a film from your clips, photographs, titles and music. ------------------------------------------------------------------------------- DESCRIPTION ------------------------------------------------------------------------------- A video editor for making something watchable out of what you already have. Drop in the clips off a phone, the photographs from a holiday, a song and a few words spoken over the top, put them in the order you want, and make a film of it. The window is laid out the way the work goes. What you have brought in sits down the left. The film plays in the middle. Whatever you have clicked on has its own settings down the right — how long, how fast, how loud, which effect. Along the bottom are four lanes: Pictures, Titles, Music and Narration. Drag a clip to move it. Drag its end to trim it. Drop a transition between two clips and it appears between them on the lane. Everything can be taken back. Everything it needs travels with it. There is no ffmpeg to install first, no codec pack, no Python or Qt to match — 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. ------------------------------------------------------------------------------- Build 2 -- a window that stays with you ------------------------------------------------------------------------------- The frame under the playhead is now composed on a background thread, not the one drawing the window. Dragging the ruler and scrubbing through a clip stay smooth while ffmpeg decodes -- the window never freezes waiting for a frame, and only the newest position asked for is worked on, so it cannot fall behind a fast drag. Playback runs the same way: frames are composed ahead of the playhead into a small buffer and shown as the clock reaches them. If a machine cannot decode in real time the picture drops frames while the sound and the clock stay true, rather than the whole window seizing up. The picture is timed from the sound itself during playback now, not a free clock -- which fixes the sound lagging the picture across a cut or a transition. They re-sync on their own once the mix starts. The export composes frames across the machine's cores (one per core, up to six; set LMM_EXPORT_WORKERS=1 for the old single-threaded path) while still writing them into ffmpeg strictly in order. The file that comes out is byte-for-byte the one the single-threaded export made -- nothing about how a frame looks has changed. ------------------------------------------------------------------------------- The preview is the film ------------------------------------------------------------------------------- This is the part worth understanding, because it is where video editors usually let you down. Every frame you see while dragging the playhead about is composed by the same code that composes the exported file. The same decoder, the same effects, the same transitions, the same titles, in the same order. There is no second, faster, rougher preview path that can disagree with what finally comes out. The export takes those frames and writes them straight into ffmpeg as raw pixels. That is a measurable claim, so it was measured: 142 frames of an exported film compared against what the preview composes at the same moments came to an average difference of 1.82 levels out of 255 — which is H.264's own compression, not the composing. What you gain is that a fade lands where you put it, a title sits where you left it, and a transition looks in the file exactly as it looked on screen. ------------------------------------------------------------------------------- What is on the lanes ------------------------------------------------------------------------------- PICTURES Video clips and photographs, one after another. Each has its own length, its own start point inside the original file, its own speed from a quarter to eight times, its own volume, and its own effect. A photograph gets however many seconds you say. TITLES Words on the screen, either over the picture or on a card of their own. Eight styles, three positions, and six ways of arriving including rolling credits. MUSIC One song under the whole film, with its own volume and a fade in and out. NARRATION Speech over the top, kept separate from the music so the two can be balanced against each other. ------------------------------------------------------------------------------- Effects and transitions ------------------------------------------------------------------------------- TWENTY EFFECTS Fade in, fade out, fade both ends, black and white, sepia, old film, brighter, darker, more contrast, warmer, cooler, soft focus, pixelate, vignette, mirror, flip, rotate left, rotate right, and a slow zoom in or out — which is what stops a photograph looking like a photograph. SIXTEEN TRANSITIONS Crossfade, fade through black, flash through white, wipe left right up and down, slide in from any of the four sides, circle opening, circle closing, blinds, checkerboard and dissolve. A transition eats into both clips rather than being added between them, so putting one in does not make the film longer than you expected. MAKE IT FOR ME One button that builds a whole film out of everything you have brought in: the clips in order, a different transition between each pair, a slow zoom on every still, an opening title with today's date, The End at the end, and the music underneath trimmed to the length of the pictures. Then change whatever you like. ------------------------------------------------------------------------------- Unlimited undo and redo ------------------------------------------------------------------------------- Every change can be taken back, and there is no ceiling on how far. That is affordable because of what a step is. The undo history holds the film described in words — which clips, in what order, with which effects and how loud — and not one frame of your video. A step comes to about seven hundred bytes. Four hundred changes to a film came to 287 KB, and all four hundred were taken back and put forward again with everything exactly where it was. So it keeps every step by default. If you would rather it did not, Edit then Undo steps lets you stop at a number, and change your mind again at any time. ------------------------------------------------------------------------------- The formats ------------------------------------------------------------------------------- IT OPENS video mp4 mov mkv avi webm m4v mpg mpeg wmv flv ogv 3gp ts mts m2ts vob asf divx photos jpg jpeg png bmp gif webp tif tiff heic avif ppm pgm tga ico sound mp3 wav aac m4a flac ogg oga opus wma aiff aif ac3 amr IT WRITES MP4 at 1080p, 720p, 480p or the size of the film itself MP4 in H.265, for a smaller file of the same quality WebM in VP9, for putting on a web page MKV in H.264 MOV in ProRes, for taking into another editor Animated GIF, with a palette built from the film so it does not band MP3 of the sound on its own ITS OWN FILE .lmm — a zip holding one readable JSON describing the film. It points at your video where it already lives rather than copying it, so a project file is a few kilobytes rather than a few gigabytes. If something has moved since, it says which, and everything else still works. ------------------------------------------------------------------------------- Being careful with your work ------------------------------------------------------------------------------- IT WILL NOT LEAVE HALF A FILM BEHIND. Stopping an export removes the part-written file rather than leaving something that looks like a finished film and is not. IT ASKS BEFORE WRITING OVER ANYTHING. Both the film file and the exported movie. IT TELLS YOU WHAT IS MISSING BEFORE IT STARTS. If a clip has been moved or deleted since you last opened the project, it says which ones and asks whether to go on, rather than quietly exporting several seconds of black. 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: LinuxMovieMaker.AppImage --check-contrast ------------------------------------------------------------------------------- On the command line ------------------------------------------------------------------------------- LinuxMovieMaker.AppImage holiday.lmm open that film LinuxMovieMaker.AppImage clip.mp4 start a film from that clip LinuxMovieMaker.AppImage --what-works what this machine can do LinuxMovieMaker.AppImage --check-contrast the contrast report LinuxMovieMaker.AppImage --version ------------------------------------------------------------------------------- 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, and its own statically built ffmpeg and ffprobe, so every format above opens and every format above is written on a computer with nothing installed on it. The timeline, the compositor, the effects, the transitions and the titles are all the program's own code. One honest note. Hearing the sound while you edit uses the machine's own media libraries, so on a computer with no ffmpeg libraries installed the editing is silent. Nothing else changes: the picture, the timeline and the exported film's sound all come from the ffmpeg carried inside, and the program says which it found: LinuxMovieMaker.AppImage --what-works ------------------------------------------------------------------------------- Running it — nothing to install ------------------------------------------------------------------------------- chmod +x LinuxMovieMaker.AppImage ./LinuxMovieMaker.AppImage Or give it something to start from: ./LinuxMovieMaker.AppImage holiday.lmm On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./LinuxMovieMaker.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/LinuxMovieMaker/LinuxMovieMaker.save and are written when the program closes. Deleting that file puts everything back as it started.
LinuxAmp icon

LinuxAmp$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

A music player that whips the llama's backside.

by LinuxDoors.com · created September 12, 2026

A LinuxDoors AppImage Software Product

↓  Download LinuxAmp.AppImage icon (.png) Version 1.0  ·  108.2 MB  ·  20 downloads  ·  single file, download and run
SHA256 9a2ec8c48ddb960ad9e3b0edc8267c035a89cda24d7a771989f317f2d316e250
A small music player with customizable skins, in the old tradition: the transport and the time on it, a playlist you build by dragging things into it, a ten-band equaliser, a library that knows about your files, and a visualiser that moves to whatever is actually coming out of the speakers. It reads what ffmpeg reads -- 31 formats plus internet radio -- and it takes classic .wsz Winamp skins as well as a modern JSON-based skin format of its own for sharp rendering on a big screen. Everything it needs travels with it: its own Python, Qt, numerical library, and ffmpeg.
chmod +x LinuxAmp.AppImage ./LinuxAmp.AppImage ./LinuxAmp.AppImage ~/Music # on a system with no FUSE (including LinuxDoors itself): ./LinuxAmp.AppImage --appimage-extract-and-run
LinuxDoors original. Built by LinuxDoors.com -- 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 a static ffmpeg and ffprobe (7.0.2, GPL v3, run as separate programs rather than linked against -- their licence travels inside the AppImage) so every format works with nothing installed on the host.

It actually looks at the sound

The file is decoded by ffmpeg into plain 16-bit samples, which LinuxAmp then owns: it puts them through the equaliser, works out volume and balance, hands them to the sound card, and keeps the last few thousand samples for the visualiser to read. That's why the visualiser moves to the real waveform rather than animating something plausible, and why the equaliser -- a short-time Fourier transform done a whole block at a time -- is a real one working on the sound itself, not a row of sliders wired to nothing. The equaliser panel draws the resulting response curve as you move the sliders.

31 formats, plus internet radio

mp3, flac, ogg, oga, opus, m4a, aac, wav, wma, aiff, aif, ape, wv, mpc, ac3, dts, amr, au, ra, tta, spx, mka, m4b, caf, voc, w64, 8svx, it, xm, s3m, and mod, plus internet radio streams. Playlists load and save as .m3u, .m3u8, and .pls.

Classic skins, and 13 built-in themes

A .wsz or .zip classic skin (main.bmp, cbuttons.bmp, titlebar.bmp, and the rest, cut from the sheets at the positions the original 1997 layout fixed) works here unmodified, alongside a modern JSON-based skin format that can be any size or shape and stays sharp on a high-resolution screen. Thirteen built-in themes -- Dark, Light, Midnight, Amber, Vaporwave, Forest, Crimson, Ocean, Monochrome, Plum, Paper, Daylight, and Mint -- colour everything that isn't a loaded skin. Every readable colour in every theme is checked against the WCAG 2.1 contrast standard (./LinuxAmp.AppImage --check-contrast reports it); the one deliberate exemption is the Dark theme's face, which keeps Winamp's own original colours exactly rather than correcting the very thing it's imitating.

Covers, visualisers, an equaliser, a library

Album art is read from the file first, then from cover.jpg or folder.jpg beside it, and drawn from the track's own name -- coloured by artist, lettered by album -- when neither exists, so an untagged folder ends up as a shelf of related-looking covers instead of grey squares. Nine visualisers read the real samples on their way to the sound card. A ten-band equaliser with a preamp and ten presets. A library that remembers what you have, what it's called, and what you've played, searchable from one box.

Folds away, and remembers everything

Panels off leaves just the player; off again rolls it up into a 14-pixel strip with the title, the time, and five keys on it, with the frame itself foldable too. The theme, skin, scale, volume, balance, equaliser, playlist, and window layout are all remembered between runs. --what-works on the command line reports honestly what's present on the current machine and what each thing changes, rather than leaving you to find out by pressing something that does nothing.

Prefer the package manager? LinuxAmp is also an installable LinuxDoors package — linuxamp — which uses the copy of Python and Qt already on your system instead of carrying its own.

Written for LinuxDoors, but nothing in it is LinuxDoors-specific -- it runs on Debian- and Ubuntu-type systems, and on any other current x86-64 Linux distribution that can run an AppImage. Use it directly where FUSE is available, or with ./LinuxAmp.AppImage --appimage-extract-and-run where it is not (LinuxDoors' own kernel has no FUSE at all). The first launch is slower while it extracts; later launches from the same extracted copy are fast.

=============================================================================== LinuxAmp — for the LinuxDoors AppImage Store =============================================================================== Name: LinuxAmp Price: $0.00 Author: LinuxDoors.com Created: September 12, 2026 Kind: A LinuxDoors AppImage Software Product File: LinuxAmp.AppImage Size: 104M (single file, download and run) SHA256: 9a2ec8c48ddb960ad9e3b0edc8267c035a89cda24d7a771989f317f2d316e250 CARD DESCRIPTION (the one line the store shows under the name) A music player that whips the llama's backside. ------------------------------------------------------------------------------- DESCRIPTION ------------------------------------------------------------------------------- A small music player with customizable skins, in the old tradition: the transport and the time on it, a playlist you build by dragging things into it, a ten-band equaliser, a library that knows about your files, and a visualiser that moves to whatever is actually coming out of the speakers. It reads what ffmpeg reads, which is everything, and it takes the classic skins — the .wsz files people have been making for twenty-five years — as well as a modern format of its own for skins that want to be sharp on a big screen. Everything it needs travels with it: its own Python, its own Qt, its own numerical library, and its own ffmpeg. There is nothing to install first and nothing on the machine for it to disagree with, which is the point of shipping it as one file. That last one is why this download is larger than most of ours, and it is the right trade: a music player that needed a decoder installed before it would play anything would not be a player you could simply run. 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. ------------------------------------------------------------------------------- How the sound actually works ------------------------------------------------------------------------------- The file is decoded by ffmpeg into plain sixteen bit samples, which this program then owns: it puts them through the equaliser, works out the volume and the balance, hands them to the sound card itself, and keeps the last few thousand of them for the visualiser to look at. That is the whole reason the bars move to the music rather than pretending to. A player that hands the file to somebody else's engine never sees a single sample and can only animate something plausible. This one is looking at the real waveform, one buffer behind what you are hearing. It also means the equaliser is a real one, working on the sound itself rather than being a row of sliders wired to nothing. It is done as a short time Fourier transform — window the sound, take it to the frequency domain, multiply by the curve the ten sliders describe, bring it back, overlap and add — because that is the shape a whole block can be done in at once, where a row of biquads would want a Python loop per sample and could not keep up. The equaliser panel draws that curve as you move the sliders, so "a little more bass, less presence" is a shape you can see rather than ten numbers you have to read. ------------------------------------------------------------------------------- What it plays ------------------------------------------------------------------------------- mp3 flac ogg oga opus m4a aac wav wma aiff aif ape wv mpc ac3 dts amr au ra tta spx mka m4b caf voc w64 8svx it xm s3m mod 31 kinds in all, plus internet radio streams. Playlists load and save as .m3u, .m3u8 and .pls. ------------------------------------------------------------------------------- The cover ------------------------------------------------------------------------------- Looked for inside the file first, then beside it as cover.jpg or folder.jpg, and drawn from the track's own name when it is in neither. The drawn one is not a placeholder with a musical note on it. The colour comes from the artist and the letters from the album, so a record always looks the same and two records by one artist look related. A folder of untagged files ends up as a shelf of covers rather than a column of grey squares. ------------------------------------------------------------------------------- Skins, and 13 themes ------------------------------------------------------------------------------- SKINS classic A .wsz or .zip holding main.bmp, cbuttons.bmp, titlebar.bmp and the rest. The sprites are cut out of those sheets at the positions the original layout fixed in 1997, so skins made for that layout work here without being touched. modern A folder or zip with skin.json in it, naming its own images and colours. Any size, any shape, and it can say how it wants to be scaled, so a skin can be sharp on a high resolution screen instead of four soft pixels per pixel. THEMES 13 of them, light and dark, colouring everything that is not a loaded skin — the panels, the playlist, the equaliser, and the player's own drawn face: Dark, Light, Midnight, Amber, Vaporwave, Forest, Crimson, Ocean, Monochrome, Plum, Paper, Daylight and Mint. They are not thirty-five hand-picked colours each. A theme says the few things that actually differ — whether it is dark, what colour its surfaces are tinted, what its accent is — and the rest is worked out, with every colour meant to be read moved until it meets the WCAG 2.1 contrast standard against whatever it is really drawn on. A theme that is unreadable cannot be added, because the failing colour is corrected rather than reported. LinuxAmp.AppImage --check-contrast measures all of them and says so. There is one exemption and it is deliberate. The Dark theme's face is Winamp's own colours kept exactly, and those do not meet the standard — 1997 was not measuring. They are left alone, because correcting them would mean it was no longer the face it is imitating, and the check reports them as a marked exemption rather than quietly passing them. Every other theme draws that same face in colours that do meet it. ------------------------------------------------------------------------------- What else is in it ------------------------------------------------------------------------------- THE VISUALISER 9 of them — bars, scope, and rather more elaborate things — all reading the samples on their way to the sound card. Click it to change what it shows. THE EQUALISER Ten bands and a preamp, with 10 presets, and the response curve drawn behind the sliders. THE LIBRARY It remembers what you have, what it is called, and what you have played. Search everything from one box. IT FOLDS AWAY Panels off leaves just the player. Off again rolls it up into a strip fourteen pixels tall with the title, the time and five keys on it, and the frame can go too, so what is left on screen is the skin and nothing else. The title creeps across the display either way you like it. IT REMEMBERS The theme, the skin, the scale, the volume and balance, the equaliser, the playlist, where the menu button sits, and which panel you had open. ------------------------------------------------------------------------------- On the command line ------------------------------------------------------------------------------- LinuxAmp.AppImage song.mp3 album/ files, folders and playlists LinuxAmp.AppImage http://stream… an internet radio address LinuxAmp.AppImage --what-works what this machine can do LinuxAmp.AppImage --check-contrast the contrast report LinuxAmp.AppImage --version --what-works is the honest one. It says what is present and what each thing changes, rather than leaving you to find out by pressing something that does nothing. ------------------------------------------------------------------------------- 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. The player, the decoder plumbing, the equaliser, the visualisers, the skin loading, the library and the themes are all the program's own code. It carries a static ffmpeg and ffprobe (version 7.0.2, the amd64 static build from johnvansickle.com) so that every format above works on a machine with nothing installed on it. Those two are under the GPL v3 and their licence travels inside the AppImage, beside a note saying where they came from. LinuxAmp runs them as separate programs and does not link against them; LinuxAmp's own code is not GPL. ------------------------------------------------------------------------------- Running it — nothing to install ------------------------------------------------------------------------------- chmod +x LinuxAmp.AppImage ./LinuxAmp.AppImage Or give it something to play: ./LinuxAmp.AppImage ~/Music On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./LinuxAmp.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/LinuxAmp/ as plain text, with the library beside them. Deleting that folder puts everything back as it started. ------------------------------------------------------------------------------- Stage ------------------------------------------------------------------------------- Version 1.0. Bug reports to opensource3@yahoo.com.
FreedomFox icon

FreedomFox$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

A hardened, private web browser — Firefox without the tracking.

by LinuxDoors.com · created September 10, 2026

A LinuxDoors AppImage Software Product

↓  Download FreedomFox.AppImage icon (.png) Version 155.0.1-lw1  ·  130.4 MB  ·  25 downloads  ·  single file, download and run
SHA256 8d5cb829a2e5516c91c6d7dc0bf9b92d90f9c34351e2a55b59b11012c450c0d0
FreedomFox is Firefox with the tracking taken out and the privacy turned up. It is built for LinuxDoors on the LibreWolf project -- a long-running community privacy fork of Firefox -- and rebased onto the current regular-release Firefox (155.0.1, the same release track a real desktop Firefox install runs, not the slower ESR track) so it carries the latest Firefox security fixes. The web engine is the one you already know; what changes is the defaults: no telemetry, no data reporting, no Pocket, no sponsored tiles, no address-bar adverts, strict tracking protection and Firefox's anti-fingerprinting resistance switched on out of the box, and DuckDuckGo as the search box. Every Firefox extension, every site and every workflow works here. The identity -- name, icon, About box -- is FreedomFox's own.
chmod +x FreedomFox.AppImage ./FreedomFox.AppImage ./FreedomFox.AppImage https://linuxdoors.com # open a page ./FreedomFox.AppImage --version # on LinuxDoors (no FUSE): ./FreedomFox.AppImage --appimage-extract-and-run # or via linuxdoors-run-appimage, which unpacks it once rather than on every launch
Packaged by LinuxDoors. FreedomFox is assembled by LinuxDoors from the LibreWolf project's own published privacy patch set and settings (MPL-2.0), applied to the official Firefox source and rebranded. It is not a mirror of a LibreWolf release and is not affiliated with or endorsed by Mozilla or the LibreWolf project; Firefox is a trademark of the Mozilla Foundation. The SHA-256 above is authoritative. It carries its own glibc, GTK and NSS, so it runs on a machine with nothing installed -- built for LinuxDoors, tested on Debian 13.

Privacy on by default, not buried in a menu

Enhanced Tracking Protection is set to Strict. Cross-site cookies and supercookies are partitioned per site. Referrers are trimmed on cross-origin requests. Link query strings whose only job is to follow you (utm_*, fbclid, and the like) are stripped. Firefox's resistFingerprinting is enabled, so sites see a generic, uniform browser instead of a signature they can track. None of this is something you have to go and turn on.

No telemetry, no phone-home

Data reporting is compiled out, not just switched off -- there is no crash reporter, no health report, no studies, no Normandy, no ping-sender. On startup and after an update, nothing reaches out to Mozilla: no firstrun page, no whatsnew page.

A quieter browser

No Pocket. No sponsored shortcuts or sponsored stories on the new tab page. No AI chatbot sidebar. No “recommended by” adverts in the address bar. The search box points at DuckDuckGo. Add-on signature enforcement is relaxed, so you can install unsigned extensions if you choose to, and uBlock Origin is offered on first run.

Still Firefox underneath

FreedomFox is Firefox 155.0.1 with the LibreWolf project's privacy layer on top -- the same regular-release track a real desktop Firefox install runs, not the slower ESR track. Same rendering engine, same extension API, same devtools, same everything -- so sites behave the way they do in Firefox, your extensions install the way they do in Firefox, and there is nothing new to learn. The window titles, the icon and the About box say FreedomFox; the engine says Gecko.

Running it -- nothing to install

Download the AppImage, make it executable, run it -- optionally with a URL to open. On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./FreedomFox.AppImage --appimage-extract-and-run, or through linuxdoors-run-appimage, which does that for you and unpacks it once rather than on every launch. It carries its own glibc, GTK and NSS. Your profile lives in ~/.linuxdoors/freedomfox/ -- deleting that folder resets the browser. A portable AppImage does not update itself; when there is a newer FreedomFox, download it here, or install the freedomfox package with pkg / the LinuxDoors Package Manager, which keeps it current.

Prefer the package manager? FreedomFox is also an installable LinuxDoors package — freedomfox — which uses the copy of Python and Qt already on your system instead of carrying its own.

Written for LinuxDoors, though nothing in it is specific to LinuxDoors -- it runs on Debian- and Ubuntu-type systems (tested on Debian 13, glibc 2.41), and on any other reasonably recent Linux distribution that can run an AppImage. Only the GPU libraries come from the host; without a system GL it falls back to Firefox's own software renderer.

=============================================================================== FreedomFox -- for the LinuxDoors AppImage Store =============================================================================== Name: FreedomFox Version: 155.0.1-lw1 Price: $0.00 Maker: LinuxDoors (a build of the LibreWolf project) Created: September 10, 2026 Kind: Portable web browser -- one file, download and run File: FreedomFox.AppImage Size: 130M SHA256: 8d5cb829a2e5516c91c6d7dc0bf9b92d90f9c34351e2a55b59b11012c450c0d0 CARD DESCRIPTION (the one line the store shows under the name) A hardened, private web browser -- Firefox without the tracking. ------------------------------------------------------------------------------- WHAT IT IS ------------------------------------------------------------------------------- FreedomFox is Firefox with the tracking taken out and the privacy turned up. It is built for LinuxDoors on the LibreWolf project -- a long-running, community-maintained privacy fork of Firefox -- and rebased onto the current regular-release Firefox (155.0.1, the same release track a real desktop Firefox install runs, not the slower ESR track) so it carries the latest Firefox security fixes. It is the same web engine you already know. What changes is the defaults: no telemetry, no data reporting, no Pocket, no sponsored tiles on the new tab page, no "recommended by" adverts in the address bar, and the anti-fingerprinting and cross-site isolation protections switched on out of the box instead of buried in a settings page. The search box points at DuckDuckGo, not Google. The identity is FreedomFox's own -- its name, its icon, its About box -- but under the hood it is Firefox, so every extension, every site, and every workflow that works in Firefox works here. ------------------------------------------------------------------------------- WHAT IS DIFFERENT FROM STOCK FIREFOX ------------------------------------------------------------------------------- PRIVACY ON BY DEFAULT Enhanced Tracking Protection is set to Strict. Cross-site cookies and supercookies are partitioned per site. Referrers are trimmed on cross-origin requests. Query strings that only exist to track you (utm_*, fbclid, and the like) are stripped from links. FINGERPRINTING RESISTANCE Firefox's resistFingerprinting is enabled, so sites see a generic, uniform browser instead of a signature they can follow you with. NO TELEMETRY, NO PHONE-HOME Data reporting is compiled out, not just switched off. There is no crash reporter, no health report, no studies, no Normandy, no ping-sender. A QUIETER BROWSER No Pocket. No sponsored shortcuts or sponsored stories on the new tab page. No AI chatbot sidebar. No "firstrun" or "whatsnew" pages reaching out to Mozilla on startup or after an update. YOUR EXTENSIONS, YOUR CALL Add-on signature enforcement is relaxed, so you can install unsigned extensions if you choose to. uBlock Origin is offered on first run. UPDATES ARE OFF A portable AppImage does not update itself. When there is a newer FreedomFox, download it from the LinuxDoors AppImage Store (or install the freedomfox package with pkg / the LinuxDoors Package Manager, which does keep it current). ------------------------------------------------------------------------------- RUNNING IT -- NOTHING TO INSTALL ------------------------------------------------------------------------------- chmod +x FreedomFox.AppImage ./FreedomFox.AppImage ./FreedomFox.AppImage https://linuxdoors.com # open a page ./FreedomFox.AppImage --version On LinuxDoors, which has no FUSE, run it the way LinuxDoors runs any AppImage: ./FreedomFox.AppImage --appimage-extract-and-run or through linuxdoors-run-appimage, which does that for you and unpacks it once rather than on every launch. It carries its own glibc, its own GTK, and its own copy of NSS, so it runs on a machine with nothing installed on it -- built for LinuxDoors, tested on Debian 13, and fine on Ubuntu 22.04 and newer and other reasonably recent distributions. The GPU libraries are the one thing it borrows from the host; without a system GL it falls back to Firefox's own software renderer. Your profile lives in ~/.linuxdoors/freedomfox/. Deleting that folder resets the browser to a fresh state. ------------------------------------------------------------------------------- BUILT BY LINUXDOORS -- ON OPEN SOURCE ------------------------------------------------------------------------------- FreedomFox is assembled by LinuxDoors from the LibreWolf project's own published patch set and privacy settings (both MPL-2.0), applied to the official Firefox source. It is not a mirror of a LibreWolf release and it is not affiliated with or endorsed by Mozilla or the LibreWolf project. Firefox is a trademark of the Mozilla Foundation. The SHA-256 above is authoritative -- check your download against it.
Kdenlive icon

Kdenlive$0.00

Open code, fair pay

The source stays open — free to read, build on and share. A price, where there is one, is not for the code as that is opensource. It is for the work around it: the servers and bandwidth that carry the download to you, and the hours a programmer spent designing, building, testing and looking after the app — hours that support them and the people they love, the same as any other profession in the workplace economy.

A share of what the paid apps earn goes back to the Linux and free-software projects they are built on. That community gave its work away so all of this should exist; paying the people who keep it alive is how it stays alive.

Anything marked $0.00 is exactly that — free, no asterisk.

KDE's non-linear video editor -- a multi-track timeline on top of MLT and FFmpeg.

by KDE Community · mirrored September 11, 2026

↓  Download Kdenlive.AppImage icon (.png) Version 26.08.1 (stable)  ·  215.3 MB  ·  27 downloads  ·  single file, download and run
SHA256 354570ab360fcc4e6ef2825754489a2f24ba73068ecd5b9dc911c72df20a25de
Kdenlive is a full non-linear video editor that KDE has developed since 2003. It gives you as many video and audio tracks as you need on one timeline, drag-and-drop of clips, images, titles and colour, keyframable effects and compositing, a titler with its own animation, and audio and video scopes for checking levels and colour. It reads and writes whatever FFmpeg does, and it can build low-resolution proxy clips so 4K and multi-cam projects stay responsive on ordinary hardware. It is built on the MLT framework, the same engine behind Shotcut.
chmod +x Kdenlive.AppImage ./Kdenlive.AppImage
Mirrored, unmodified. This is KDE's official stable AppImage from download.kde.org, served here exactly as they release it -- not repackaged. The SHA-256 above is of that file (and matches KDE's own published .sha256), so you can verify it against KDE's own checksum. LinuxDoors mirrors it so it sits alongside everything else you get from here.
Upstream download: https://kdenlive.org/download/

The timeline

Unlimited video and audio tracks, with the usual set of tools -- razor, spacer, insert and overwrite, ripple and roll. Effects and transitions are keyframable, so a blur, a crop, a colour grade or a position can move over time; compositing between tracks is a track property, not a manual step. The titler is a small vector editor of its own, with templates and keyframe animation. Audio and video scopes (waveform, vectorscope, histogram, RGB parade) dock in the window for checking exposure and levels.

Formats and staying responsive

Because it sits on FFmpeg, Kdenlive imports and exports essentially any codec and container in common use, and its render dialog ships profiles for the usual targets (MP4/H.264, WebM, ProRes, image sequences) with room to add your own. Proxy editing swaps in small stand-in clips while you cut and switches back to the originals at render time, which is what makes 4K, high-frame-rate and multi-camera projects usable on a laptop. Rendering runs in the background so you can keep working.

Mirrored, not repackaged

LinuxDoors did not build this and does not alter it. It is KDE's official stable release AppImage from download.kde.org, served here byte for byte, with its SHA-256 published so you can confirm it. The authoritative home -- source, manual, forums, bug tracker -- is kdenlive.org, linked on the card. Kdenlive is also a native LinuxDoors package (kdenlive) if you would rather it use the Qt and KDE Frameworks already on your system instead of carrying its own.

Running it -- nothing to install

Download the AppImage, mark it executable, run it. Qt, the KDE Frameworks, MLT and FFmpeg are all inside the single file. Your projects are ordinary files wherever you save them; preferences live under ~/.config. On first run Kdenlive checks for its helper tools (ffmpeg, ffplay, melt) and reports any that are missing -- in this bundle they are all included.

Prefer the package manager? Kdenlive is also an installable LinuxDoors package — kdenlive — which uses the copy of Python and Qt already on your system instead of carrying its own.

KDE's AppImage bundles Qt, the KDE Frameworks, MLT and FFmpeg, so it runs on most current Linux distributions with FUSE (or via ./Kdenlive.AppImage --appimage-extract). Built for x86-64.