AppManager v3.5.0 released. AppImage Import Wizard and smarter updates
Posted by kemma_@reddit | linux | View on Reddit | 107 comments
Quick heads up. Since last update here a lot of feature requests have landed and plenty of bugs got fixed.
Here are some highlights:
- AppImage Import Wizard. Point AppManager at a folder full of existing
.AppImagefiles and it will adopt them, wiring up desktop entries, icons, and updates. Includes a progress dialog with cancel support. - Smarter zsync updates. Both version and SHA-1 must differ now before an update triggers. Kills the false-positive notifications that anylinux auto-generated builds were causing.
- Fullscreen toggle for the main window, plus a dedicated fullscreen menu section.
- Undo for Move to Trash. Accidentally trashed an app? Hit undo.
- Permanent delete option. Shift-click the delete action, or get it automatically on trashless systems and for apps installed outside
$HOME(e.g./opt). - Refreshed Details window with app description, dedicated open button, and launch feedback animation.
- GitHub pre-release channel. Opt-in toggle to receive pre-release updates.
- Shift-click to launch apps directly from grid view, and a launch option in the details window.
- AppImages outside
$HOME(e.g./opt) now update correctly. - and many more...
Hit your in-app update button or Get it on GitHub
AppManager is a GTK/Libadwaita desktop utility written in Vala that makes installing and uninstalling AppImages on Linux effortless. It supports both SquashFS and DwarFS AppImage formats, features a seamless background auto-update process, and leverages zsync delta updates for efficient bandwidth usage. Double-click any .AppImage to open a macOS-style drag-and-drop window, just drag to install and AppManager will move the app, wire up desktop entries, and copy icons.
Hinnerk2553@reddit
Nice to see vala in the field/use and to improve the appimage eco system. But what beside the ui is the difference to gear lever?
kemma_@reddit (OP)
Many small things, but most importantly it’s appimage only, no dependence from flatpak
Damglador@reddit
Having an appimage manager as a flatpak is hilarious in a way.
totallynotbluu@reddit
the year is 2030, everything on a Linux desktop including the kernel is now a flatpak.
Brilliant_Tough_3552@reddit
"Okay, fresh linux insta- ERROR: 1GB SPACE LEFT"
Hinnerk2553@reddit
Thats enough, I will install it later on all my machines 😉
Maleficent-One1712@reddit
This is nice, does it also work on other desktops than Gnome?
pedroitalo609@reddit
Eu uso no Cachyos KDE e funciona perfeitamente
Maleficent-One1712@reddit
Nobody can read that, just speak English like everyone else.
pedroitalo609@reddit
Vai se fuder porra, eu vou falar na minha língua nativa e se tu tiver achando ruim vai pedir pro teu papai Trump explodir todos os outros países do mundo pra só sobrar esse seu país de merda
VasyanMosyan@reddit
I can. There's a translate button
japzone@reddit
I use it on CachyOS with KDE and have no issues.
KHTD2004@reddit
It does, I use it on Plasma
ThaBroccoliDood@reddit
Forgive me if this is a stupid question, but what is the point of checking the SHA hash if you also need the version number to be different? Can't you just only check the version at that point?
kemma_@reddit (OP)
Because app devs have their own crazy reasons to bundle and distribute their apps in every possible unimaginable way.
ThaBroccoliDood@reddit
Do app devs change the version number then even if the app actually remains the same?
kemma_@reddit (OP)
Yes, package forge devs does that, because they run github action to pack apps as appimages based on specific schedule every 21 days
Pitiful-Welcome-399@reddit
getting closer to MacOS every day
int23_t@reddit
App images and apple app format thing whatever it's called are literally the same, macos just comes preinstalled with the capability of cd'ing into the app.
So we just need a seemless FUSE program that comes preinstalled in a distro for appimages.
TCB13sQuotes@reddit
Not really, AppImages can be cool but they have overhead - something that Apple's .app bundles doesn't.
gplusplus314@reddit
I’m a bit out of the loop. What do you mean about needing a FUSE program? FUSE as a user space file system?
int23_t@reddit
Yeah, make appimages user space filesystems so you can CD into them, and appimages will have full feature parity with apple
gplusplus314@reddit
Forgive my ignorance. Why a FUSE file system? Is it because an AppImage is a single opaque file, so the FUSE would effectively “emulate” the macOS-like .app bundle?
int23_t@reddit
Yeah. There probably is much better ways to be honest
gplusplus314@reddit
That seems like a pretty cool solution, but why not just have the AppImage extracted onto a native file system? I may be wrong, but I believe Apple’s .app bundles are exactly that: just plain files on their native file system.
I really don’t know much about AppImages or Apple’s stuff; these are honest questions.
int23_t@reddit
I don't know much either, I just used apple's things on a friend's laptop.
It was something you download over the internet but then can literally cd into, it's like a tarball but you can cd into it and edit it.
They probably just auto extract them once they are downloaded or moved to apps directory though.
(Also file manager can not cd into it only terminal can which is also weird)
bengringo2@reddit
“App images and apple app format thing whatever it's called”
It’s called an .app bundle. It’s pretty much just a directory with Mach-O binary and required files.
https://developer.apple.com/documentation/BundleResources/placing-content-in-a-bundle
jimicus@reddit
And it's not an original idea even there - it was being done on several platforms in the 1980s.
In fact, now I think of it, this fascination with scattering files all over the place for your application to use is pretty much exclusive to Windows and Unix. And the main rationale behind it - save disk space and make upgrading dependencies easy - is arguably a lot less relevant today.
(Now I think of it, I'm not entirely convinced the rationale was even in anyone's mind at the time. I think it just didn't occur to them to bundle applications up in that way and by the time it became obvious that this was a useful idea, they had to retroactively invent a justification for why it wasn't).
Anticept@reddit
Application changes progressed a lot slower back then. Computers were on a rapid rise to becoming mainstream, but we also didn't have what is essentially a hose of unlimited data, things were distributed on VERY space limited storage disks. Static linking meant more disk space, more disks, etc. There weren't 582473874 libraries across 2957437 languages, only a few choice ones and you pretty much had to use them.
Today's landscape is changing a lot of this thinking because these aren't limitations anymore.
samuerusama@reddit
FUSE dependency can be avoided and in fact AppManager itself can work without FUSE.
There is an alternative appimage runtime that has a fallback to use mount namespaces: https://github.com/VHSgunzo/uruntime/issues/18
int23_t@reddit
I do realise fuse is not necessary to run them. It's to get the same seemlessness as apple, as on apple you can cd into the app, on appimage you can't and fuse is the standard way to handle such filesystems I believe.
samuerusama@reddit
Oh, you can
cdinto an appimage.https://imgur.com/a/N2Wc5C8
The AppImage is always responsible of mounting itself. So all you have to do is run it with
--appimage-mountandcdto the path it prints. This might be possible to implement as a custom action on some file managers already.sleepingonmoon@reddit
Apple app bundle supports sandboxing.
samuerusama@reddit
You can also sandbox appimages, however AppManager does not have such feature.
I have this issue about it: https://github.com/kem-a/AppManager/issues/37
AppImage supports this already, make a directory next to the appimage with the name of the appimage +
.homeor.configand see what happens.This just causes more problems than it solves.
flatpak has a system of runtimes which provide libraries that apps can share, but that ends up being way less efficient
halfc00kie@reddit
next theyll add a dock and call it innovation
jimicus@reddit
Those who fail to understand MacOS are doomed to reinvent it.
Adorable-One362@reddit
so you use appimage to make an appiimage manager, is this some kind of joke?
tolkem@reddit
Make it able to run like any other appimage does, so if I do in my terminal
The app just starts, no windows popping up asking "to install". I use a bunch of appimages (74 currently), and whenever I find a new one (like yours) I first tried it from terminal to see how it works, check for any error messages or anything else, so I can see whether it's worth using or not, if it is, I keep it around, otherwise I just delete the file, no harm done. Your app is asking me to install in order to use it, why? I wanna try and see first, and I can't be the only one. Just my 2 cents. 😁
Anima_Watcher08@reddit
FirGive me for asking but is this possibly vibe coded?
RayneYoruka@reddit
Lovely
madroots2@reddit
no reason to move from Gear Lever currently as it doesn't offer anything significal yet.
Short_Still4386@reddit
So what's the difference between Gear Level and this?
mindful999@reddit
Potentially AI written slop software
DustyAsh69@reddit
Doesn't seem like it. I checked out the source code.
mindful999@reddit
How do you know that by reviewing the code ?
DustyAsh69@reddit
AI written code has tell-tale signs.
samuerusama@reddit
AppManager does delta updates. (doesn't download the whole appimage with every update).
Gearlever does not have such feature.
fram3shift@reddit
It has a much more useful name.
Great-TeacherOnizuka@reddit
Same question.
The window on the right looks almost identical to Gear Lever
saverus1960@reddit
At least a more meaningful name :)
saverus1960@reddit
At least a more meaningful name :)
Serious_Berry_3977@reddit
Same exact question I had on first seeing this.
playffy@reddit
Please tell me, does this program install .deb packages?
kemma_@reddit (OP)
No, .AppImages
playffy@reddit
Thank you. As far as I understand, this is a useless app.
sunkenrocks@reddit
Erm,
aptand any number of the graphical fronted for it?https://wiki.debian.org/PackageManagementTools
Larsenist@reddit
I've never owned a Mac computer but isn't think almost exactly how it looks on a Mac to install software?
Would be neat if this were preinstalled on distros that appeal to Mac users, if so
sunkenrocks@reddit
No? It looks a little like the updater for Apple apps and system updates, but to install apps on Mac you copy the .app folder (they don't appear as folders unless you right click/ctrl click and view as folder) to /Applications, and to uninstall, you delete it from /Applications.
Natural_Night9957@reddit
Should I give it a new chance after becoming way comfortable with Gear Lever?
kemma_@reddit (OP)
The two apps are not mutually exclusive. You can install and use them alongside each other.
youareapirate62@reddit
I know it is not the purpose of this software, but i would love to be able to change the "home directory" for the AppImage. So it creates all its configuration files, cache and data inside a pre-determined folder. The objective is to have a separate home folder for each app to no clutter the real home folder.
kemma_@reddit (OP)
It’s in a pipeline
samuerusama@reddit
You can do this by running the appimage with
--appimage-portable-homeflag once.But yeah would be great if it was built into AppManager.
DeliciousIncident@reddit
Does it do signature verification of the downloaded app update?
kemma_@reddit (OP)
At present, no one signs their apps, but the capability exists. The app’s signature can be verified during the initial installation, after which the update channel is considered as trusted.
DeliciousIncident@reddit
Uh, just make sure I understood that right. You are saying, that if AppImage's signature verifies against the public key embedded into the AppImage, then you forever trust the update channel - the server URL / github releases URL, etc. update metadata? Pretty sure that's not how it's supposed to work.
The way it was supposed to work - if the update is signed with the same key as the previous version (or the previous version was unsigned), then it is trusted, otherwise a warning is shown and the app doesn't auto-update.
At least according to my reading of https://github.com/AppImageCommunity/AppImageUpdate/issues/16
If someone compromises the AppImage, they can easily re-sign it with their own key, so the verification will always succeed on the first installation, even if the AppImage is malicious, since it's checked against the key from the AppImage itself.
Also, you shouldn't blindly trust the update channel forever just because a signature got verified during the initial installation. Update channel's domain name can be compromised, github releases hacked, etc. You shouldn't trust the update channel, but instead verify that the update downloaded from there is signed with the same key.
chazzeromus@reddit
I'm using AppImageLauncher right now, but the UI in this looks much better
tuananh_org@reddit
maybe i just fork appimagelauncher , edit the main windows to mimic this behavior
Pretty much no change to functionalities
chazzeromus@reddit
yeah it's pretty invisible and does its job, but I forget what the name of the launcher when I do need to configure something
bunkbail@reddit
wait what? it runs on musl-based distros? so i can use this on chimera linux??!
samuerusama@reddit
https://pkgforge-dev.github.io/Anylinux-AppImages/
AppManager is made with this method, other aps include Eden emulator, PPSSPP, GPU-T, CPU-X and several more.
They also work directly on NixOS without any FHS wrapper.
bunkbail@reddit
oh i see, fully understood it now. thanks for the info.
PenaltyGreedy6737@reddit
I didn't feel like this was an issue that needed to be solved. It is more effort for me to use yet another package manager, compared to just downloading the goddamn thing and clicking on it. Which, from reading the patch notes, it does not even do correctly.
My mind now recoils whenever I hear about yet another update manager, yet another whatever Lutris and Bottles and PlayOnLinux do_. This is just software which lets me click on other applications to launch them, and perhaps update them? So, it is a lite version of Discover, or Gnome's Software, or Synaptic? So many applications. Can someone please make an app to manage every app store on my system, as well?
I don't mean to discourage anyone from working on the projects they want to, but it is just tiring that 30 years on, it is still not possible to just install something on Linux by downloading it, there is always some gotcha, and we need an ever expanding toolbox of auxiliary programs to manage what Windows has not had any issue with since the 90s.
DeliciousIncident@reddit
AppImages are single file executables. If a software you are interested in provides an AppImage - you just download it and double-click it to run. However, they don't auto-update or notify you of available updates, don't integrate into your DE's list of installed applications, etc. If you are interested in these optional QoL features - this is where such AppImage updaters/managers come in handy.
Scandiberian@reddit
Let me guess, you’re a proud Debian user?
PolloFritoPollaFrito@reddit
wow, this is amazing, thanks for your great work! this is going to make managing these much easier
Serious_Berry_3977@reddit
So for all those like me that have been scratching our heads wondering what this offers over GearLever I have answers.
First and foremost, GearLever does not update appimages, but AppManager does and can be set to automatically check for updates. Second, it gives many more options for the appimage than GearLever does. That all being said, GearLever is a little faster opening and installing appimages but not by much. GearLever warns you when trying to install an appimage not built for your system's arch while AppManager just flat out will not install the appimage if it doesn't match the system arch. Both seamlessly integrated the apps into my KDE menu. The other big thing that AppManager does is allow you to verify the appimage sha hash -- but this is not always easy to find and I'd like to see it somehow get the sha hash of the file on the server and compare it to the file locally to be seamless and easy for the user.
I'm really impressed with this app. I do wish it had integration with things like AppImage from appimage.org and AppImage Hub from opendesktop.org so the user can seamlessly browse for and install appimages, but there is a couple of links to github repos that host appimages.
After using AppManager, GearLever felt like a one-trick-pony and I went with AppManager instead and removed GearLever. Your results may vary, but I'm running Fedora Linux Asahi Remix on an M2 MacBook Air and as long as I can find aarch64 appimages AppManger does just fine.
chris-tier@reddit
Uhhh... Yes it does? It checks for updates and can download and update the app images as well.
Serious_Berry_3977@reddit
Interesting, it was definitely not keeping my appimages up to date for some reason.
kemma_@reddit (OP)
Thank you for your detailed explanation. Very helpful
jaytrade21@reddit
Nice. Funny thing: I tried to load the app which is an appimage and I couldn't do it as I had upgraded my OS and it was just not loading without googling some fixes. If only I had this so I could install it in one shot. At least now I am set :)
Khyta@reddit
Hey OP, how do you use Claude in the development process? I can see that the `.claude` folder is in the gitignore.
frogstat_2@reddit
This program has been essential for me ever since I first got it. I used to avoid appimage because of how bothersome it was to integrate them with the system, but now I actively use them whenever I can.
Danrobi1@reddit
Hi, u/kemma_
Was wondering where's the appimages data list which AppManager uses?
Do you use the same data list as AM?
kemma_@reddit (OP)
This is not appstore. It just manages Appimages by integrating them with OS
Danrobi1@reddit
Oh I see. Thank's!
GSDragoon@reddit
This doesn't work at all for me. Drag and drop doesn't work.
bkuri@reddit
Just tested this out on an updated arch box. I had some pre-existing appimages that it correctly imported.
However, I noticed that it has problems updating packages.
For example, I struggled updating Chatbox from
v1.17.1tov1.20.1, first because the github release URL wasn't specified. I added it manually and checked again, but it still said that it was up-to-date. I then opened up the app and noticed a message stating that a new version would be installed as soon as I closed it, which never actually happened.I then moved the image to the trash, manually downloaded the new version, and double-clicked it. The image was moved to the right path, but it still opened
v1.17.1, even though the dashboard states that I have the latest version.Another image (Ondsel FreeCAD) did include the release url by default and even detected an update, but I got an "Update Failed" error when attempting to do so.
Not sure if this is a folder permissions issue or what.
Anyway, let me know if you need more info or if you'd like me to test something out.
Hth!
Obvious-Ad-6527@reddit
Does anyone still use AppImages?
kemma_@reddit (OP)
Yes. It’s the easiest way to distribute app
BecarioDailyPlanet@reddit
I like it. Congratulations and thank you for your work
Niwrats@reddit
pointless bloat. the whole idea of appimages is that they are portable and you can already run them as-is.
Ok-Winner-6589@reddit
How does It update AppImages? Just curious
MrMelon54@reddit
I just saves the updated appimage and runs that instead of the old version
Sea_Decision_6456@reddit
(source: antigravity)
Based on the source code of `AppManager`, updates for installed AppImages are fetched and applied using several different mechanisms depending on the update source configured for the application. Here is how the update fetching process works:
### 1. Zsync Delta Updates (Primary & Most Efficient)
If an AppImage specifies a `.zsync` update information URL (often stored in the AppImage's embedded `.desktop` file under `X-AppImage-UpdateInformation`), the `AppManager` prioritizes this method:
- The app fetches metadata from the `.zsync` URL header (such as the remote SHA-1 hash) and checks if it diverges from the currently installed version.
- **Delta Download (`zsync2`)**: If an update is found, it attempts to use the `zsync2` binary. It uses the existing installed AppImage as a "seed" to download only the changed parts of the new AppImage, saving significant time and bandwidth.
- **Fallback**: If `zsync2` is not installed or errors out on the system, it gracefully falls back to downloading the entire updated AppImage file.
### 2. GitHub and GitLab Releases
When the update URL points to a GitHub or GitLab repository:
- `AppManager` calls their respective REST APIs to fetch the latest release data. It will use a GitHub authentication token if one is configured in the AppManager's preferences, which circumvents rate-limiting.
- It parses the available release assets and uses an intelligent fallback method to select the correct AppImage. It prioritizes explicit architecture matches (e.g., `x86_64`, `aarch64`), then falls back to architecture-agnostic AppImages, and finally to any available AppImage.
- If a newer version is detected, that AppImage asset is downloaded entirely.
### 3. Direct URL Check
For standard direct distribution links that don't belong to recognized APIs:
- The app sends a `HEAD` request to generate a tracking fingerprint using the remote server's `Last-Modified` and `Content-Length` headers.
- Using these headers rather than an `ETag` makes it reliable against CDNs and mirror networks.
- If the fingerprint changes, indicating a new file, it performs a complete file download.
### Identity Verification
Regardless of the download method (direct, API, or delta), the downloaded AppImage is stored entirely in a temporary directory. Before overriding your currently installed app, `AppManager` runs an `verify_appimage_identity` check. This extracts the `.desktop` file out of the *new/downloaded* AppImage to verify that the internal `Name=` field actually matches your installed application. Only once this verification succeeds is the new file fully installed and registered.
Twig6843@reddit
Another reminder that appimage package managers like soar and am exist
UnosBruhMomentos@reddit
it looks like macos. pretty cool
MoshiurRahamnAdib@reddit
How does it compare with Gear Lever?
FeistyDay5172@reddit
I used Gear Lever originally. I like this one better. Oh, and mine just updated to v3.5.1.
paranoidi@reddit
Disappointing. I used it to import all my AppImages which I had multiple versions of. Now I basically have:
And no way of knowing which is what version without going into each application to see the version tag. But good luck of figuring out which one of those I clicked ...
donut4ever21@reddit
I love this app so much. I even attempted to create one myself, it worked but not too good. This app made me drop my own project. It's so good.
FoxBravo1981@reddit
Is it better than GearLever ?
Neat-Clerk-9474@reddit
Thank you for improving Linux
0sim0421@reddit
thank you. : )
revilo-1988@reddit
Sieht erst mal nice aus
Coarse-Rough-Sand@reddit
Is there a way to handle installed appimages via a config file, à la NixOs? Simply have a list of appimages with pinned versions, and update only when asked to.
kemma_@reddit (OP)
No, not really. App update control is global. To control individual app updates you have to remove update info