User Rating 0.0
Total Usage 4 times
The name shown in the menu.

Drag & Drop Source Image
or .desktop file to parse

Supports PNG, SVG, JPG, WEBP (Max 10MB)

Live Environment Preview

Tooltip Comment
Ready to generate
Is this tool helpful?

Your feedback helps us improve.

About

In the Linux ecosystem, application integration relies on strict adherence to the FreeDesktop.org (XDG) specifications. A seamless user experience depends on correct .desktop file syntax, MIME type associations, and a complete hierarchy of icon resolutions. Missing a single resolution like 48×48px can cause an application to appear broken in legacy file managers, while incorrect Categories can hide the app from system menus entirely.

This tool is an industrial-strength generator designed for package maintainers and developers. Unlike basic resizers, it implements a full Compliance Engine. It handles multi-resolution scaling with alpha-channel preservation, enforces correct Exec argument syntax (e.g., %F vs %u), and validates against the registered XDG Category list. It is optimized for modern packaging formats including AppImage, Flatpak, and Snap, ensuring your software integrates natively into GNOME, KDE Plasma, XFCE, and other desktop environments.

linux xdg icon theme desktop entry appimage flatpak developer tools

Formulas

Icon scaling utilizes a bicubic interpolation logic to minimize aliasing artifacts when downsampling from high-resolution sources. The target directory structure is strictly defined:

Path = icons/hicolor/ + RES + /apps/ + NAME + .png

For the .desktop file, the Categories logic follows a set intersection rule. A valid entry requires:

Valid = Categories MainCategories

Where MainCategories includes AudioVideo, Development, Education, Game, Graphics, Network, Office, Settings, System, and Utility.

Reference Data

KeyTypeRequiredDescription & Validation Logic
TypestringTRUEMust be Application, Link, or Directory. This tool defaults to Application.
NamelocalestringTRUESpecific name of the application (e.g., "Mozilla Firefox").
GenericNamelocalestringFALSEGeneric description (e.g., "Web Browser"). Used in tooltips and list views.
ExecstringTRUECommand to execute. Must accommodate arguments: %f (single file), %F (file list), %u (URL).
IconstringTRUEIcon name (no extension) or absolute path. Must match the generated file name.
Categoriesstring listTRUESemicolon-separated list. Must include a Main Category (e.g., Utility).
MimeTypestring listFALSEFile types the app can open. Example: image/png;image/jpeg;.
StartupNotifybooleanFALSEIf TRUE, the cursor changes to a spinner while the app launches.

Frequently Asked Questions

These are field codes for argument passing. %f passes a single filename (even if multiple are selected). %F passes a list of files (ideal for text editors). %u passes a single URL. %U passes a list of URLs. Mixing them causes undefined behavior.
KDE Plasma is aggressive about scaling. If you only provide a 64px icon but the user has set their panel to 48px, the system scales it down effectively. However, non-integer scaling (e.g., 1.25x scaling on HiDPI) requires high-quality source assets. This tool generates the full hicolor hierarchy to ensure pixel-perfect rendering at every step.
Yes. Enable the "AppImage Mode" in the tool. It ensures the .desktop file uses relative paths where permitted and generates an AppRun compatible icon structure.
These are the right-click menu options (Jumplists) on an application icon. For example, a browser might have "Open New Window" or "Incognito Mode". This tool supports adding these dynamic actions to your configuration.
Absolutely. The generated directory structure (/usr/share/icons/... and /usr/share/applications/...) maps 1:1 with the standard Linux filesystem hierarchy (FHS), enabling you to drop the assets directly into your debian/install files.