{"id":15007402,"url":"https://github.com/xyproto/gendesk","last_synced_at":"2026-05-28T16:01:14.760Z","repository":{"id":2851026,"uuid":"3855171","full_name":"xyproto/gendesk","owner":"xyproto","description":":herb: Generate .desktop files and download .png icons by specifying a minimum of information","archived":false,"fork":false,"pushed_at":"2026-05-24T00:45:36.000Z","size":4729,"stargazers_count":163,"open_issues_count":1,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-24T02:26:11.373Z","etag":null,"topics":["desktop-files","generator","go","linux","linux-desktop","utility"],"latest_commit_sha":null,"homepage":"https://gendesk.roboticoverlords.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xyproto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2012-03-28T13:21:13.000Z","updated_at":"2026-05-24T00:43:29.000Z","dependencies_parsed_at":"2025-04-17T17:42:08.772Z","dependency_job_id":"f581cc3a-ed1b-404a-82ea-aca524b87340","html_url":"https://github.com/xyproto/gendesk","commit_stats":{"total_commits":239,"total_committers":5,"mean_commits":47.8,"dds":0.03347280334728031,"last_synced_commit":"97697842fb75a4248bfbf762596cacb5550ca338"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/xyproto/gendesk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgendesk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgendesk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgendesk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgendesk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","download_url":"https://codeload.github.com/xyproto/gendesk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgendesk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33615490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-files","generator","go","linux","linux-desktop","utility"],"created_at":"2024-09-24T19:09:38.241Z","updated_at":"2026-05-28T16:01:14.751Z","avatar_url":"https://github.com/xyproto.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Desktop File Generator\n\n![Build](https://github.com/xyproto/gendesk/workflows/Build/badge.svg) [![Go Report Card](https://goreportcard.com/badge/github.com/xyproto/gendesk)](https://goreportcard.com/report/github.com/xyproto/gendesk)\n\nGenerates `.desktop` files and downloads `.png` icons based on command line arguments.\n\nSee `gendesk --help` or the man page for more info.\n\nPull requests are welcome.\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/gendesk.svg)](https://repology.org/project/gendesk/versions)\n\n## Changes from 1.0.13 to 1.0.14\n\n* Make `-o`/`--output` able to take a comma separated list of package names.\n* Trim leading and trailing whitespace if multiple output files are specified.\n* Add more tests.\n\n## Changes from 1.0.12 to 1.0.13\n\n* Add an `-o`/`--output` flag, ref issue #32.\n* Refactor.\n\n## Changes from 1.0.11 to 1.0.12\n\n* Require Go 1.25 or later.\n* Update dependencies.\n\n## Changes from 1.0.10 to 1.0.11\n\n* Silence a warning for valid additional categories, ref issue #31.\n* Update dependencies.\n* Require Go 1.24 or later.\n* Update documentation.\n* Update CI configuration.\n\n## Changes from 1.0.9 to 1.0.10\n\n* Update documentation.\n* Update CI configuration.\n* Switch from the MIT to the BSD-3 license.\n* Resolve issue #26 by renaming `default.png` to `gendesk.png`.\n* Some refactoring.\n* Add support for `.svg` icons in `PKGBUILD` files, ref #22.\n* Add a category check and warning, ref #21.\n* Use `io` instead of the deprecated `ioutil` package.\n* Update dependencies.\n\n## Changes from 1.0.8 to 1.0.9\n\n* Update documentation.\n* Expand variables, ref #16.\n* Add a `--path` flag for setting the starting directory, ref #17.\n* Add keywords for detecting the `AudioVideo` category, and for detecting e-mail related applications.\n* Only set `noExecSpecififed` if the flag was not given.\n* If `--exec` is not specified for e-mail related applications, add ` %u` to the `Exec` field.\n* Consider the `Email;Network;Office;` categories, ref #19.\n* Update dependencies.\n\n## Changes from 1.0.7 to 1.0.8\n\n* Update dependencies.\n\n## Changes from 1.0.6 to 1.0.7\n\n* Update documentation.\n* Also strip the `-bin` suffix.\n* Update CI configuration.\n* Minor improvement to the `--help` output.\n* Add additional categories.\n* Update dependencies.\n\n## Changes from 1.0.5 to 1.0.6\n\n* Fix an issue with the `-hg` suffix (thanks Michael Straube).\n* Fix an issue with the package description (thanks Simon Dierl).\n* Minor changes.\n* Update dependencies.\n\n## Changes from 1.0.4 to 1.0.5\n\n* If the first argument is not a file that exists, use it as the package name.\n* Update dependencies.\n\n## Changes from 1.0.3 to 1.0.4\n\n* Include go.mod and go.sum in the release package.\n* Minor changes to the output message when no arguments are given.\n* Update dependencies.\n\n## Changes from 1.0.2 to 1.0.3\n\n* Let flags overrides the values from a given PKGBUILD file.\n* Switch from [goconf](https://github.com/akrennmair/goconf) to [goconfig](https://github.com/unknwon/goconfig).\n* Switch from [term](https://github.com/xyproto/term) to [textoutput](https://github.com/xyproto/textoutput).\n* Requires Go 1.10 or later.\n\n## Changes from 1.0.1 to 1.0.2\n\n* Set version to 1.0 instead of 1.2 when generating `.desktop` files, to support a wider range of distributions.\n\n## Changes from 1.0.0 to 1.0.1\n\n* Fix a typo in the `--help` output.\n* Update the release script.\n\n## Changes from 0.7.0 to 1.0.0\n\n* Add `--icon` flag, ref #7.\n* Update to the desktop-entry-spec 1.2 format (remove `Encoding` and specify `Version`), ref #8.\n* Several minor changes, as suggested by the `golint` utility.\n* Tested with Go 1.11.\n\n## Changes from 0.6.5 to 0.7.0\n\n* Updated vendored dependencies.\n* Added support for [goreleaser](https://github.com/goreleaser/goreleaser).\n* Improved handling of icons, if an icon is missing.\n* Minor changes and refactoring.\n\n## Changes from 0.6.4 to 0.6.5\n\n* Ignore the `-svn` suffix in package names (same as for `-git`, thanks @mstraube).\n* Use `text/template` for generating the `.desktop` file contents.\n* Minor changes to the command line output/documentation.\n* Some refactoring.\n* Tested with Go 1.9.\n\n## Changes from 0.6.3 to 0.6.4\n\n* Fix bug where some flags could not be overridden.\n\n## Changes from 0.6.2 to 0.6.3\n\n* Will now ignore the `-git` suffix if it is part of a package name.\n\n## Changes from 0.6.1 to 0.6.2\n\n* Added the possibility of having a configuration file for specifying a different URL for searching for missing icons.\n* Remove the `--iconurl` flag.\n* Refactored out some code to an external package.\n\n## Changes from 0.6 to 0.6.1\n\n* Support for `StartupNotify=true`/`false`\n* Both `--mimetype` and `--mimetypes` are allowed\n* Guesses more categories than before\n\n## Changes from 0.5.5 to 0.6\n\n* Added an option for generating .desktop files for launching window managers\n\n## Changes from 0.5.4 to 0.5.5\n\n* Bug fix when generating .desktop files from PKGBUILD files.\n\n## Changes from 0.5.3 to 0.5.4\n\n* Added a `-f` flag for overwriting files (will not overwrite without it).\n* Some refactoring\n\n## Changes from 0.5.2 to 0.5.3\n\n* Added a `--terminal` flag for specifying if the application should be run in a terminal.\n* Some refactoring.\n\n## Changes from 0.5.1 to 0.5.2\n\n* Support for additional environment variables.\n\n## Changes from 0.5.0 to 0.5.1\n\n* Support for `$pkgname` and `$pkgdesc`.\n* Updated the man page.\n* Will try to download icons specified with `--iconurl`.\n\n## Changes from 0.4.4 to 0.5.0\n\n* Command line options, no need to specify a PKGBUILD.\n\n## Changes from 0.4.3 to 0.4.4\n\n* Changed the URL for searching for icons from Fedora to Open Icon Library\n\n## Changes from 0.4.2 to 0.4.3\n\n* Fixed minor bug where puzzle games were not placed in the right category\n* Added \\_categories=()\n\n## Changes from 0.4.1 to 0.4.2\n\n* Added category \"Graphics;3DGraphics;\" for 3D modellers\n* Added category \"System;\" for sensor monitors\n* Added category \"Game;BoardGame;\" for kw \"board\", \"chess\", \"goban\" or \"chessboard\"\n* Added category \"Office\" for kw \"e-book\" and \"ebook\"\n* Doesn't use \".png\" by default when specifying an icon\n\n## Changes from 0.4 to 0.4.1\n\n* Fixed a bug where \\_name=() and \\_comment=() didn't work as they should\n\n## Changes from 0.3 to 0.4\n\n* Added \\_genericname=()\n* Added \\_comment=()\n* Added \\_mimetype=()\n* Added Type=Application\n* Added category \"Game;LogicGame\" for keyword \"puzzle\"\n* Added category \"Game;ArcadeGame\" for keyword \"fighting\"\n* Fixed weird formatting in --help output\n* Added \\_custom=() for adding custom fields at the end of the .desktop file\n* Glob for existing .svg icons too\n* Shorter lines\n* Moved functions and settings related to terminal output to a separate file\n\n## Changes from 0.2 to 0.3\n\n* New flag: -q for quiet\n* New flag: --nocolor for no color\n* New flag: -n for not downloading anything (only generate a .desktop file)\n* New flag: -q for quiet (no stdout output)\n* Added \\_name=('Name') to be able to specify a name that isn't only lowercase (like \"ZynAddSubFX\" or \"jEdit\")\n* kw \"synthesizer\" is now category AudioVideo\n* kw \"editor\" is now category TextEditor and/or Development;TextEditor\n* kw \"emulator\" is now category \"Game\"\n* kw \"game\" is now category \"Game\"\n* kw \"combat\" is now be category \"Game;ArcadeGame\"\n* kw \"GPS\" or \"inspecting\" is now category \"Application;Science\"\n* kw \"player\" is now category \"Application;Game;\"\n* kw \"shooter\" is now \"Application;Game;ActionGame;\"\n* kw \"roguelike\" is now \"Application;Game;AdventureGame;\"\n* kw \"git\" is now category Development;RevisionControl\n\n## Requirements\n\n* Go 1.25 or later.\n\n## Troubleshooting\n\n* If you get something like `GLIBC_3.32 not found` on Linux, try the `gendesk-1.x.x-linux_static` release.\n\n## General information\n\n* Version: 1.0.14\n* Author: Alexander F. Rødseth \u0026lt;xyproto@archlinux.org\u0026gt;\n* License: BSD-3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxyproto%2Fgendesk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxyproto%2Fgendesk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxyproto%2Fgendesk/lists"}