LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

gendesk

.desktop file generator for Linux applications

TLDR

Generate a desktop file from a PKGBUILD in the current directory
$ gendesk
copy
Generate a desktop file with package name
$ gendesk -n --pkgname=[appname]
copy
Generate with a custom display name
$ gendesk --name="[App Name]" --pkgname=[appname]
copy
Specify the exec command and categories
$ gendesk --pkgname=[app] --exec="[/usr/bin/app %U]" --categories="[Development;IDE]"
copy
Generate a terminal application entry
$ gendesk --pkgname=[app] --terminal
copy

SYNOPSIS

gendesk [options]

DESCRIPTION

gendesk generates .desktop files for Linux applications following the freedesktop.org Desktop Entry specification. It can read values from a PKGBUILD file in the current directory or accept them as command-line flags.The tool simplifies creating desktop files during package building by generating entries with proper formatting, handling icon references, categories, MIME types, and exec paths. Supported PKGBUILD variables include name, genericname, comment, mimetype, exec, and categories.gendesk is commonly used in Arch Linux package building (PKGBUILDs).

PARAMETERS

--pkgname NAME

Package name (used for filename and defaults).
--name NAME
Application display name.
--exec CMD
Command to execute (supports field codes like %U, %F).
--categories LIST
Semicolon-separated application categories (e.g., Development;IDE).
--comment TEXT
Short description comment.
--genericname NAME
Generic name for the application (e.g., "Text Editor").
--mimetype LIST
Semicolon-separated MIME types the application can open.
--terminal
Set Terminal=true in the desktop file.
--path DIR
Working directory for the application.
-n
Don't include Name field if same as pkgname.
--help
Display help information.

CAVEATS

Primarily designed for Arch Linux packaging workflows. Desktop file standards may vary between environments. Manual tweaking may be needed for complex entries.

HISTORY

gendesk was created by Alexander F. Rodseth for Arch Linux packaging to simplify .desktop file generation during package builds, reducing boilerplate in PKGBUILDs.

SEE ALSO

Copied to clipboard
Kai