add a real README (not from the man pages) - iomenu - interactive terminal-based selection menu
(HTM) git clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
(DIR) commit 3905e591078c229e7db64662c9f933bc1c7a504d
(DIR) parent dc5363e17ca9699906f7789d6175dc09aa6418ec
(HTM) Author: Josuah Demangeon <mail@josuah.net>
Date: Tue, 12 Jun 2018 23:04:38 +0200
add a real README (not from the man pages)
Diffstat:
M README | 94 +++++--------------------------
1 file changed, 14 insertions(+), 80 deletions(-)
---
(DIR) diff --git a/README b/README
@@ -1,86 +1,20 @@
-IOMENU(1) General Commands Manual IOMENU(1)
+iomenu
+================================================================================
-NAME
- iomenu – interactive selection menu
+*iomenu* is an interactive menu inspired from dmenu [1]: it reads lines from
+stdin display them to the screen [1], and filter them as the user type. When
+`Enter` is pressed, the selected line is printed to stdout.
-SYNOPSIS
- iomenu [-#] [-l lines] [-p prompt]
+This permits to build interactive menu with shell pipes. As an example, a poor
+man's music player could be done this way:
-DESCRIPTION
- iomenu is an interactive filtering and selection tool for the terminal.
+ $ find ~/music -name '*.flac' | iomenu | xargs mplayer
- It reads lines from standard input, and prompt for a selection. The
- selected line is printed to standard output.
+It will print all the FLAC files in `~/music` to iomenu which shows a fulscreen
+menu, and the selected file will be printed to xargs mplayer.
- -l lines If lines is 0 or if -l is not set, the items are
- displayed in an horizontal list. Otherwise, in a
- vertical list of at most lines lines.
+iomenu does not use ncurses but ansi escape sequences [2] instead so it does
+not have dependencies beyond a C compiler.
- -p prompt Set the prompt to display at the beginning of the input
- to prompt.
-
- -# If a line starts with #, iomenu will interprete it as a
- header, which always matches, and can not be printed.
-
-KEY BINDINGS
- An active selection is highlighted, and can be controlled with
- keybindings. As printable keys are entered, the lines are filtered to
- match each word from the input.
-
- Up, Down, Ctrl + p, Ctrl + n
- Move selection to the previous/next item.
-
- PageUp, PageDown, Alt + v, Ctrl + v
- Move one page up or down.
-
- Ctrl + m, Ctrl + j, Enter
- Print the selection to the standard output, and exit 0.
-
- Ctrl + h, Bakcspace
- Remove last character from current input.
-
- Ctrl + w Remove last word from current input.
-
- Ctrl + u Remove the whole input string.
-
- Ctrl + i, Tab Fill the input with current selection.
-
-EXIT STATUS
- The iomenu utility exits 0 on success, and >0 if an error occurs.
-
-EXAMPLES
- Open a bookmark from a list in a text file:
-
- iomenu < bookmarks-urls.txt | xargs firefox
-
- Go to a subdirectory:
-
- cd "$(find . -type d | iomenu)"
-
- Edit a file located in HOME:
-
- EDITOR "$(find "$HOME" -type f | iomenu -l 255)"
-
- Play an audio file:
-
- mplayer "$(find ~/Music | iomenu)"
-
- Select a background job to attach to:
-
- fg "%$(jobs | iomenu | cut -c 2)"
-
- Filter "ps" output and print a process ID
-
- { printf '# '; ps ax; } | iomenu -l 255 -s | sed -r 's/ *([0-9]*).*/1/'
-
-SEE ALSO
- dmenu(1), slmenu(1), vis-menu(1)
-
-BUGS
- iomenu currently only support ASCII characters.
-
-AUTORS
- iomenu was written from scratch by Josuah Demangeon <mail@josuah.net>
- with the help of dmenu(1) and vis-menu(1) as models.
-
-Void Linux August 21, 2017 Void Linux
+[1]: https://tools.suckless.org/dmenu
+[2]: https://en.wikipedia.org/wiki/ANSI_escape_code