default_colors(3x) default_colors(3x)
use_default_colors, assume_default_colors - use terminal's default colors - 端末のデフォルト色を使う
#include <curses.h> int use_default_colors(void); int assume_default_colors(int fg, int bg);
The use_default_colors() and assume_default_colors() func- tions 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). use_default_colors() と assume_default_colors() 関数は、 curses ライブラリの拡張機能です。 これらは ISO 6429 色または互換機能をサポートする端末で 使用します。 これらの端末では、アプリケーションが未指定のデフォルト値に (例えば SGR 39 または SGR 49 を使って) 色をリセットできます。 訳注: SGR 39 はデフォルトの前景 (文字) 色、 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. 全画面を背景色で塗りつぶすようなアプリケーションは、 SGR 39 と SGR 49 を利用することはありません。 一部のアプリケーションはデフォルトの背景を使い、文字にしか 色を付けない設計になっています。 例えば、いくつかの ls プログラムの実装では、異なる ファイルの種類や許可モード (パーミッション) を示すために 色を使っています。 これらの「カラー ls」プログラムは背景色を変更する必要は なく、たいていは前景色を変更するために terminfo の setaf 機能項目を使うだけです。 デフォルト色を使う全画面アプリケーションも同じ視覚効果を 達成することができます。 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. 1 つめの関数 use_default_colors() は端末のデフォルト前景色/ 背景色のペアを色の番号 -1 にするように curses ライブラリに 伝えます。 そうすると、init_pair(x,COLOR_RED,-1) は色のペア x を デフォルト背景色の上に赤で表示するように初期化し、 init_pair(x,-1,COLOR_BLUE) は色のペア x を青の上に デフォルト前景色で表示するように初期化します。 The other, assume_default_colors() is a refinement which tells which colors to paint for color pair 0. This func- tion recognizes a special color number -1, which denotes the default terminal color. 他方、assume_default_colors() は色のペア 0 をどの色に するかを指定する改良版です。 この関数は、特別な色の番号 -1 は端末のデフォルト色を表すと 認識します。 The following are equivalent: 次の 2 つは等価です。 use_default_colors(); assume_default_colors(-1,-1); These are ncurses extensions. For other curses implemen- tations, color number -1 does not mean anything, just as for ncurses before a successful call of use_default_col- ors() or assume_default_colors(). これらは ncurses の拡張機能です。 curses の他の実装では、色の番号 -1 は何も意味しておらず、 ncurses で use_default_colors() や 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_col- ors() ncurses will paint a white foreground (text) with black background for color pair 0. curses の他の実装では、アプリケーションが色のペア 0 を 変更することを許していません。 それらの実装は背景色が COLOR_BLACK であると仮定して いますが、色のペア 0 が仮定どおりの色になる保証はありません。 アプリケーションが use_default_colors() も assume_default_colors() も使わなければ、ncurses は 色のペア 0 を前景色 (文字) が白、背景色が黒として表示します。
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. これらの関数は失敗のとき整数 ERR を、成功のとき OK を 返します。 これらの関数は端末が orig_pair または orig_colors 機能項目を サポートしていない場合は失敗します。 initialize_pair 機能項目が見つからない場合にも、同じように エラーが発生します。
Associated with this extension, the init_pair function accepts negative arguments to specify default foreground or background colors. この拡張機能に伴って、init_pair 関数は、デフォルトの前景色と 背景色を指定するものとして負の引数を受け付けます。 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 por- tion of the screen colors filenames using a scheme like the "color ls" programs. Attempting to manage the back- ground 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. use_default_colors() 関数は ded をサポートするために 追加されました。 これは画面の一部のみを管理するために curses を使う全画面 アプリケーションです。 画面の下部は寸法が可変で、色付けしないままシェル・コマンド からの結果を表示します。 画面の上部は「カラー ls」プログラムのような方式で ファイル名をカラー表示します。 このアプリケーションのために画面の背景色を管理しようと すると、様々な理由から満足の行く結果になりませんでした。 この拡張機能は、カラー xterm (と同様なプログラム) が どの ANSI 色とも対応する必要のない背景色を提供すると 判明してから工夫されました。 9 つの色を使った特別な terminfo 収録項目 (エントリ) が 構築される間、curses には関連する orig_pair と back_color_erase 機能項目を説明する仕組みがありませんでした。 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. assume_default_colors() 関数は別の問題を解決するために 追加されました。環境変数とその他の構成 (コンフィギュレーション) を使うアプリケーションが curses の 端末のデフォルト色という概念を回避し、特定の値を設定するのを サポートするためです。
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 con- ditioned using NCURSES_VERSION. これらのルーチンは ncurses 特有です。 これらは Version 7, BSD, System V の実装では サポートされていません。 これらのルーチンに依存するすべてのコードは、 NCURSES_VERSION を使って条件付きとすることを推奨します。
curs_color(3x), ded(1).
Thomas Dickey (from an analysis of the requirements for color xterm for XFree86 3.1.2C, February 1996). Thomas Dickey (1996年 2月、XFree86 3.1.2C 用の カラー xterm への要求に対する分析から)。 default_colors(3x)