phil9/fm

Description
fm
===
fm provides a gui to select an item from a list using a fuzzy matching algorithm.  
When an item is selected, it is sent to the plumber `send` port unless the `-p` option
is used in which case the item name is printed on standard output and the application exits.

![fm](fm.png)

Left-click an item to select it.  
Right-click to activate the selected item.

Keyboard shortcuts:
- Arrow up / down change selection
- Enter activate selection
- Page up / down scroll by one screen page
- Home go to first item in the list
- End go to last item in the list
- Ctrl-U clears the input line
- Esc clears the input line unless input is empty in which case it exits fm
- Del to exit fm

Usage:
-------
Install with usual ``mk install``  
Run: ``... | fm [-p]``

The provided `b` script gives a usage example.

Credits:
---------
The fuzzy matching algorithm has been ported from: 
* https://github.com/forrestthewoods/lib_fts/

Bugs:
------
Obviously!
Last 5 commits (shortlog)
Date Author Short message Commit hash
2021-11-15 phil9 fix ^W behaviour 84f3b7fe1ef54fe53d4a43036f29f2f42f52a7f7
2021-11-15 phil9 implement ^W in text entry 607f14e3f16eec13872118803992115de7b32f68
2021-11-15 phil9 add mouse2 scrolling 0d3ec6c7f3344091acd91516a097d01c29840966
2021-11-15 phil9 Merge pull request #2 from ftrvxmtrx/button-4 1da2343c78f70ff691716e5aefc44303a691da27
2021-11-15 phil9 add mouse scrolling with scrollbar or mouse wheel cae6d00f2bb23945b64267b985925fd041f5aa38
Files (browse)
LICENSE
README.md
a.h
b
fm.c
fm.png
main.c
mkfile