summary refs log tree commit diff
path: root/README
blob: c3da26c702022a6f2406a1306b12f60b14807ea3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
		oneko - Neko runs over the windows.
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

				Original program written by
							Masayuki Koba
				Modified by
					Tatsuya Kato (kato@ntts.co.jp)


以前、fj.sources に xneko という X Window 上で動く「猫」が投稿されてい
ましたが、残念ながらこの「猫」は一つのウインドウを作ってそのウインドウ
の中でマウスを追いかけて走り回るものでした。

そこで私が「猫をおりに閉じ込めておくのは可哀想じゃないか」と思い、画面
の上を縦横無尽に走り回るように改造してあげました。

その名も "oneko"。最初は 'oclock' の 'o' を取ったつもりだったのですが、
oclock って丸いから 'o' なんじゃなくて o'clock の 'o' ですよね。で、'
o' のこじつけに "Neko runs Over the windows" の 'o' をつけました。(苦
しい)

# nとmは隣合わせのキーなのでくれぐれも間違って入力しないようにして
# 下さい。

このプログラムを実行するには X Window System が必要です。X のバージョ
ンは R3 または R4 ですが、R4 で採り入れられた Shape extention を使って
いますので R3 で実行する場合はつまらない実行結果になってしまいます。
(Shape extention がなくてもコンパイルはできるようにしてあります。)

実行するマシンは Sun4/330 と、NCD のX端末でしか試してませんが、X端末
でははっきりいって遅いです。Sun のコンソールでやった時にはパラメータの
設定でかなりの速度まであげられるのですが ......。

お試しください。

<バージョンアップによる機能拡張>

◎ オプションはすべてリソースからも指定できるようになりました。ただし、
   Xrm ライブラリ関数を使用せず、XGetDefault でリソースの取得を行なっ
   ています(X11R1 相当の機能)ので、アプリケーションデフォルト
   (/usr/lib/X11/app-default にあるファイル)でのリソース指定はまだで
   きません。

◎ NTTSOFT local で好評だった(?)とら猫にする機能を採り入れました。
   実行時に

   % oneko -tora

   とすると猫の模様が変わります。

◎ 色の指定ができるようになりました。起動時のオプションで -fg, -bg を
   指定して下さい。

◎ この猫は、寝ている時にねずみをゆっくり移動させると気づかずに寝て
   います。これは一定時間内にマウスの動いた距離がある値を越えなければ
   気がつかないようになっているのですが、この「ある値」をオプションで
   変えられるようにしました。デフォルトは6になっているのですが、

   % oneko -idle 20

   とすると「より鈍い」猫の出来上がりです。

◎ コンパイラに gcc を使うと動かないそうです。(私も確認した)このため
   今度の Imakefile では強制的に cc でコンパイルするように指定していま
   す。

◎ Shape extention のライブラリがなくてもコンパイルできます。もしあな
   たの使用しているXが R4 ではなくて、かつ SONY NEWS ではない場合は
   Imakefile の

          DEFINES = -DSHAPE

   という行を消して下さい。(NEWS で使えるかどうかは試してません。誰か
   確認して下さい。)

<コンパイルの仕方>

1. まず、この記事を unshar してソース一式を取り出してください。

2. Makefile を作ります。oneko のディレクトリに移って、

% xmkmf

を実行してください。もし、このコマンドがなければ、

% imake -DUseInstalled -I/usr/lib/X11/config

でも同じです。

3. make を実行します。

% make

これで、実行可能な「猫」が出来ます。もし、/usr/bin/X11 にいれて、みん
なで使いたいのでしたら

# make install

を(スーパユーザで)実行してください。

これでコンパイルは終了です。あとは、

% oneko &

を実行して楽しんでください :-)

<使用方法>

基本的にオプションはいりません。が、こんなおぷしょんもあります。
help を除くオプションはリソースからも変更できます。

-help		オプションの help を表示します。

-tora		猫がとら猫に変わります。

-time <n>	猫が使うインターバルタイマの値を変えます。デフォルトは 
		micro second 単位で 125000 になっていますが、この値を
		小さくするほど猫が速く動きます。

-speed <n>	猫が一度に移動する距離をドットの数で指定します。デフォ
		ルトは 16 ですが、この値を大きくするほど猫が速く移動し
		ます。

-idle <n>	猫が寝ている時、どれだけの速度でねずみが動いたら起きる
		のかを指定できます。デフォルトは 6 です。

-rv		色を反転します。(カラーのディスプレイでは fg, bg で指
		定できるので、あんまり意味がありません。)

-noshape	X の Shape Extension を使わずに実行します。速度はかな
		り速くなりますが、表示がつまらなくなります。(実際にやっ
		てみてください。)

-fg <color>	フォアグラウンドの色を指定します。モノクロームのディス
		プレイでは無視されてしまいます。

-bg <color>	バックグラウンドの色を指定します。モノクロームのディス
		プレイでは無視されてしまいます。

また、インストールすると tora にも symbolic link を張ります。tora とい
うコマンド名で起動した時にはデフォルトで -tora オプションをつけた時と
同じになります。

リソースで指定した場合はこうです。

oneko.foreground:	black
oneko.background:	red
oneko.time:		100000
oneko.reverse:		true

コマンドが oneko ではなく、tora という名前で起動された場合リソース名は 
tora.* になりますから

tora.foreground:	sienna
tora.background:	moccasin

としてとら猫の設定と普通の猫の設定を別にすることも可能です。とら猫の色
はそのままでは白黒になってしまうので上の2行を resoerce にいれて下さい。

また、コマンド名でなくてクラス名("Oneko")で始まるリソースも読むよう
にしました。ですから speed, time など、全ての猫に共通なリソースはクラ
ス名で、猫の種類(普通の猫、とら猫)によって変えたい色などのリソースは
コマンド名(インスタンス名)で指定するのがいいでしょう。

この辺の implement は始めから Xrm* を使えばよかったのですが、この関数
の存在を知らなかったので XGetDefault を使って「無理矢理」書いています。

<ばぐ、これからバージョンアップしたいところ>

複数の猫を同時に動かせるようにしたい。今のままでは oneko を2つ実行す
ると同じ動きをするので重なってしまいます。(-speed や -time を変えて実
行するとそれなりに動いてくれますが。試してみて下さい。)

猫が走った後の領域に Expose が起きるので、kterm 等だとちらちらします。
Save Under も試してみましたが、遅くてやめてしまいました。何かいい方法
がないでしょうか?

カーソルがルートウィンドウの上と猫の上にある時にはネズミに変わりますが、
ネズミの色は単に猫の色を反転したものになっています。時間があれば直すの
はすぐなのですが、急いだのでそのままになっています。バージョンアップを
期待していて下さい。

速度を早くしたい ...... けど、これ以上は無理かな? どなたか「こうした
らもっと速くなる」という方法を教えて下さい。(近藤@ふ研 さんの提案し
て下さった Map/Unmap を使った方法はまだ試してません。暇がなくって。)

仕事している時、猫を動かしていると時々猫にキー入力を邪魔されることがあ
ります。キー入力を無視して下のウインドウに渡すことが出来るのでしょうか?
(そういっている割には今のバージョンの猫はキーイベントを Select input 
しています。)

# 基本的にPDSですが、バグ修正や機能拡張は(こっそりでもいいですか
# ら)私(kato@ntts.co.jp)に教えて下さいね。バージョンアップもするつ
# もりです。