Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

kon䜿甚時ににコン゜ヌルの色を倉える 方法に぀いお

2 views
Skip to first unread message

Yoshihiro Tabuchi

unread,
Jan 7, 2004, 4:25:59 AM1/7/04
to
 お䞖話になっおおりたす。SPOONsoftwareの田淵ず申したす。

以前、コン゜ヌルでちょっずした凊理を行うプログラムを䜜成した時に、芋栄えをよ
くするために、cursesを甚いお、カラヌ衚瀺を行いたした。

initscr();
start_color();
init_pair( ... );
color_set( ... );

等々を䜿甚。

 クラむアントからの芁求で、日本語察応にするためにkonを起動しお、このプログ
ラムを実行したずころ、この色凊理ルヌチンが䜿えなくなっおしたいたした。ただ
し、
 mvprintwやmvgetchなどは普通に動いおいるので、curses自䜓が無効になったわけ
ではないらしい。
 kon.cfg内を芋お、STDPELの蚭定を倉えるず、バックグラりンド番目のカ
ラヌずフォアグラりンドカラヌ番目のカラヌが垞に䜿っおいるこずだけは確
認できたした。
 kon起動時に、特定の堎所の文字やスペヌスのフォアグラりンドカラヌやバックグ
ラりンドカラヌをcursesを甚いた時ず同じように倉曎するこずは可胜でしょうか倉
曎する堎合、どのようなラむブラリヌが必芁ずなり、どのような関数を甚いおやる必
芁があるのでしょうかご助蚀䞋さい。

 ちなみに、OSはFreeBSD4.7たたはFreeBSD5.2です。

--
**************************************
*** 田淵矩匘 in SPOONsoftware
*** E-Mail : tab...@spoonsoftware.com
*** HP : http://www.spoonsoftware.com
**************************************

Mito

unread,
Jan 7, 2004, 8:48:17 AM1/7/04
to
"Yoshihiro Tabuchi" <tab...@spoonsoftware.com> writes:

> 以前、コン゜ヌルでちょっずした凊理を行うプログラムを䜜成した時に、芋栄えをよ
> くするために、cursesを甚いお、カラヌ衚瀺を行いたした。
>
> initscr();
> start_color();
> init_pair( ... );
> color_set( ... );
>
> 等々を䜿甚。
>
>  クラむアントからの芁求で、日本語察応にするためにkonを起動しお、このプログ
> ラムを実行したずころ、この色凊理ルヌチンが䜿えなくなっおしたいたした。ただ

TERM=kterm-color ずかでカラヌ衚瀺できたりしたせんか

最近の FreeBSD は知りたせんが、以前は termcap に kon の゚ン
トリがなくっお、kon を起動するずデフォルトで vt100 になっお
いたず思いたす。
 Linux にはたいおいあるみたいなんですけどね。

で、vt100 の termcap には Co ずかがなくっお、色が衚瀺できな
い端末だずいうこずになっおしたっおいるんだず思いたす。

 確信はありたせんが。
--
01/07 22:46頃
氎戞

Yoshihiro Tabuchi

unread,
Jan 8, 2004, 5:16:58 AM1/8/04
to
> TERM=kterm-color ずかでカラヌ衚瀺できたりしたせんか
>
> 最近の FreeBSD は知りたせんが、以前は termcap に kon の゚ン
> トリがなくっお、kon を起動するずデフォルトで vt100 になっお
> いたず思いたす。
>  Linux にはたいおいあるみたいなんですけどね。
>
> で、vt100 の termcap には Co ずかがなくっお、色が衚瀺できな
> い端末だずいうこずになっおしたっおいるんだず思いたす。
>
>  確信はありたせんが。
> --
> 01/07 22:46頃
> 氎戞

 早速の返答ありがずうございたす。
 えヌず、ちょっず分からないので教えおいただけたすか汗

 TERM=kterm-color

 にするずいうのは、kon.cfgずかでしょうか或いはプログラム内のsettermか䜕か
を䜿うず蚀うこずなのでしょうか
 TERM=ずいうので、具䜓的なドキュメントが芋぀からず、どのようにやっおいいの
かが分かりたせんでした。お手数をおかけしお倧倉申し蚳ありたせんが、ご教瀺いた
だければありがたいです。

Mito

unread,
Jan 8, 2004, 11:21:51 AM1/8/04
to
"Yoshihiro Tabuchi" <tab...@spoonsoftware.com> writes:

>  TERM=kterm-color
>
>  にするずいうのは、kon.cfgずかでしょうか或いはプログラム内のsettermか䜕か
> を䜿うず蚀うこずなのでしょうか
>  TERM=ずいうので、具䜓的なドキュメントが芋぀からず、どのようにやっおいいの
> かが分かりたせんでした。お手数をおかけしお倧倉申し蚳ありたせんが、ご教瀺いた
> だければありがたいです。

環境倉数の TERM のこずです。

$ printenv TERM
vt100

ずなっおるんじゃないかなぁ、ずいうこずで、

$ TERM=kterm-color
$ your_program

ずすればいいのかなず。

curses などは通垞この TERM 環境倉数から端末タむプを取埗し、
termcap や terminfo ずいった端末デヌタベヌスを参照しお、この
端末は匷調衚瀺が可胜かどうかずか、色を衚瀺するこずができるか
どうかずかいった情報を埗るわけです。

マニュアルは environ、termcap、terminfo、initscr あたりでしょ
うかね。

ちなみに、vt100 っおのは、むかヌしあったVT100ずいう有名な端
末のこずなんですが、珟圚の xterm や kterm ずいった倚くの端末
゚ミュレヌタず呌ばれる゜フトりェアはこの端末の動䜜を暡倣しお
いるため、環境倉数 TERM が vt100 になっおいるずいうのは悪い
こずではないんです。

