A shell script to install .AppImage applications on any Linux system.
Moves the AppImage to a dedicated folder, sets executable permissions,
extracts the icon, and creates a .desktop launcher for desktop environment
integration (application menus, launchers, etc).
- Moves
.AppImagefiles to~/AppImages - Cleans up the display name automatically (strips version numbers, arch suffixes)
- Sets executable permissions
- Extracts the app icon (if found)
- Creates a
.desktopfile for menu integration - Auto-detects whether
appimage-runis needed (NixOS and similar systems) - OS-aware install hints when optional dependencies are missing
bash7zorbsdtar— for icon extraction (optional but recommended)appimage-run— auto-detected; required on NixOS and systems without a standard dynamic linker
Direct install from GitHub:
nix profile install github:rxtsel/appimage-install --no-write-lock-fileRun without installing:
nix run github:rxtsel/appimage-install -- /path/to/your-app.AppImageLocal development:
git clone https://github.com/rxtsel/appimage-install
cd appimage-install
nix develop # enter shell with all dependencies
nix run . -- /path/to/your-app.AppImageHome Manager (home.nix):
{
inputs.appimage-install.url = "github:rxtsel/appimage-install";
home.packages = [
inputs.appimage-install.packages.${system}.default
];
}NixOS system (configuration.nix):
{
environment.systemPackages = [
inputs.appimage-install.packages.${system}.default
];
}git clone https://github.com/rxtsel/appimage-install
cd appimage-install
chmod +x appimage-install.sh
mkdir -p ~/.local/bin
cp appimage-install.sh ~/.local/bin/appimage-installEnsure ~/.local/bin is in your $PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcInstall dependencies for icon extraction (optional):
| Distro | Command |
|---|---|
| NixOS | nix profile install nixpkgs#p7zip |
| Arch | sudo pacman -S p7zip |
| Debian/Ubuntu | sudo apt install p7zip-full |
| Fedora | sudo dnf install p7zip |
appimage-install /path/to/your-app.AppImageYou will be prompted for the display name (pre-filled with a cleaned-up version
of the filename), and optionally to open the .desktop file in your editor.
appimage-install ~/Downloads/Obsidian-1.5.0.AppImage
# → suggests "Obsidian" as the display nameAppImage Installer
──────────────────
[?] Application name (for system menus) [Obsidian]:
[*] Name : Obsidian
[*] ID : obsidian
[*] AppImage : /home/user/AppImages/obsidian.AppImage
[*] Desktop : /home/user/.local/share/applications/obsidian.desktop
[OK] Moved to: /home/user/AppImages/obsidian.AppImage
[OK] Icon saved: /home/user/.local/share/icons/obsidian.png
[OK] .desktop created: /home/user/.local/share/applications/obsidian.desktop
[?] Open the .desktop file in your editor? [y/N]
[OK] Obsidian installed and integrated successfully.
| Path | Description |
|---|---|
~/AppImages/<id>.AppImage |
The AppImage, renamed by display name |
~/.local/share/icons/<id>.png |
Extracted icon |
~/.local/share/applications/<id>.desktop |
Desktop launcher |