NCURSES Tutorial

Learn NCURSES by writing a TUI file management tool

This course introduces the development using ncurses library, include its panel, menu, and form extensions. Although GUI applications dominate the world, TUI (text-based user interface) programs still prove their value where X window is not available or the limited network bandwidth. Many popular tools developed on top of ncurses, like Midnight Commander, vi, nano, and htop, are still popular.

What you’ll learn

  • Use ncurses core library to develop TUI (Text-base User Interface) program.
  • Use ncurses panel extension to handle overlapping windows easily.
  • Use ncurses menu extension to add menu for user to select command or take action easily.
  • Use ncurses form extension to collect user’s input in an organized way.

Course Content

  • Introduction –> 2 lectures • 16min.
  • NCURSES Library –> 12 lectures • 2hr 34min.
  • NCURSES Extensions –> 5 lectures • 1hr 25min.

NCURSES Tutorial

Requirements

This course introduces the development using ncurses library, include its panel, menu, and form extensions. Although GUI applications dominate the world, TUI (text-based user interface) programs still prove their value where X window is not available or the limited network bandwidth. Many popular tools developed on top of ncurses, like Midnight Commander, vi, nano, and htop, are still popular.

 

In this course, a TUI file management tool will be developed to demonstrate how to use ncurses library. Here are what you will learn:

 

1. Basics of ncurses library, like ncurses initialization;

2. Introduce the terminal that ncurses relies on;

3. How to use window;

4. How to output text;

5. How to render text with the font type face like bold or underline, and colors;

6. How to read key input from user, or text from screen;

7. How to use mouse in a TUI program;

8. How to make a window scroll;

9. How to use pad, and what’s the difference between window and pad;

10. How to use panel extension manage overlapping windows;

11. How to display a menu or a cascading menu;

12. How to use form to collect user’s input, including multi-page form.

 

This course is also helpful, if you are going to use ncurses++, python curses module, or the Rust version, ncurses-rs. They share the same program model with ncurses.

 

Look forward to seeing you in the course.

Get Tutorial