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.

GitHub - gikeymarcia/pydymenu: Python wrapper for `fzf`, `dmenu`, and `rofi`. All of your dynamic menu-ing needs in one place.
Python wrapper for `fzf`, `dmenu`, and `rofi`. All of your dynamic menu-ing needs in one place. - GitHub - gikeymarcia/pydymenu: Python wrapper for `fzf`, `dmenu`, and `rofi`. All of your dynamic m...