set_foreground
とset_a_foreground
の区別(およびバックグラウンド機能)はColor Handling sectionのterminfo(5)
マニュアルページにあります。長い名前が頻繁に使用されていることを覚えておいてください、あなたはsetf
setaf
対を探しているべきであること:ただのterminfo(やない呪い)を使用して
The setaf/setab and setf/setb capabilities take a single
numeric argument each. Argument values 0-7 of setaf/setab
are portably defined as follows (the middle column is the
symboliC#define available in the header for the curses or
ncurses libraries). The terminal hardware is free to map
these as it likes, but the RGB values indicate normal
locations in color space.
Color #define Value RGB
black COLOR_BLACK 0 0, 0, 0
red COLOR_RED 1 max,0,0
green COLOR_GREEN 2 0,max,0
yellow COLOR_YELLOW 3 max,max,0
blue COLOR_BLUE 4 0,0,max
magenta COLOR_MAGENTA 5 max,0,max
cyan COLOR_CYAN 6 0,max,max
white COLOR_WHITE 7 max,max,max
The argument values of setf/setb historically correspond
to a different mapping, i.e.,
Color #define Value RGB
black COLOR_BLACK 0 0, 0, 0
blue COLOR_BLUE 1 0,0,max
green COLOR_GREEN 2 0,max,0
cyan COLOR_CYAN 3 0,max,max
red COLOR_RED 4 max,0,0
magenta COLOR_MAGENTA 5 max,0,max
yellow COLOR_YELLOW 6 max,max,0
white COLOR_WHITE 7 max,max,max
It is important to not confuse the two sets of color capa-
bilities; otherwise red/blue will be interchanged on the
display.
ほとんどのアプリケーションで置き換えて、文字列をフォーマットするtparm
機能を使用(数値)パラメーターを使用して、結果の文字列にtputs
を使用して実際に書き込みます。 2つはパディングと遅延を考慮しています(一般にの色の機能にはありませんが、一般的にはterminfoにあります)。
ncurses-examplesプログラムdotsは、これらの機能を使用して、色付きのセルを画面上にランダムに描画します。 (この例では、tparm2
、tparm3
は、tparm
プロトタイプが必要とする余分なパラメータを提供するマクロです)。