• Stars
    star
    5,530
  • Rank 7,417 (Top 0.2 %)
  • Language
    C++
  • License
    MIT License
  • Created over 6 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Helper application for Linux distributions serving as a kind of "entry point" for running and integrating AppImages

AppImageLauncher

makes your Linux desktop AppImage readyâ„¢

Integrate AppImages to your application launcher with one click, and manage, update and remove them from there. Double-click AppImages to open them, without having to make them executable first.

AppImageLauncher plays well with other applications managing AppImages, for example app stores. However, it doesn't depend on any of those, and can run completely standalone.

😃 Info on how to install and use AppImageLauncher on the wiki.

AppImageLauncher is a novel and unique solution of integrating with the system. It intercepts all attempts to open an AppImage to provide its integration features.

Being the launcher for AppImages, AppImageLauncher can control how the system treats AppImages. It integrates them into the system, provides helpers for updating or removing AppImages, and a lot more.

On their first execution (i.e., if they have not been integrated yet), it displays a dialog prompting the user whether to run the AppImage once, or move it to a predefined location and adding it to the application menus, launchers, etc.

Features

AppImage desktop integration

This core feature allows you to integrate AppImages you download into your application menu or launcher, to make it easier for you to launch them. It also takes care of moving them into a central location, where you can find them later. Furthermore, it sets up the update and removal entries in the launcher for you.

AppImages use the term "desktop integration", as they're not "installed" in the traditional sense. They remain single, self-contained executable files. AppImageLauncher and other tools extract and patch the desktop entry as well as the related icons into the relevant locations. More information on desktop integration can be found in the AppImage docs.

Update management

After desktop integration, the context menu of the AppImage's entry in the application launcher will have an "Update" entry that launches a little helper tool to apply updates.

Remove AppImages from system

Click the "Remove" entry in the context menu in the application launcher and the removal tool will ask you to confirm. If you choose to do so, the desktop integration is undone, and the file is removed from your system.

CLI

The packages ship with a CLI tool called ail-cli, providing basic operations in the terminal, for automation in scripts etc. As of February 2020, only integration and unintegration are supported. More features planned!

Differences between regular and Lite version

From version 1.4.0, there's a Lite edition of AppImageLauncher. It provides all of AppImageLauncher you can get without having root access to your computer. AppImageLauncher Lite is shipped as an AppImage, which can be installed by users from the command-line. Enter ./appimagelauncher-lite...AppImage install. in a terminal, and it integrates itself in the users' home directory.

Traditional packages are highly recommended if possible, as they provide many more features and provide a much better overall experience.

Note: if you're interested in a GUI installer, please consider sending a pull request. More information in #243.

About

Currently, desktop environments consider exexutables a security risk, and would rather have users use the app stores they include.

The ability to easily run them, however, isn't all that's needed to provide a good AppImage desktop experience. Making them accessible from the application menus and launchers is a level of "desktop integration" that can't be provided by the AppImages themselves properly (even though some AppImages ship with a "desktop integration script" prompting the user to do so). There are too many impliciations requiring external software, especially regarding cleanup and removal of AppImages. (If applications are simply made executable, they're still spread all over the users' personal files and folders.) The average user will not find a "Downloads" directory full of AppImages with cryptic filenames friendly.

Therefore, system-side ways have been developed to perform the desktop integration. One of the first solutions was appimaged, a daemon users could install to perform everything automagically in the background, without notifying the user in any way. It scans a predefined set of directories including ~/Downloads and ~/.bin, making recognized AppImages executable and then performing the desktop integration. Those operations and monitoring produced a lot of file I/O, so were rather inefficent. Also, many users don't like the lack of control. The approach also opens attack vectors and thus can be considered a security hazard, as a vulnerability discovered in appimaged recently has shown.

As seen in

🎥 Tutorials:

🔉 Podcasts:

📄 Articles

Installation

System-wide Installation

AppImageLauncher integrates deeply into the system. Therefore, an installation via native system packages is the preferred way to install AppImageLauncher. This way, AppImageLauncher's package can perform the necessary steps to have your system use it for all AppImage invocations.

Compatibility table (likely incomplete.) Please, feel free to open PRs to add distributions.

Release filename Build system Compatible distributions (incomplete)
appimagelauncher-<version>.xenial_(amd64,i386).deb Ubuntu Xenial Ubuntu Xenial (16.04), Debian Stretch (9), Netrunner 17.01
appimagelauncher-<version>.bionic_(amd64,i386).deb Ubuntu Bionic Ubuntu Bionic (18.04), Ubuntu Disco (19.04), Ubuntu Eoan (19.10) and newer, Debian buster (10) and newer, Netrunner 19.01, 19.08 and newer
appimagelauncher-<version>.disco_(amd64,i386).deb Ubuntu Disco Ubuntu Disco (19.04)
appimagelauncher-<version>.eoan_(amd64,i386).deb Ubuntu Eoan Ubuntu Eoan (19.10) and newer
appimagelauncher-<version>.buster_(amd64,i386).deb Debian Buster Debian Buster (10) and newer, Netrunner 19.01 and 19.08
appimagelauncher-<version>.(i386,x86_64).rpm Ubuntu Xenial openSUSE Leap 42 and newer, possibly openSUSE Tumbleweed, SUSE Enterprise Linux, RHEL 7, CentOS 7
  • Ubuntu Trusty (14.04) and newer
    • Important: Ubuntu Bionic (and newer) broke with the backwards compatibility of its libcurl packages, therefore users of these systems need to install the special bionic package
  • Debian stable (Jessie, 8) and newer
  • Netrunner 17 and newer
  • openSUSE Leap 42 and newer
  • openSUSE Tumbleweed

