Skip to content

Latest commit

 

History

History
319 lines (235 loc) · 24.4 KB

README.md

File metadata and controls

319 lines (235 loc) · 24.4 KB
Awesome AppImage

Lovingly crafted AppImage tools and resources. Follow me on Twitter.


Awesome AppImage Awesome

AppImage is a community-based format to distribute applications to various mainstream Linux distributions without the need for a centralized store. One app = one file! This list contains tools to work with AppImages, such as to create AppImages for applications and to integrate AppImages into the system easily. As the vibrant community around AppImage is growing, so is this list.

Contents

AppImage discovery

App catalogs

  • AppImage.GitHub.io - Catalog of AppImages that passed an automated test, links to upstream download pages.
  • Get AppImage - Collection of all AppImages in one website. Great search functionality.

App stores

  • AppImageHub.com - Downloadable AppImages, powered by Opendesktop.org.
  • pling.com - Open store where creators can publish their libre products and creative content including AppImages.
  • App Outlet - Universal app store that works with AppImages, Flatpaks and Snaps.
  • Manjaro Software Discover - Web-based app store that contains applications in multiple formats, including AppImage.

App centers

  • NX Software Center - Portable Software Center for portable AppImage applications.
  • AppImagePool - Simple, modern AppImageHub Client, powered by flutter.

App scrapers

AppImage consumption tools

