---
name: "default_colors"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/assume_default_colors"
---

# default\_colors(3)

use terminal's default colors in curses

Part of [assume\_default\_colors(3)](/assume_default_colors/3.md).

## NAME

**use\_default\_colors**, **assume\_default\_colors** - use terminal's default colors in *curses*

## SYNOPSIS

```
#include <curses.h>
```

**int use\_default\_colors(void);** **int assume\_default\_colors(int** *fg***, int** *bg***);**

## DESCRIPTION

**The use\_default\_colors and assume\_default\_colors** **functions are extensions to the curses library.** **They are used with terminals that support ISO 6429 color, or equivalent.** **These terminals allow the application to reset color to an unspecified** **default value (e.g., with SGR 39 or SGR 49).**

**Applications that paint a colored background over the whole screen** **do not take advantage of SGR 39 and SGR 49.** **Some applications are designed to work with the default background,** **using colors only for text.** **For example, there are several implementations of the ls program** **which use colors to denote different file types or permissions.** **These “color ls” programs do not necessarily** **modify the background color,** **typically using only the setaf terminfo capability to set the** **foreground color.** **Full-screen applications that use default colors can achieve similar** **visual effects.**

**The first function, use\_default\_colors** **tells the curses library to assign terminal default** **foreground/background colors to color number -1.** **So init\_pair(x,COLOR\_RED,-1)** **will initialize pair x as red on default background** **and init\_pair(x,-1,COLOR\_BLUE) will** **initialize pair x as default foreground on blue.**

**The other, assume\_default\_colors** **is a refinement which tells which colors to paint for color pair 0.** **This function recognizes a special color number -1,** **which denotes the default terminal color.**

**The following are equivalent:**

*use\_default\_colors();*\
 *assume\_default\_colors(-1,-1);*

**These are** *ncurses* **extensions.** **For other curses implementations, color** **number -1 does not mean anything, just as for** *ncurses* **before a** **successful call of use\_default\_colors or assume\_default\_colors.**

**Other curses implementations do not allow an application to modify color pair 0.** **They assume that the background is COLOR\_BLACK,** **but do not ensure that the color pair 0 is painted to match the** **assumption.** **If your application does not use either** **use\_default\_colors** **or** **assume\_default\_colors** *ncurses* **will paint a white foreground (text) with black background** **for color pair 0.**

## RETURN VALUE

**These functions return the integer ERR upon failure** **and OK on success.** **They will fail if either the terminal does not support** **the orig\_pair or orig\_colors capability.** **If the initialize\_pair capability is not found, this causes an** **error as well.**

## NOTES

**Associated with this extension, the init\_pair function accepts** **negative arguments to specify default foreground or background colors.**

**The use\_default\_colors function was added to support ded.** **This is a full-screen application which uses curses to manage only part** **of the screen.** **The bottom portion of the screen, which is of adjustable** **size, is left uncolored to display the results from shell commands.** **The top portion of the screen colors filenames using a scheme like the** **“color ls” programs.** **Attempting to manage the background color of the screen for this application** **would give unsatisfactory results for a variety of reasons.** **This extension was devised after** **noting that color xterm (and similar programs) provides a background color** **which does not necessarily correspond to any of the ANSI colors.** **While a special terminfo entry could be constructed using nine colors,** **there was no mechanism provided within curses to account for the related** **orig\_pair and back\_color\_erase capabilities.**

**The assume\_default\_colors function was added to solve** **a different problem: support for applications which would use** **environment variables and other configuration to bypass curses'** **notion of the terminal's default colors, setting specific values.**

## PORTABILITY

**These routines are specific to** *ncurses***.** **They were not supported on** **Version 7, BSD or System V implementations.** **It is recommended that** **any code depending on them be conditioned using NCURSES\_VERSION.**

## AUTHORS

**Thomas Dickey (from an analysis of the requirements for color xterm** **for XFree86 3.1.2C, February 1996).**

## SEE ALSO

**ded(1),** **curs\_color(3X)**
