Announcing ncurses 6.4


The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0 (SVr4), and more. It uses terminfo format, supports pads and color and multiple highlights and forms characters and function-key mapping, and has all the other SVr4-curses enhancements over BSD curses. SVr4 curses became the basis of X/Open Curses.

In mid-June 1995, the maintainer of 4.4BSD curses declared that he considered 4.4BSD curses obsolete, and encouraged the keepers of unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.

Since 1995, ncurses has been ported to many systems:

The distribution includes the library and support utilities, including

Full manual pages are provided for the library and tools.

The ncurses distribution is available at ncurses' homepage: or .

It is also available at the GNU distribution site .

Release Notes

These notes are for ncurses 6.4, released December 31, 2022.

This release is designed to be source-compatible with ncurses 5.0 through 6.3; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the reason for the release is to reflect improvements to the ncurses 6 ABI and the supporting utility programs.

There are, of course, numerous other improvements, listed in this announcement.

The most important bug-fixes/improvements dealt with robustness issues. The release notes also mention some other bug-fixes, but are focused on new features and improvements to existing features since ncurses 6.3 release.

Library improvements

New features

There are no new features in this release.

Other improvements

These are improvements to existing features:

These are corrections to existing features:

Program improvements

Several improvements were made to the utility programs:

limit tab-stop values to max-columns
add consistency check in tic for u6/u7/u8/u9 and NQ capabilities.
corrected use of original tty-modes in init/reset subcommands


Along with the library and utilities, improvements were made to the ncurses-examples. Most of this activity aimed at improving the test-packages:

There are other new demo/test programs and reusable examples:

demonstrate combining characters
demonstrate deleting a window
observe mouse events in the raw terminal or parsed ncurses modes
demonstrate the unget_wch and unget functions

Terminal database

There are several new terminal descriptions:

There are many changes to existing terminal descriptions. Some were updates to several descriptions:

while others affected specific descriptions. These were retested, to take into account changes by their developers:

while these are specific fixes based on reviewing documentation, user reports, or warnings from tic:

amended note as per documentation for att610, att620, att730
kon, kon2, jfbterm
revise to undo "linux2.6" change to smacs/rmacs/enacs
add dim, ecma+strikeout
add xterm+sl-alt
correct dsl in dec+sl
mintty and tmux
correct setal in mintty/tmux entries, add to vte-2018
modify nsterm to use xterm+alt1049
modify putty to use xterm+alt1049
add blink and setal

A few entries use extensions (user-defined terminal capabilities):


As usual, this release

In addition to providing background information to explain these features and show how they evolved, there are corrections, clarifications, etc.:

There are no new manual pages (all of the manual page updates are to existing pages).

Interesting bug-fixes

While there were many bugs fixed during development of ncurses 6.4, only a few (the reason for this release) were both important and interesting. Most of the bug-fixes were for local issues which did not affect compatibility across releases. Since those are detailed in the NEWS file no elaboration is needed here.

The interesting bugs were those dealing with memory leaks and buffer overflows. Although the utilities are designed for text files (which they do properly), some choose to test them with non-text files.

Configuration changes

Major changes

There are no major changes. No new options were added. Several improvements were made to configure checks.

Configuration options

There are a few new/modified configure options:


add ABI 7 defaults to configure script.


add warning in configure script if file specified for “--with-caps” does not exist.


bzip2 and xz compression are now supported


add check/warning in configure script if option “--with-xterm-kbs” is missing or inconsistent


Many of the portability changes are implemented via the configure script:

Here are some of the other portability fixes:

Features of ncurses

The ncurses package is fully upward-compatible with SVr4 (System V Release 4) curses:

The ncurses package also has many useful extensions over SVr4:

Applications using ncurses

The ncurses distribution includes a selection of test programs (including a few games). These are available separately as ncurses-examples

The ncurses library has been tested with a wide variety of applications including:


FrontEnd to Apt, the debian package manager


Curses Development Kit




the underlying application used in Slackware's setup, and the basis for similar install/configure applications on many systems.


the text WWW browser


mail utility


file-transfer utility


New vi uses ncurses.


A console file manager with VI key bindings in Python.


newsreader, supporting color, MIME


File manager with vi like keybindings

as well as some that use ncurses for the terminfo support alone:


terminal emulator for serial modem connections


a replacement for ssh.


terminfo action checker


terminal multiplexor


vi-like-emacs may be built to use the terminfo, termcap or curses interfaces.

and finally, those which use only the termcap interface:


text editor


The most commonly used pager (a program that displays text files).


terminal multiplexor


text editor

Development activities

Zeyd Ben-Halim started ncurses from a previous package pcurses, written by Pavel Curtis. Eric S. Raymond continued development. Jürgen Pfeifer wrote most of the form and menu libraries.

Ongoing development work is done by Thomas E. Dickey. Thomas E. Dickey has acted as the maintainer for the Free Software Foundation, which held a copyright on ncurses for releases 4.2 through 6.1. Following the release of ncurses 6.1, effective as of release 6.2, copyright for ncurses reverted to Thomas E. Dickey (see the ncurses FAQ for additional information).

Contact the current maintainers at

To join the ncurses mailing list, please write email to
containing the line:

subscribe <name>@<host.domain>

This list is open to anyone interested in helping with the development and testing of this package.

Beta versions of ncurses are made available at and .

Patches to the current release are made available at and .

There is an archive of the mailing list here: (also https)

Related resources

The release notes make scattered references to these pages, which may be interesting by themselves:

Other resources

The distribution provides a newer version of the terminfo-format terminal description file once maintained by Eric Raymond . Unlike the older version, the termcap and terminfo data are provided in the same file, which also provides several user-definable extensions beyond the X/Open specification.

You can find lots of information on terminal-related topics not covered in the terminfo file at Richard Shuford's archive . The collection of computer manuals at has also been useful.