On Linux and Unix platforms, terminal-based tools are very commonly used. Some users may even take pride for their preference of these tools over a more modern GUI counterpart. I can’t blame them. I use Weechat, an terminal-based IRC client written with ncurses, mostly just because I think it looks cool. I also use Lynx, a terminal-based web browser. Next on my list of applications to learn is Mutt, an email client written for, you guessed it, the terminal.

Perhaps it is this leaning that has lead me to write my first C application in the same vein. That, and I also have a genuine need for it, which always helps.

B-Menu

B-Menu is a general purpose terminal menu written in C.

B-Menu Screenshot

It was designed to replace terminal-based login managers such as CDM. However, it can easily serve as a simple terminal menu for any situation where you would like to execute a command from a set of menu options.

B-Menu has zero dependencies, and it is intentionally feature-minimal. This keeps it easy to install, configure, and run.

If you’re reading this and you think you may have a use for it, I encourage you to download and install it on your system:

Note that due to the way I use the extended ascii character set to display menu borders and shading, it is not portable to windows systems. (It’s not a bug, it’s a feature!)

If you run in to any problems, please reach out to me on github. As always, I am open to any and all feedback.

Thanks!