forked from IreneKnapp/oneko
-
Notifications
You must be signed in to change notification settings - Fork 0
nyanotech/oneko
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
oneko - Neko runs over the windows.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Original program written by
Masayuki Koba
Modified by
Tatsuya Kato (kato@ntts.co.jp)
Modified 20 years later by
Irene Knapp (ireneista@gmail.com)
以前、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)に教えて下さいね。バージョンアップもするつ
# もりです。
About
An update of the classic digital kitten.
Resources
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C 91.6%
- Roff 6.8%
- Perl 1.2%
- Shell 0.4%