Appimage Integrator provides a simple and intuitive way to manage your AppImage applications, similar to how applications are integrated on macOS. With this tool, you can easily add or remove AppImage applications from your system's application menus and launchers.
- Automatic Integration: Drag and drop an AppImage file into your Applications folder, and it will be automatically integrated into your application menus and launchers with their original application name, icon, desciption and category.
- Automatic Removal: Drag out or delete an AppImage file from your Applications folder, and it will automatically disappear from your application menus and launchers.
- Downloads Monitoring: Detects AppImages in ~/Downloads and offers one-click integration via notification action.
- Interactive Notifications: Run newly integrated apps directly from notifications.
Appimage Integrator runs as a systemd user service that continuously monitors the Applications folder for any changes. When an AppImage is added or removed, the service takes action, ensuring your application menus and launchers are always up-to-date.
No more manual editing of .desktop files or searching for icons. Appimage Integrator handles everything for you!
Default installation (user mode with systemd):
wget -qO /tmp/install https://raw.githubusercontent.com/apapamarkou/appimage-integrator/main/install; bash /tmp/installCustom installation options:
./install [-user|-system] [-systemd|-autostart]-user(default): Install to~/.local/share/appimage-integrator-system: Install to/opt/appimage-integrator(requires sudo)-systemd(default): Run as systemd user service-autostart: Run via XDG autostart
wget -qO /tmp/uninstall https://raw.githubusercontent.com/apapamarkou/appimage-integrator/main/uninstall; bash /tmp/uninstallOnce installed, Appimage Integrator runs as a systemd user service. Check status with:
systemctl --user status appimage-integrator.serviceThe service also monitors your ~/Downloads folder. When an AppImage is downloaded:
- A notification appears: "[AppName] appeared in Downloads"
- Click the "Integrate [AppName]" button to move it to Applications and integrate automatically
- Or manually move the AppImage to
~/Applicationsfolder
Enjoy! If you encounter any issues or have suggestions for improvements, feel free to open an issue or contribute to the project.
This project consists of a set of Bash scripts, with the main script serving as an observer that leverages inotifywait to monitor changes in the ~/Applications and ~/Downloads directories. When a new AppImage file appears in the ~/Applications folder, the observer triggers the integration script. This script extracts relevant contents from the AppImage, such as the icon and .desktop file, copying them to the appropriate locations: icons are moved to ~/.local/share/icons, and the .desktop file is placed in ~/.local/share/applications.
When an AppImage appears in ~/Downloads, the observer waits for the download to complete, then shows a notification with an "Integrate" action button that moves the file to Applications and triggers integration.
If an AppImage is removed from the ~/Applications directory, the observer calls a cleanup script, which deletes the corresponding icon and .desktop file.
During installation, the scripts are copied to ~/.local/share/appimage-integrator (or /opt/appimage-integrator for system-wide installation), and a systemd user service is created and enabled. The service starts automatically on login and monitors the Applications folder. The uninstaller detects the installation mode and removes all files accordingly.
All file operations are contained within the user's $HOME directory, and no sudo privileges are required. The observer runs with single-threaded protection.
Dependencies (git, inotify-tools, libnotify) are automatically detected and can be installed during the installation process for supported distributions (Arch, Debian, Fedora, openSUSE).
This project is licensed under the GNU License.
Happy integrating!
