Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yazgoo/fuzzysh
minimalist selector in shell, inspired by fzf
https://github.com/yazgoo/fuzzysh
Last synced: 3 months ago
JSON representation
minimalist selector in shell, inspired by fzf
- Host: GitHub
- URL: https://github.com/yazgoo/fuzzysh
- Owner: yazgoo
- License: mit
- Created: 2024-02-06T12:27:31.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-03-02T13:21:54.000Z (4 months ago)
- Last Synced: 2024-03-03T09:42:25.482Z (3 months ago)
- Language: Shell
- Homepage:
- Size: 1.61 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- cli-apps - fuzzysh - Minimalist selector in shell, inspired by fzf. (<a name="option-picker"></a>Fuzzy finders and option pickers)
- awesome-cli-apps - fuzzysh - Minimalist selector in shell, inspired by fzf. (<a name="option-picker"></a>Fuzzy finders and option pickers)
README
Minimalist selector in shell, à la [fzf](https://github.com/junegunn/fzf)
[![screenshot](doc/animation.gif)](doc/animation.gif)
[![test](https://github.com/yazgoo/fuzzysh/actions/workflows/test.yml/badge.svg)](https://github.com/yazgoo/fuzzysh/actions/workflows/test.yml)
## what's it for ?
You need to:
- select between several choices ?
- in a shell script ?
- with minimal dependencies ?**Just copy the [fsh](fsh) function in your script.**
## usage example
```bash
$ echo -e 'Hello, world!\n¡Hola, mundo!\nBonjour, le monde !\nHallo, Welt!' | ./fsh
```...
```
Hello, world!
¡Hola, mundo!
Bonjour, le monde !
Hallo, Welt!>
```type your text
```
Hallo, Welt!> hall
```Press enter
```
Hallo, Welt!
```## limitations
- not POSIX shell: it's only tested in `zsh` and `bash`.
- to keep it lightweight and fast, I (mostly) don't plan on adding new features.## variables reference
You can customize the behavior of fsh by setting the following variables:
| Variable | Description | Default value |
| -------- | ----------- | ------------- |
| FSH_SELECTOR_COLOR | the color line currently highlighted | 40 |
| FSH_FRAME_COLOR | the color of the frame | 30 |
| FSH_PROMPT_COLOR | the color used for the prompt | 34 |
| FSH_SELECT_COLOR | the color of the sign before the line currently selected | 31 |
| FSH_TEST_INPUT | the simulated user input given as a string, one character at a time. first character will be ignored. if set the script will not read from stdin | "" |
| FSH_HEADER | a name to display beofre the prompt to give context on what is expected | "" |
| FSH_VIM_MODE | (not implemented) set this variable to support vim normal mode | "" |
| FSH_PERF | if this variable is set, will display the time it took to draw the interface | "" |
| FSH_NO_FUZZY | if this variable is set, will not use fuzzy search, instead will do a pattern match | "" |
| FSH_LINES | the height of the terminal (used for testing, otherwise will be set by tput) | $t_lines |
| FSH_COLUMNS | the width of the terminal (used for testing, otherwise will be set by tput) | $t_cols |
| FSH_SCREENSHOT | if this variable is set, will write a screenshot of the terminal at each iteration and generate an animation at the end | "" |