A dynamic menu for the terminal written in pure Bash
Simply direct the items to shmenu's stdin, separated by newlines.
bash 4.3+- A VT100-compatible terminal
- Pretty much every virtual *nix terminal should support this
In true suckless fashion, shmenu is configured through its source code. I usually don't prefer this philosophy, but dmenu was meant (as far as I know) to be used through shell scripts, after all; since shmenu itself is written in Bash, you can include the modified shmenu with it. I will still consider it, though.
The only time I used that with dmenu was when I was executing commands, and there isn't really a reason to do that with shmenu as it's run from a terminal.
TL;DR: Run git apply patches/stty.patch within the cloned repository to fix it
Bash does not have a way to permanently turn off echoing input without external utilities. shmenu works around this by using read's -s option, which turns it off while it's receiving input, and running fast enough that read usually catches all input.
However, if your autorepeat rate is very high and your environment isn't very fast, it can outpace it and cause input to occasionally flicker on the screen. You can fix this by applying the stty patch, which turns it off using the stty external utility.
My internet was down for over a week and I had Writing a TUI in Bash cloned. Special thanks to it!