Skip to content
DrSheppard edited this page Aug 3, 2022 · 3 revisions

The AppDir format for application directories was first introduced by ROX Filer. https://rox.sourceforge.net/desktop/AppDirs.html

The AppRun file is the main entry point and is what is executed when the AppDir (or the AppImage containing it) is launched. The AppImageKit project provides an AppRun.c implementation, but you are not bound to use that one - you could also write your own implementation in C, sh, or just use a symlink to the main executable - the only requirement is that AppRun will successfully launch the main payload application.

The basic structure of an AppDir which can look something like this:

AppDir
└── AppRun
└── your_app.desktop
└── your_app.png
└── usr
    ├── bin
    │   └── your_app
    ├── lib
    └── share
        ├── applications
        │   └── your_app.desktop
        └── icons
            └── <theme>
                └── <resolution> 
                    └── your_app.png

Replace <theme> and <resolution> with (for example) hicolor and 256x256 respectively; see icon theme spec for more details.

Desktop Files

The desktop files must follow the name [your_app].desktop. A desktop file at the root of your AppDir is mandatory (it may be a symlink to some other location such as usr/share/applications/[your_app].desktop).

The desktop file format is a freedesktop.org project to provide a common standard for desktop environments to list and start applications from graphical menus.

A full reference of entries is available here.

Example desktop file

[Desktop Entry]
Name=Hypnos
Exec=hypnos %F
Icon=hypnos
Type=Application
Categories=Audio;AudioVideo;
Comment=Music Player and Library
MimeType=inode/directory;audio/flac;
Name[en]=Hypnos
Terminal=false
StartupNotify=true
NoDisplay=false

Caveats

  • If you happen to include the Version key, please not that this is not the version of your application but rather the version of the desktop file format. If you're unsure about it, don't use it at all.
  • The Icon entry must be the name of your icon without the file extension.
  • The Categories list must only contain names from this or this list, separated by ; and also terminated by ;.