Standardise Removal of AppImage

I’ve just removed the Jetbrains Toolbox. I Think AppImage apps should have a standard uninstaller / software removal process to ensure our systems are not littered with dependencies not managed by the OS when vendors do not publish uninstallers with their apps

The Jetbrains Toolbox is an AppImage, which is a single file that contains the application and everything it needs to run that is not part of the base system. When you remove this one file, then you have effectively “uninstalled” the application (but not the data the application has created and/or downloaded).

This is like when you move an .app bundle to the Trash in macOS.

What else would you like to see?

I was specifically referring to the additional data. There must be a way to force an application to take responsibility for it’s stuff.

Also on Linux it seems to be more than one file or folder. I had to delete some ~/.local/usr/share/application entries as well as the application icons. I felt like this more involved than it needed to be process reminded me of old-school windows 98 uninstalls of unruly applications and for non-power users this could be a big problem for users.

I am of course open to alternatives, others having opinions that contradict my own.

1 Like

You are right, an automatic removal of the desktop integration would be neat and should be written.

1 Like

I have also had slight concerns about what happens to the desktop integration and file association when an AppImage is deleted. Maybe accepting the offer to install the desktop file should create a new ‘uninstaller’ AppImage next to the original AppImage which could be used to clean up when the original AppImage is removed.

1 Like

Yes, it could work like this: When the desktop file is installed, it has as its Exec= key not the AppImage itself, but a tiny wrapper script that gets extracted to somewhere in $HOME. When executed, this wrapper script launches the AppImage. If the AppImage is no longer there, it removes the icon and the .desktop file and itself.

Who wants to write it?

1 Like

I’d need to know more about how the AppImage is built, If someone can direct me to the install script or install builder or bundler, then I should be able to do something

Cool, please have a look at the bash script called ‘desktopintegration’ in the GitHub project probonopd/AppImageKit.

Note that when run inside an AppImage, the environment variables $APPIMAGE and $APPDIR are set.

1 Like

can you create uninstaller appimage. to uninstall, user must delete file on ~/.local/usr/share/applications. IS IT NOT WEIRD/STRANGE? CAN YOU HELP ME?

An AppImage is not “installed” and hence does not need to be “uninstalled”. It’s just a single AppImage file that you can delete.

However, desktop integration (icons, menu entries and such) needs to be “installed” (thanks to how the Linux desktops work); if you use tools like the optional appimaged daemon (or the AppImageLauncher tool) then they will automatically add and remove desktop integration for you, so that you don’t need to do anything manually.

The only problem is AppImages that ask the user, on first launch, whether to add the application to the menu (using a *.wrapper bash script). We don’t recommend this anymore, as in this case, the user has to delete the menu/icon etc. files manually.

1 Like

Not our job. If you want to put your name front and center, and try to claim all the GLORY for your own genius and innate superiority to your fellow man. Then YOU need to take responsibitity for what’s WRONG with appimage! GET REAL.

Nothing is “wrong” with AppImage. If you want desktop integration, use the appimaged AppImage. Or ask your favorite desktop environment to provide native AppImage integration out of the box.

2 Likes

Maybe the AppImages could have a standardized info file inside, that also includes its config direcories? When the AppImage is removed, a daemon or launcher could detect that and remove its config files with it

I am no longer a user of AppImage. Haven’t really been since this interaction with the JetBrains toolbox, but I think some of the comments in this thread do not capture my outlook on the matter.

I was upset that a project using this format (likely JetBrains specific) left a lot of cruft on my system. It was one of my first forays into AppImage, and as someone that uses scripted systems. I Thought as a product feature, standardized removal would lead to a more consistent experience for users, benefiting AppImage.

I Never picked this up and ran with it, despite @probono being very helpful. I’m particularly unhappy with runbux comment. (I Won’t tag them as I don’t want a return of that). I Also was given the opportunity to make a change and I didn’t follow-up on that. Anyone with negative comments, could use the same link in thread and propose a change. Just know it could be a lot of work and your initial takes might need work.

This issue should be considered abandoned by me. Many thanks to probono and the AppImage team. I’ve muted the thread for me now.

It is not clear to me what JetBrains Toolbox is or is not doing, but in general you can remove an AppImage by just moving it to the Trash. This is equal to uninstalling an application on other systems. Data the applciation may have placed into $HOME or into other such locations are not affected, neither by typical package manager uninstallations nor by moving an AppImage into the Trash…