Desktop integration

  • Getting Started Managing Software with AppImage on Ubuntu - Verbosely explains how to manage AppImages without the need for further software.
  • go-appimaged - Optional daemon that integrates AppImages into the system (experimental).
  • appimaged - Optional daemon that integrates AppImages into the system (deprecated).
  • AppImageLauncher - Integrates into users' systems and establishes a single ~/Applications directory, assisting the user to move AppImages into there, with support for updating and removing AppImages through apps launcher.
  • appimage2desktop - Creates a desktop file and an icon in the system for an AppImage, nothing else.
  • appimagehelper - Program for creating, deleting, controlling and organizing shortcuts to AppImage.
  • LinuxPA - PortableApps.com type launcher for Linux with AppImage support.
  • AppImage Desktop Maker - Creates menu entries for AppImages without the need for a daemon.
  • Thumbnailer for AppImages - Generates icons for AppImages that are shown in file managers of GNOME and KDE compatible desktop environments.
  • XApp Thumbnailers - Thumbnailers for GTK Desktop Environments, including one for the AppImage file format. Makes Gtk based file managers like Caja (MATE), Nautilus (GNOME), Nemo (Cinnamon), PCManFM (LXDE), and Thunar (Xfce) show application icons on AppImages.
  • AppImage To Gnome - Monitors and (de)installs AppImages from the Gnome desktop.
  • AppImage-Integrator - A simple program to integrate AppImages into the Linux desktop written in Qt6.
  • gnome_appimage_installer - Somewhat a misnomer (AppImages don't need to be "installed"), creates a desktop file that follows the freedesktop.org spec for your AppImage files; written in bash.
  • Gear lever - Integrates AppImages into the Gnome desktop by drag-and-drop onto the Gear lever application.

Updaters

  • AppImageUpdate - Official grapical application to update AppImages; command-line tool to update AppImages.
  • AppImageUpdater - Simple updater for humans written in C++ and Qt.
  • appimage-update - AppImage Update implementation written in Go.

Sandboxes

Package managers

Note: The AppImage format is explicitly designed not to need any package managers or similar tools. Everything can be done in the file manager (and an optional daemon for system integration).

  • appimage-manager - Command-line tool for managing AppImages allowing to search, install, remove and update applications.
  • bauh - Graphical user interface for managing Linux applications supporting AppImage, Arch (repositories/AUR), Flatpak, Snap and native Web applications.
  • homebrew-appimage - Linuxbrew AppImage Formulae.
  • AIPM - A Package Manager for AppImages.
  • Zap - AppImage package manager. Downloads the AppImage if it does not exist. If it already exists, updates it with AppImageUpdate. Integrates AppImage into the system.
  • RookiePM - Package manager for AppImages and Shell Scripts.
  • AppMan - AppImage Manager that works like APT or Pacman.
  • jewelrystore - Command line AppImage store made in ruby.
  • ayy - Package manager for AppImage. Single, static, dependency free binary. Written in Go.
  • leap - Fast and simple AppImage manager. Written in Rust.
  • Bread - Download, update, remove, and run AppImages from GitHub on the command line, and integrate apps into the desktop.

Linux distributions

Although the AppImage format was carefully designed not to need any special support from Linux distributions, there are some that offer varying degrees of AppImage friendliness out of the box.

  • Deepin - When you double-click an AppImage or any other executable file that lacks execute permissions, a user-friendly dialog explains the situation and asks for your permission to set the execute permission and execute the executable.
  • Nitrux - Promotes the use of AppImage as the main format for getting applications, has a built in app center featuring AppImages.
  • Linux Mint - Has an AppImage thumbnailer to show application icons on AppImage files.
  • Zenwalk GNU Linux - Is "AppImage ready" and distributes some applications in AppImage format.

AppImage developer tools

Low-level tools

Build systems

  • appimagecraft - Recipe based AppImage creation tool working from source.
  • appimage-builder - Recipe based AppImage creation tool working from source.
  • KDE Craft - Build system used by KDE that can produce AppImages and other formats.
  • appimage-tooling - Ruby tooling to generate Appimages.
  • AppImage.cmake - CMake script which facilitates generating AppImage executables for Linux.
  • rules_appimage - Bazel rules to package any lang_binary target as AppImage.

Deployment tools for compiled applications

  • go-appimagetool - Tool that deploys dependencies into AppDirs, and converts AppDirs into AppImages (experimental).
  • linuxdeployqt - Deploys dependencies into AppDirs and creates AppImages; for Qt and other compiled applications.
  • linuxdeploy - AppDir creation and maintenance tool using plugins.
  • XojoToAppImage - Graphical tool for packaging compiled Xojo Linux programs into AppImages.

Deployment tools for Python applications

  • python-appimage - Ready to use AppImage distributions of Python (can be modified to include your application).
  • linuxdeploy-plugin-python - Bundle Python into an AppDir using a source distribution and linuxdeploy.
  • linuxdeploy-plugin-conda - Bundle Python into an AppDir using a source distribution, Conda, and linuxdeploy.
  • Briefcase - Convert Python project into a standalone native application, e.g., using AppImage.
  • pycharm-appimage-support - Deploy Python project as an AppImage directly from the PyCharm IDE.
  • PyAppImage - Ultimately simple python-to-appimage bundler.

Deployment tools for Electron applications

Deployment tools for Windows applications

  • wine32-deploy - Creates AppImages for 32-bit Windows applications that can run on 64-bit Linux systems without multilib installed.
  • AppImage For WINE - WINE-based AppImages and LD_PRELOAD based patches to launch WINE from AppImages.
  • ferion11/Wine_Appimage - AppImage for WINE 32bits from PlayOnLinux, an run on no-multilib systems.
  • GameImage - GameImage is a way to package up games with either Wine or an Emulator into a portable AppImage that could be useful for the Steam Deck.

Deployment tools for Java applications

  • nbPackager - Packages NetBeans Platform Application with a JRE for AppImage, Linux, macOS and Windows.

Deployment tools for .NET Core (Mono) applications

  • Publish-AppImage for .NET - Publish AppImages for .NET applications.
  • .NET Core AppImage example - Example of how to deploy .NET Core (Mono) applications as an AppImage using dotnet publish -f netcoreapp3.1 -r linux-x64 from within a .cs program.
  • PupNet Deploy - Cross-platform deployment utility which publishes your .NET project and packages it as a ready-to-ship installation file in a single step.
  • DotnetPackaging - Tool to distribute .NET applications in the AppImage format.

Deployment tools for Flash applications

Deployment tools for Rust applications

  • Cargo AppImage - Cargo program that allows you to convert your Rust programs into AppImages.

Tools to convert from other package formats

  • pkg2appimage - Converts from deb, zip, tar.gz and other formats to AppImage using YAML recipes.
  • appimage2pkg - Repack AppImage and make rpm/deb which does not require FUSE.
  • flatpak2appdir - Turn Flatpak into AppDir which in turn can be turned into AppImage.
  • make-portable - Deploys installed application to AppDir, uses strace to fetch all file system calls and copies all accessed files in to AppDir including glibc.
  • AppImage cobbler - Python application that takes strace.log and turns it into a directory suited for an AppImage.
  • Elements - Tool to generate single-file, runc-based AppImages using a minimal (~3 MB compressed) Alpine Linux rootfs.
  • arch2appimage - Python script to convert any Arch Linux package (official/AUR) to an AppImage.
  • appimage-bash - GitHub Action for creating AppImage releases from binaries inside .tar.gz archives.
  • Package-to-appimage - Tool for converting .deb and .rpm packages into AppImage format by using Docker.
  • GMAppImager - Graphically Converts GameMaker Studio 2 games to AppImage bundles.
  • AppImaGen - Generates an AppImage from Debian or from a PPA of your choice for the previous (unfortunately not the oldest as recommended) and still supported Ubuntu LTS.

Metadata tools

  • AppStream Generator - Very simple generator for AppStream MetaInfo files which application authors can use to add metadata (like descriptions, screenshots, links) to their AppImage.
  • AppStream MetaInfo Creator - More elaborate generator for AppStream MetaInfo files by the author of the AppStream metainfo format.

QC tools

  • appimage-testsuite - AppImage testing environment based on Docker containers for various Linux distributions.
  • appimagelint - Tool to check AppImages for compatibility, best practices etc.

Continuous integration

Libraries

  • QAppImageUpdate - Qt5 library and plugin for updating AppImages, can be embedded into applications.
  • AppImageServices - D-Bus services providing a high-level interface over the AppImage manipulation libraries for file managers, software centers and other tools.
  • libappimage - Implements functionality for dealing with AppImage files, written in C++ using Boost.
  • libzsync-go - Zsync implementation written in Go that can be used to update AppImages.
  • appenv - Small C++ library telling where the app data resides and where the user data is by using readlink("/proc/self/exe")), thus allowing C++ applications to become relocatable in the filesystem.

