Skip to main content

A pythonic wrapper interface for fzf, dmenu, and rofi.

Project description

pydymenu: Pythonic wrapper for fzf and rofi

A single package to serve all your dynamic menu-ing needs with a simple Pythonic interface.

Installation from PyPi

pip install --user pydymenu

Usage pydymenu.MENU(input_list, **options) -> Union[list[str], None]

import pydymenu

people = ["Joe", "Sam", "Daniel", "Bret", "Jordan", "Eric", "Lex"]

# simple
rofi = pydymenu.rofi(people, prompt="Pick a podcaster: ")
fzf = pydymenu.fzf(people, prompt="Pick a podcaster: ")

# mutli
fzf = pydymenu.fzf(people, prompt="Pick a podcaster: ", multi=True)
rofi = pydymenu.rofi(people, prompt="Pick a podcaster: ", multi=True)

Universal Options

prompt : The prompt text shown at the selection (default: >)

multi : Whether or not to allow multiple selections. When multi=True returns a list of selected values. If one selection is made returns a list of length one. If no selection is made returns None. (default: multi=False)

case_sensitive : Whether or not to use case sensitive search (default: case_sensitive=False)

FZF Options

preview : Command that will be run on each entry and displayed as it's preview when using the fuzzy finder.

Project Status

Working support for the most common fzf and rofi use cases. Currently expanding functionality for those two programs then going to move onto adding dmenu support.

I'm trying to keep this package as a pretty simple drop-in replacement for iterfzf. Biggest design changes are:

  • fzf automatically sorts results based on match quality.
  • Selections always return lists of strings. When multi=False returns a list of legnth 1.

Roadmap:

  • Support for dmenu systems

Source of Truth

This project is available on github and gitlab. Each push to master automatically goes to both so choose whichever platform you prefer.

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

pydymenu-0.3.0.tar.gz (5.7 kB view hashes)

Uploaded Source

Built Distribution

pydymenu-0.3.0-py3-none-any.whl (9.4 kB view hashes)

Uploaded 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