Skip to content
Switch branches/tags

Desktop File Generator

Build Go Report Card

Generates .desktop files and downloads .png icons based on command line arguments.

See gendesk --help or the man page for more info.

Pull requests are welcome.

Packaging status

Changes from 1.0.8 to 1.0.9

  • Update documentation.
  • Expand variables, ref #16.
  • Add a --path flag for setting the starting directory, ref #17.
  • Add keywords for detecting the AudioVideo category, and for detecting e-mail related applications.
  • Only set noExecSpecififed if the flag was not given.
  • If --exec is not specified for e-mail related applications, add %u to the Exec field.
  • Consider the Email;Network;Office; categories, ref #19.
  • Update dependencies.

Changes from 1.0.7 to 1.0.8

  • Update dependencies.

Changes from 1.0.6 to 1.0.7

  • Update documentation.
  • Also strip the -bin suffix.
  • Update CI configuration.
  • Minor improvement to the --help output.
  • Add additional categories.
  • Update dependencies.

Changes from 1.0.5 to 1.0.6

  • Fix an issue with the -hg suffix (thanks Michael Straube).
  • Fix an issue with the package description (thanks Simon Dierl).
  • Minor changes.
  • Update dependencies.

Changes from 1.0.4 to 1.0.5

  • If the first argument is not a file that exists, use it as the package name.
  • Update dependencies.

Changes from 1.0.3 to 1.0.4

  • Include go.mod and go.sum in the release package.
  • Minor changes to the output message when no arguments are given.
  • Update dependencies.

Changes from 1.0.2 to 1.0.3

  • Let flags overrides the values from a given PKGBUILD file.
  • Switch from goconf to goconfig.
  • Switch from term to textoutput.
  • Requires Go 1.10 or later.

Changes from 1.0.1 to 1.0.2

  • Set version to 1.0 instead of 1.2 when generating .desktop files, to support a wider range of distributions.

Changes from 1.0.0 to 1.0.1

  • Fix a typo in the --help output.
  • Update the release script.

Changes from 0.7.0 to 1.0.0

  • Add --icon flag, ref #7.
  • Update to the desktop-entry-spec 1.2 format (remove Encoding and specify Version), ref #8.
  • Several minor changes, as suggested by the golint utility.
  • Tested with Go 1.11.

Changes from 0.6.5 to 0.7.0

  • Updated vendored dependencies.
  • Added support for goreleaser.
  • Improved handling of icons, if an icon is missing.
  • Minor changes and refactoring.

Changes from 0.6.4 to 0.6.5

  • Ignore the -svn suffix in package names (same as for -git, thanks @mstraube).
  • Use text/template for generating the .desktop file contents.
  • Minor changes to the command line output/documentation.
  • Some refactoring.
  • Tested with Go 1.9.

Changes from 0.6.3 to 0.6.4

  • Fix bug where some flags could not be overridden.

Changes from 0.6.2 to 0.6.3

  • Will now ignore the -git suffix if it is part of a package name.

Changes from 0.6.1 to 0.6.2

  • Added the possibility of having a configuration file for specifying a different URL for searching for missing icons.
  • Remove the --iconurl flag.
  • Refactored out some code to an external package.

Changes from 0.6 to 0.6.1

  • Support for StartupNotify=true/false
  • Both --mimetype and --mimetypes are allowed
  • Guesses more categories than before

Changes from 0.5.5 to 0.6

  • Added an option for generating .desktop files for launching window managers

Changes from 0.5.4 to 0.5.5

  • Bug fix when generating .desktop files from PKGBUILD files.

Changes from 0.5.3 to 0.5.4

  • Added a -f flag for overwriting files (will not overwrite without it).
  • Some refactoring

Changes from 0.5.2 to 0.5.3

  • Added a --terminal flag for specifying if the application should be run in a terminal.
  • Some refactoring.

Changes from 0.5.1 to 0.5.2

  • Support for additional environment variables.

Changes from 0.5.0 to 0.5.1

  • Support for $pkgname and $pkgdesc.
  • Updated the man page.
  • Will try to download icons specified with --iconurl.

Changes from 0.4.4 to 0.5.0

  • Command line options, no need to specify a PKGBUILD.

Changes from 0.4.3 to 0.4.4

  • Changed the URL for searching for icons from Fedora to Open Icon Library

Changes from 0.4.2 to 0.4.3

  • Fixed minor bug where puzzle games were not placed in the right category
  • Added _categories=()

Changes from 0.4.1 to 0.4.2

  • Added category "Graphics;3DGraphics;" for 3D modellers
  • Added category "System;" for sensor monitors
  • Added category "Game;BoardGame;" for kw "board", "chess", "goban" or "chessboard"
  • Added category "Office" for kw "e-book" and "ebook"
  • Doesn't use ".png" by default when specifying an icon

Changes from 0.4 to 0.4.1

  • Fixed a bug where _name=() and _comment=() didn't work as they should

Changes from 0.3 to 0.4

  • Added _genericname=()
  • Added _comment=()
  • Added _mimetype=()
  • Added Type=Application
  • Added category "Game;LogicGame" for keyword "puzzle"
  • Added category "Game;ArcadeGame" for keyword "fighting"
  • Fixed weird formatting in --help output
  • Added _custom=() for adding custom fields at the end of the .desktop file
  • Glob for existing .svg icons too
  • Shorter lines
  • Moved functions and settings related to terminal output to a separate file

Changes from 0.2 to 0.3

  • New flag: -q for quiet
  • New flag: --nocolor for no color
  • New flag: -n for not downloading anything (only generate a .desktop file)
  • New flag: -q for quiet (no stdout output)
  • Added _name=('Name') to be able to specify a name that isn't only lowercase (like "ZynAddSubFX" or "jEdit")
  • kw "synthesizer" is now category AudioVideo
  • kw "editor" is now category TextEditor and/or Development;TextEditor
  • kw "emulator" is now category "Game"
  • kw "game" is now category "Game"
  • kw "combat" is now be category "Game;ArcadeGame"
  • kw "GPS" or "inspecting" is now category "Application;Science"
  • kw "player" is now category "Application;Game;"
  • kw "shooter" is now "Application;Game;ActionGame;"
  • kw "roguelike" is now "Application;Game;AdventureGame;"
  • kw "git" is now category Development;RevisionControl


  • Move kw/category mappings into a separate configuration file.


  • If you get something like GLIC_3.32 not found on Linux, try the gendesk-1.x.x-linux_static release.

General information