The installation of packages on systems with a set of packages similar to one of the listed ones (e.g., Linux Mint, Fedora, etc.) should work as well.

Note: For Ubuntu 19.04 and newer as well as derivatives, there's two PPAs (personal package archives) available providing a simple way to install and update AppImageLauncher (thanks Peter Jonas for creating and maintaining them):

Manjaro and Netrunner Rolling users can install AppImageLauncher with a distribution-provided package called appimagelauncher.

Arch Linux, Manjaro, Antergos and Netrunner Rolling users can use AUR to install AppImageLauncher by installing appimagelauncher-git (thanks @NuLogicSystems for setting up the build).

Other systems derived from the listed ones, such as for instance Linux Mint (Ubuntu), should support AppImageLauncher as well. If they don't, please don't hesitate to create an issue.

Note: Feel free to request support for other distributions by opening an issue.

Build from source

Build instructions in BUILD.md.

Background

Technical details about how AppImageLauncher registers itself on this wiki page.

More Repositories

1

kodi-invidious-plugin

Invidious plugin for Kodi. A privacy-friendly way of viewing YouTube videos, built using the awesome Invidious service's API.
Python
50
star
2

appimagelint

Check AppImages for compatibility, best practices etc. Powerful functionality combined with simple usage and human-friendly feedback.
Python
36
star
3

appimagecraft

Powerful build script generator with a focus on making AppImages.
Python
32
star
4

mediaplayer-setup

Setup guides for cheap (chinese) media player hardware
Shell
8
star
5

prebuilt-cmake

CMake builds, made on various distros. Very useful for CI purposes.
Shell
6
star
6

pyuploadtool

Build-system-agnostic tool to create releases on and upload artifacts to various releases hosting providers.
Python
6
star
7

python-appimageupdate

Python bindings to libappimageupdate
Python
5
star
8

FlashAssassin

Toshiba FlashAirâ„¢ browser client
JavaScript
4
star
9

type3-runtime

AppImage type 3 runtime draft
C++
4
star
10

relbot

Just yet another IRC bot.
Python
4
star
11

blueflare

Blueflare, a Blue Nebula server browser inspired by Redflare, written in Python
Python
3
star
12

backup-snippets

A collection of scripts that might come in handy for backing up data on systems.
Shell
3
star
13

planetmule-appimage

Build AppImages for Planet M.U.L.E. Showcases how Java apps can be bundled in AppImages.
Shell
2
star
14

cura-type2-appimages

DEPRECATED, STARTING WITH 4.2 THE OFFICIAL ONES ARE TYPE 2, TOO! Tool to "convert" existing Cura AppImages into type 2 ones by extracting the old ones and building new ones using appimagetool. Automated on Travis CI. Supports AppImageUpdate.
Shell
2
star
15

docker-deploy

Tools making deployments with Docker easier
Go
2
star
16

MasterServer

A master server implementation for Revelade Revolution and Sauerbraten-Fork.
Python
2
star
17

redeclipse-docker

Docker container for Red Eclipse server
Python
2
star
18

AppImageLauncherFS

Experimental FUSE filesystem for use with AppImageLauncher
C++
2
star
19

etherpad-lite-frontend

Frontend for Etherpad Lite. Adds LDAP-based authentication and a web UI for management. Has rudimentary access control for harmful operations (removal of pads etc.).
Python
2
star
20

appimage-binfmt-bypass

INTEGRATED INTO APPIMAGELAUNCHER -- Proof of concept, showing how to bypass AppImageLauncher's binfmt_misc integration and launch AppImages normally, without awkward workarounds like a FUSE filesystem.
C++
2
star
21

redeclipse-appimage

Build AppImages for Red Eclipse!
Shell
1
star
22

ocs-manager

A tool to handle item installation from OCS provider, file management, and apply themes
C++
1
star
23

libdesktopenvironments

A library that simplifies native UI engineering on the Linux desktop
C++
1
star
24

uploadtool-test

1
star
25

retext-appimage

Scripts for building ReText AppImages
Shell
1
star
26

re-bootswatch

Formerly hosted on https://github.com/red-eclipse/bootswatch. They deleted it, so I'm re-uploading it here.
HTML
1
star
27

libreverse

A collection of various 3D models, with liberal licensing. Most of them are designed exclusively for 3D printing.
CSS
1
star
28

travis-arm-docker-test

1
star
29

appimagetool-mwe

Shell
1
star
30

redirector

A simple URL shortener like service primarily intended for self-hosting, easy to configure and supporting dynamic redirection through callbacks.
Python
1
star
31

voctogui-live-cd

Creates a live distribution running voctogui directly after the boot. Simply boot from it and turn any computer into a voctomix controller.
Shell
1
star