This is an experimental implementation of the optional AppImage daemon,
appimaged, in Go.
Assuming you are using a 64-bit Intel machine (amd64, also known as x86_64), you can use our pre-compiled binaries. To try it out, boot a Ubuntu, Debian, Fedora, openSUSE, elementary OS, KDE neon,... Live ISO and run:
# Remove pre-existing similar tools systemctl --user stop appimaged.service || true sudo apt-get -y remove appimagelauncher || true # Clear cache rm "$HOME"/.local/share/applications/appimage* # Optionally, install Firejail (if you want sandboxing functionality) # Download mkdir -p ~/Applications wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases -O - | grep "appimaged-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2) -P ~/Applications/ chmod +x ~/Applications/appimaged-*.AppImage # Launch ~/Applications/appimaged-*.AppImage
systemctl --user disable appimaged.service || true systemctl --user stop appimaged.service || true rm ~/.config/systemd/user/appimaged.service rm ~/.local/share/applications/appimagekit*.desktop rm ~/Applications/appimaged-*-x86_64.AppImage
Do not remove "~/Applications/appimaged*.AppImage". The service is running from this location (unless you want to do the uninstallation process)
The extension of AppImage files MUST be case-sensitive to be recognized by appimaged service.
Folders being watched for AppImage files:
- $PATH, which frequently includes /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, and other locations
https://github.com/probonopd/go-appimage/releases/tag/continuous has builds for 32-bit Intel, 32-bit ARM (e.g., Raspberry Pi), and 64-bit ARM.
- Registers type-1 and type-2 AppImages
- Detects mounted and unmounted partitions by watching DBus
- Significantly lower CPU and memory usage than other implementations
- Error notifications in case applications cannot be launched for whatever reason
- If Firejail is on the $PATH, various options for running applications sandboxed via the context menu
- Updating applications via the context menu
- Opening the containing folder via the context menu
- Extracting AppImages via the context menu
- Announces itself on the local network using Zeroconf (more to come)
- Real-time notification based on PubSub when updates are available, as soon as they are uploaded
- Quality checking of AppImages and notifications in case of errors (can be extended)
- Launch Services like functionality, e.g., being able to launch the newest version of an AppImage that we know of
- Seamless P2P distribution using IPFS?
- Decentralized PubSub using IPFS?
- Web-of-trust (based on a Social Graph)?
If for whatever reason you would like to build from source:
sudo apt-get -y install gcc if [ -z $GOPATH ] ; then export GOPATH=$HOME/go ; fi go get github.com/probonopd/go-appimage/src/appimaged go build -trimpath -ldflags="-s -w" github.com/probonopd/go-appimage/src/appimaged