Skip to main content

A simple freedesktop based Applications menu using ncurses

Project description

A ncurses application menu. The missing stone of my i3 setup.


A simple and lightweight alternative to Desktop Environment’s application menu. To be used when you do not remember the name of this new pdf reader you just installed yesterday night…


  • PyXdg: python’s freedesktop bindings, used in order to generate the menu.

  • Urwid: a framework build on top of ncurses.

Keybindings (case insensitive):

  • j,k,l,m or arrow: Navigate between menu entries.

  • c: Cycle through submenu.

  • e: on an application entry, launch it without exiting.

  • b: on a submenu to go back to the parent menu.



pip install xdgmenu


python install


Since i am using i3, a quick how-to integrate it in nicely. Add to your .i3/config:

set $term <your terminall emulator>

bindsym <keybinding> $term -e 'xgmenu' --title xdgmenu
for window [title="xdgmenu"] floating enable


  • Implement entry description on ‘d’ keypress (a simple text widget displaying the programm help).

  • Implement a search mode.

  • Find how to correctly handle logging with urwid application.

  • Separate the urwid logic from the application one.

  • Package and upload to pypi.


No test yet but contribution are welcomed ;)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xdgmenu-0.0.0.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distributions

xdgmenu-0.0.0-py3.5.egg (6.9 kB view hashes)

Uploaded Source

xdgmenu-0.0.0-py2.py3-none-any.whl (5.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page