でも、VT100 では色が衚瀺できなかったので、termcap なんかには
「色衚瀺できたせん」みたいな情報が入っおいるわけで、curses
はこれを芋お、ほんじゃ色を付けるための゚スケヌプシヌケンスを
出力しおも無駄だから出さないねっおいう感じで凊理するんだず思
いたす。

ずいうこずで、「色衚瀺できたす」っお端末タむプをTERM環境倉数
に指定するこずで解決するのではないかずいうこずになっお、そう
いうので思い付いたのが kterm-color ずいうものでした。

termcap の堎合、/etc/termcap に Co#8 みたいなのがある端末は
色を衚瀺できるものず思っおかたわないず思いたす。(厳密には違
いたすが。)

もし、kterm-color がなかったらそういうや぀を探しおみおくださ
い。

そういや、kon.cfg ずかで TERM を指定するこずができるかどうか
は知りたせん。できるようだったら私も知りたいです。

--
01/09 01:21頃
氎戞

Yoshihiro Tabuchi

unread,
Jan 8, 2004, 12:15:09 PM1/8/04
to

 ありがずうございたす感動です
 ずりあえずTERMをkterm-colorにしおもたずもには衚瀺できなかったのですが、ご
指定のファむル内/etc/termcapにvt100-colorがあったので、それにしおみたら
芋事動きたした。感謝です。
 具䜓的なメカニズムたで教えおいただきありがずうございたした。以䞋、コマンド
プロンプトを曞いおおきたす。

konの起動
% kon

タヌミナルのセット
% setenv TERM vt100-color

プログラム起動
% myprogram

バッチにでも組んでおこうず思いたす。助かりたした
--

Takashi SHIRAI

unread,
Jan 9, 2004, 11:42:36 AM1/9/04
to
 しらいです。

In article <m3k742l...@kzin.dip.jp>, Mito <co_...@ybb.ne.jp> wrote:
>でも、VT100 では色が衚瀺できなかったので、termcap なんかには
>「色衚瀺できたせん」みたいな情報が入っおいるわけで、curses
>はこれを芋お、ほんじゃ色を付けるための゚スケヌプシヌケンスを
>出力しおも無駄だから出さないねっおいう感じで凊理するんだず思
>いたす。

 話ずしおは逆ですよね。「色衚瀺出来たせん」ず曞かれおいる蚳
ではなくお、「色衚瀺出来たす」ず曞かれおいないずいうのが正解
です。結果ずしおは同じこずかも知れたせんが。
 色関連の capability が珟れたのは SVR4 以降のこずなので、そ
れ以前に珟圹を退いた端末 entry には「出来たす」ずも「出来た
せん」ずも曞かれおいないこずが倚いず思いたす。


>termcap の堎合、/etc/termcap に Co#8 みたいなのがある端末は
>色を衚瀺できるものず思っおかたわないず思いたす。(厳密には違
>いたすが。)

 Co は max_colors なので、実際に色属性指定 sequence を衚し
おいる AF ずか Sf ずかの方がもっず重芁だず思いたすよ。
 libncurses の色関数だず厳密に芋おいるので、この他 pa ずか
op ずか色々必芁になりたすが、termcap/terminfo 情報を芋お色指
定する時に最䜎限芋なくおはならないのは AF なり Sf なりですよ
ね。これが刀らないんじゃどうやっお色指定しおいいんだか。


>そういや、kon.cfg ずかで TERM を指定するこずができるかどうか
>は知りたせん。できるようだったら私も知りたいです。

 残念ながら FreeBSD の実装では hard coat されおいるみたいで
すね。
 Linux だず TERM=kon ずいう entry がわざわざ甚意されおいお、
ちゃんず色関連の蚭定も曞かれおいるので、vt100 ずはたた別物ず
しお扱えるのですが。
 そもそも kon の vt100 emulation は完党ではないので、玠盎に
termcap/terminfo から vt100 entry を拟っおくるず、瑣末な差異
のせいで色々ず支障が生じるんですよね。

 Linux が kon を OS の䞀郚ずしお扱っおいるのに察しお、*BSD
では飜くたでも ports ずいうよそ者扱いなので、その違いが元凶
になっおいるのかも知れたせん。
--
しらい たかし

ca...@xxx.kgc.co.jp

unread,
Jan 13, 2004, 4:37:51 AM1/13/04
to
shi...@unixusers.net (Takashi SHIRAI) writes:

>  残念ながら FreeBSD の実装では hard coat されおいるみたいで
> すね。

hard coat っおなんですか?
どうも衚面加工技術の甚語らしいですが  

神田敏広 <ca...@kgc.co.jp>

Takao Ono

unread,
Jan 13, 2004, 4:48:35 AM1/13/04
to
小野@名叀屋倧孊 です.

<btmlj2$1mok$1...@nsvn01.zaq.ne.jp>の蚘事においお
shi...@unixusers.netさんは曞きたした。
shirai>  Linux が kon を OS の䞀郚ずしお扱っおいるのに察しお、*BSD
shirai> では飜くたでも ports ずいうよそ者扱いなので、その違いが元凶
shirai> になっおいるのかも知れたせん。
「OS の䞀郚」かどうかっお, どのように刀定すればいいのでしょうか?

そもそも「Linux」によっおは kon が入っおないのだっおあるし....
--
名叀屋倧孊倧孊院 情報科孊研究科 蚈算機数理科孊専攻
小野 孝男

0 new messages