仮想花火を見る
今年の夏は一度も花火を見ていないため、夏が終わる前に、せめてLinux上で花火を見てみよう、ということで、2つの仮想花火を取り上げることにする。なお、両方とも音は出ないので、好みにより、別途用意しておく必要があるかもしれない。
仮想花火を見る以外には、動画投稿サイトで「花火」や「fireworks」「スターマイン」などを検索して、見るのもよい。音も出る*1。
XScreenSaverのFireworkx
XScreenSaverの中には、「Fireworkx」という、花火のスクリーンセーバがある。スクリーンセーバとして使用する以外にも、
$ /usr/lib/misc/xscreensaver/fireworkx
のように実行することでも見ることができるが、ウィンドウ内をクリックしたりすると落ちるようだ。
色々とオプションで挙動を制御でき、
$ man fireworkx
で詳細が見られる。
(デフォルト設定では)見た目はかなり綺麗で、広がった後にシュルシュルと動いたりすることがあったりもして凝っている。
欠点は、CPUへの負荷が非常に高いこと。
XFireworks
かなり古い(最終更新が2000年)。Xのルートウィンドウに花火を表示するというもの。オプションしだいで派手にもできるが、重くなる。http://www.vector.co.jp/soft/unix/amuse/se154752.html
からソースをダウンロードして、展開後、
$ tar zxf xfireworks-1.3.tar.gz $ cd xfireworks-1.3/
Makefileの中の
- PREFIX(例: /usr/local)
- X11BASE(例: /usr)
- CFLAGS(例: -O2 -march=[使用しているCPUに合わせた文字列] -pipe)
などの値を必要に応じて書き換え、ビルドする。
$ make (略) $ strip xfireworks $ sudo paco -lD make install mkdir -p /usr/local/bin cp xfireworks /usr/local/bin chmod 0755 /usr/local/bin/xfireworks mkdir -p /usr/local/etc cp xfireworks.conf /usr/local/etc chmod 0644 /usr/local/etc/xfireworks.conf mkdir -p /usr/local/man/man1 cp xfireworks.1.gz /usr/local/man/man1 chmod 0444 /usr/local/man/man1/xfireworks.1.gz
この後でxfireworksを実行すると、花火が動き出すのだが、デスクトップ環境上では、ルートウィンドウが既に使用されているため、「デスクトップ」を管理しているプログラムを止める必要がある。Xfce 4.4では、設定マネージャから「デスクトップ」を開き、「Xfceにデスクトップを管理させる」のチェックを外すのだが、後でまた入れる必要もあり、面倒な上、デスクトップの右クリックなどもできなくなる。
そこで、Xnestを使用して、ウィンドウの中で実行させてみる。Xnestは、新しいXのディスプレイを既存のディスプレイの中のウィンドウとして作成できる。
「:1」の部分は、使用されていないディスプレイ番号を指定し、-geometryオプションの引数は、ウィンドウのサイズ指定。好みに応じて変えるとよい。
$ Xnest :1 -geometry 1024x768 & $ DISPLAY=:1 xfireworks -fine 200 -after-image 150 -gradation 64 -wait 10000 AUDIT: [日時]: [XnestのプロセスID] Xnest: client 1 rejected from local host (uid [ユーザID]) No protocol specified Error in Disp_Create:Cannot open display.
しかし、実際に実行させると、上のようにエラーとなり、そのままでは使えない。新しいディスプレイに対する認証が必要。既存のディスプレイの「MIT-MAGIC-COOKIE-1」の後ろの文字列を使用して
$ xauth list [マシン名]/unix:0 MIT-MAGIC-COOKIE-1 [文字列]
下のように認証する。
$ xauth add :1 MIT-MAGIC-COOKIE-1 [上の文字列部分をコピペ]
これでXnestのウィンドウに花火が出るようになる。
$ DISPLAY=:1 xfireworks -fine 200 -after-image 150 -gradation 64 -wait 10000
コマンドラインオプションについては、READMEを参照。上の実行例も、このファイルに書かれている例の1つをそのまま使用している。
その他
http://www.kde-look.org/content/show.php?content=2631に、KDE用の「Fireworks」スクリーンセーバのソースがあるのだが、試してはいない。ビルドにはKDEライブラリとその開発用ファイルが必要。
*1:音が出ても、あの「振動」は伝わってこないし、見た目も、実物には劣ってしまうのだが、こればかりはどうしようもない