{"id":24216630,"url":"https://github.com/creativecodecat/xmenu","last_synced_at":"2026-06-12T09:31:54.597Z","repository":{"id":141108805,"uuid":"433896373","full_name":"CreativeCodeCat/xmenu","owner":"CreativeCodeCat","description":"a x11 menu utility","archived":false,"fork":false,"pushed_at":"2022-09-09T19:20:41.000Z","size":339,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T05:06:58.751Z","etag":null,"topics":["c","imlib2","menu","unix","x11","xlib","xmenu"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CreativeCodeCat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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}},"created_at":"2021-12-01T16:10:25.000Z","updated_at":"2022-01-30T16:24:39.000Z","dependencies_parsed_at":"2023-10-04T08:31:05.509Z","dependency_job_id":null,"html_url":"https://github.com/CreativeCodeCat/xmenu","commit_stats":null,"previous_names":["hecodes2much/xmenu","creativecodecat/xmenu"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CreativeCodeCat%2Fxmenu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CreativeCodeCat%2Fxmenu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CreativeCodeCat%2Fxmenu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CreativeCodeCat%2Fxmenu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CreativeCodeCat","download_url":"https://codeload.github.com/CreativeCodeCat/xmenu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241721636,"owners_count":20009211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["c","imlib2","menu","unix","x11","xlib","xmenu"],"created_at":"2025-01-14T04:21:53.369Z","updated_at":"2026-06-12T09:31:54.545Z","avatar_url":"https://github.com/CreativeCodeCat.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XMenu\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo.gif\", title=\"demo\"/\u003e\n\u003c/p\u003e\n\nXMenu is a menu utility for X.\nXMenu receives a menu specification in stdin, shows a menu for the user\nto select one of the options, and outputs the option selected to stdout.\nXMenu can be controlled both via mouse and via keyboard.\n\nIn order to generate a menu of applications based on .desktop entries,\nas specified by XDG, checkout [xdg-xmenu](https://github.com/OliverLew/xdg-xmenu)\nby [OliverLew](https://github.com/OliverLew).\n\nCheck out my other project, [xroot](https://github.com/the-repo-club/xroot) for an application that can\nspawn xmenu by right clicking on the root window (i.e. on the desktop).\n\n\n## Features\n\nXMenu comes with the following features:\n\n* XMenu reads something in and prints something out, the UNIX way.\n* Submenus (some menu entries can spawn another menu).\n* Separators (menu entries can be separated by a line).\n* Icons (menu entries can be preceded by an icon image).\n* X resources support (you don't need to recompile xmenu for configuring it).\n* Multi-head (xmenu supports multiple monitors by using Xinerama).\n* Type-to-select (you can select an item by typing part of its name).\n\n\n## Files\n\nThe files are:\n\n* `./README`:     This file.\n* `./Makefile`:   The makefile.\n* `./config.h`:   The hardcoded default configuration for XMenu.\n* `./config.mk`:  The setup for the makefile.\n* `./demo.gif`:   A gif demonstrating how XMenu works.\n* `./xmenu.1`:    The manual file (man page) for XMenu.\n* `./xmenu.c`:    The source code of XMenu.\n* `./xmenu.sh`:   A sample script illustrating how to use XMenu.\n* `./icons/`:     Icons for the sample script\n\n\n## Installation\n\nFirst, edit `./config.mk` to match your local setup.\n\nIn order to build XMenu you need the `Imlib2`, `Xlib`, `Xinerama` and `Xft` header files.\nThe default configuration for XMenu is specified in the file `config.h`,\nyou can edit it, but most configuration can be changed at runtime via\nX resources.  Enter the following command to build XMenu.  This command\ncreates the binary file `./xmenu`.\n\n\tmake\n\nBy default, XMenu is installed into the `/usr/local` prefix.  Enter the\nfollowing command to install XMenu (if necessary as root).  This command\ninstalls the binary file `./xmenu` into the `${PREFIX}/bin/` directory, and\nthe manual file `./xmenu.1` into `${MANPREFIX}/man1/` directory.\n\n\tmake install\n\n\n## Running XMenu\n\nXMenu receives as input a menu specification where each line is a menu\nentry.  Each line can be indented with tabs to represent nested menus.\nEach line is made out of a label and a command separated by any number\nof tabs.  Lines without labels are menu separators.\n\nSee the script `./xmenu.sh` for an example of how to use XMenu to draw a\nsimple menu with submenus and separators.  The file `./demo.gif` shows how\nthe menu generated by that script looks like.\n\nRead the [manual](https://github.com/the-repo-club/xmenu/wiki) for more information on running xmenu.\n\n\n## Acknowledgements\n\n* [thingmenu](https://github.com/singpolyma/thingmenu) for being the base\n  for xmenu's code.  However, xmenu evolved enough that it no longer resembles\n  thingmenu at all.\n* [dmenu](https://tools.suckless.org/dmenu/) for inspiring the stdin-to-stdout\n  interface, and being base for drawing routines and input method code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcreativecodecat%2Fxmenu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcreativecodecat%2Fxmenu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcreativecodecat%2Fxmenu/lists"}