Make a Linux "GUI" in the command line

Viewed 34780

How to make a Linux program in the Command Line Interface who display a nice user interface?

For example when I use "wget" to download a file from internet, I can see the download advancement in the Command Line Interface. How can I do that?

11 Answers

ncurses is a popular option, there are APIs for lots of programming languages.

Take a look at curses. It is a library for text based UI.

You can get a basic interface by using \r to go to the beginning of the current line.

Slightly more advanced is ncurses.

The next step up is Newt.

I wouldn't call wget's progress report as a 'nice gui', but anyway, the classic library for building graphical interfaces without X Windows is Linux and UNIX systems is ncurses.

Recently a C# version of ncurses has been started, check out details here

Try curses, it is a well documented API for text based UI.Also, there is so much open source projects that are using curses for you see and learn

wget does not really have a GUI, all I see is stuff that you can already achieve using stdout and echos (e.g. printf() or std::cout)

Anyways, for simple dialog boxes of the MessageBox kind, but not limited to that, also have a look at dialog

One should mention FTXUI. Functional Terminal (X) User interface: A simple C++ library for terminal-based user interfaces!

  • Cross-Platform
  • Support for UTF8 and fullwidth chars (→ 测试)
  • No dependencies
  • etc
Related