Templates

  • Qt Desktop Template - Template for creating Qt Widgets desktop applications with AppImage generation using linuxdeployqt.
  • qt-hello-world - Qt Hello World project for AppImage creation using appimage-builder.
  • qt-qml-project-template-with-ci - Template for a Qt/QML application with batteries included: GitHub CI, automated GUI testing, automatic code-format checks and more. Compiles for Linux (AppImage), Mac, and Android.
  • mini-qml - Minimal Qml application template with deployment for Linux (AppImage), Windows, macOS and WebAssembly.
  • wxWidgetsTemplate - Cross-platform application template for wxWidgets C++, with pre-set files and IDE projects, supporting AppImage.
  • Briefcase Linux AppImage Template - Cookiecutter template for building Python apps that will run under Linux, packaged as an AppImage.

Resources

Specs

Documentation

Tutorials

Articles

Videos

Books

  • Mastering Qt 5 - Contains a section on how to package and deploy Qt applications for Linux using linuxdeployqt.

Blogs

Courses

Community

Miscellaneous

  • AppImage wiki - Official AppImage wiki.
  • AppImageZip - Experimental pure Rust implementation of the AppImage runtime that uses Zip as the backing file system image.
  • help-wanted - AppImage issues that the AppImage team would like your help with. A great way to get started contributing to the project.
  • appdwarf - A tool to convert an AppDir or an existing AppImage file, either as a local file or from a URL, into a highly compressed portable image using dwarfs.

Related

Other awesome lists