2006年06月14日

XGLで背景にスクリーンセーバーを表示する方法

Kororaa Xgl Live CDのサンプルスクリプトを参考にして、スクリーンセーバーを背景で実行する方法がわかりました。

xgl-back

 ←こんな感じで表示できます。


【実行方法】
まず、xwinwrapというプログラムが必要ですので、こちらのページからソースファイル(Makefileとxwinwrap.c)をダウンロードします。これを./configure → make でコンパイルします。

コンパイルで生成したxwinwrapというファイルをrootで/usr/local/binにコピー(または移動)して、ファイルに実行権を与えます。

# cp xwinwrap /usr/local/bin
# chmod +x /usr/local/bin/xwinwrap

あとは、次のようなスクリプトを適当な場所に適当な名前を付けて、実行権を与えます。2行目以降は、1行で書いて下さい。

例:xgl-backplay
#!/bin/bash
xwinwrap -ni -argb -fs -s -st -sp -a -nf -o .3 -- /usr/libexec/xscreensaver/endgame -root -window-id WID

-o .3 の所は不透明度を0〜1の範囲の値で指定できます。また、/usr/libexec/xscreensaver/endgameの所を別のプログラム名に置き換えれば、実行するプログラムを変えられます。

実行方法は、作成したスクリプトファイルをダブルクリックするだけです。実行するかどうか訊いてきますので、実行ボタンを押して下さい。

終了したいときは、少々面倒ですが、ps axでプロセスNoを確認して、
$ kill (プロセスNo)
とします。





トラックバックURL

この記事へのコメント

1. Posted by 歩行者   2006年06月16日 01:52
こんにちは、歩行者です。
コメントありがとうございます!

もしかして、デスクトップの背景で
スクリーンセーバーがアニメーションするんですか?
凄いですね!!

たしか Mac も似たようなことができたと思いますし、
それに比べて某窓はいつの間にか
時代に取り残されてますね(´〜`;
Vista が出る頃には主要な機能はもごもご・・・
2. Posted by vine_user   2006年06月16日 10:49
歩行者さん、おはようございます。

そうなんですよ。ちゃんと動いています。
Cubeで回転させると、すべての画面で表示されているのがわかります。さすがにデスクトップごとに種類を変えるのは不可能なようですけど。

OSXでもユタ大学のTeapotを使ったサンプルでウィンドウを透明にして表示できるものがありますね。ただし、Xcodeでコンパイルしないと使えません。
このコメントのリンク先を参照して下さい!
3. Posted by 歩行者   2006年06月19日 12:51
おお、素晴らしいです。
どうせならバンプマップとかも貼って
超リアルなティーポットにして欲しかったところですが(笑)。

Web では Google に大きく遅れをとり、
デスクトップでは Mac/Linux に追い上げられ、
MS も難儀ですなぁ(´∀`;
4. Posted by うー   2006年12月09日 18:34
ここを参考にBerylをインストールさせてもらったものです。毎回とても参考になります。
xwinwarpのオプションなのですが、
-a -o 0.3をやめて-bにしてみました。
フルスクリーンのものを起動すると見えませんが、結構いい感じです。
xwinwrap -ni -argb -fs -s -st -sp -b -nf -- /usr/libexec/xscreensaver/glmatrix -root -window-id WID
5. Posted by vine_user   2006年12月10日 01:41
うーさん、コメントどうもありがとうございます。

なるほど、背景の黒い部分が表示されないわけですね!

bオプション、僕も気に入りました。

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Adsense