Active Desktop 風の効果 part2: Flash, HTML

そもそも Windows のみを使用していたとき、アクティブデスクトップ にまったく興味はなかったんですが、「Windows のアクティブデスクトップのように MappedUpswf 形式の Flash ファイルを壁紙にできないか?」という投稿を Ubuntu のフォーラムで見かけたのがきっかけで興味がわきました。

「Windows にはあるのに」、「Windows では可能なのに」、そんなフレーズが頭をよぎるから?  (;^_^A

MappedUp のサイトはこちら。RSS フィードをアニメーションを使って面白く見せてます。

結果はこんな感じ。

active-desktop-rotate-cube

まず先に、Compiz-Fusion を使用して Gnome 端末のウィンドウConky のようにあたかも壁紙に埋め込まれたかのようにデスクトップ上に配置する方法が、以下のリンク先で分かりやすく説明されているので紹介します。

英語:

http://www.ubuntu-unleashed.com/2007/08/howto-completely-transparent-shell-on.html

日本語:

http://gihyo.jp/admin/serial/01/ubuntu-recipe/0036

(英語サイトのコメントにあるように、「trans」は「trans56863」といった具合に念のためランダムな数字もつけておくとよいかもしれません。)

この方法だと基本的にアプリケーションの制限はないけれど、壁紙のような見た目等を考慮すると上の Gnome-Terminal のようにツールバーなしの外観に出来きることと、プロファイルの簡単な切り替えが可能か、もしくは普段使用しているアプリとは別のものを壁紙専用に新たに導入することが必要かなと。

FireFox は残念ながらこの条件に当てはまりません。兄弟アプリの Prism も下枠が太い・・・。

もし他に最適なアプリがあればぜひ教えてほしいのですが、自分は Screenlets を選んでみました。

URL やローカルにある html ファイルを ScreenletsWeb Application としてインストールするわけです。

Ubuntu なら Synaptic から検索して簡単にインストール出来ます。

追記: python-gnome2-extras パッケージも必要なのでインストールしておきます。

$ sudo apt-get install python-gnome2-extras

まずはちょっとこちらのリンクで実験させてもらいましょう。
http://www.coverage3d.com/Coverage3D.swf

Screenlets Manager を起動させて Install > Install Web Application を選ぶと Web Applicaton の URL とそれに付ける名前を指定する入力ダイアログが表示されます。
URL は上のリンク、名前は今回 Coverage3d_bg と入力します。(bg は適当にバックグラウンドの意味合い。名前の最後に bg を付ける理由は後述。名前に日本語文字を使用すると起動できないので注意。)

OK ボタンを押すと、Screenlets Manager 上に Coverage3d_bg という名前のアイコンが表示されるはずです。

そのアイコンをクリックして選択状態にした上で Manager 画面左の Launch/Add を押すと、Flash ファイルの読み込みに時間がかかるかもしれませんが、リンク先が開きます。

開いて気づくのは、ウィンドウのサイズやタイトルバーの存在等が壁紙としてはふさわしくないということ。それを Compiz の各種プラグインの設定によって修正していきます。

設定や有効にしておくべき最低限のプラグインは、「ウィンドウの装飾」と「ウィンドウのルール」、「正規表現マッチング」の3つ。

Screenlets の Web Application のウィンドウのクラス名は「インストール時に付けた名前(ただし、名前の一番頭に小文字を使用した場合でもクラス名では大文字となるので注意。) Screenlet.py」になります。

上の例では、Coverage3d_bgScreenlet.py となります。

ただ、各プラグインのウィンドウ・マッチ効果対象ウィンドウの指定)にフルのクラス名を入力していくのは面倒なので正規表現を利用して「 class=bgScreenlet.py$ 」という風に少し楽をします。

文字列の最後に付けた $正規表現で、この記号を付けることで「最後が bgScreenlet.py で終わっているクラス名」を持つウィンドウすべてに該当させることが可能。

Sceenlet.py の前に bg も付けたのは、特に各ビューポート(ワークスペース) に別々の壁紙を配置するため壁紙用の Web Application を複数作成した場合に、壁紙に利用する以外の他の Screenlet ウィジェットを除外しつつ簡単にウィンドウ・マッチを指定できるから。

まず、「ウィンドウの装飾」プラグインの装飾対象ウィンドウDecoration Window)指定欄に「 !class=bgScreenlet.py$ 」と入力します。class の頭につけた ! 否定を意味し、該当するウィンドウを効果適用対象から除外され、ウィンドウのタイトルバーが消えます。

続いて「ウィンドウのルール」プラグインの「タスクバー省略」、「ページャ省略」、「(Below)」、「フォーカス不可」に、「 class=bgScreenlet.py$ 」を入力。

さらに同プラグインの「サイズのルール」タブの固定サイズのウィンドウの指定でやはりclass=bgScreenlet.py$ 」を入力。サイズは基本的にお好みですが、とりあえず使用しているディスプレイの解像度を指定ということで。(「マッチ」タブのほうの「全画面表示」や「最大化表示」を使用すると他のウィンドウが背後に隠れてしまったりして問題がある場合が。)

これで、グリグリとマウスで動く flash ファイルが壁紙のように画面全体に広がったはず。

(もしダメだったら Screenlet を一度閉じて再起動させたり、Compiz の再起動を。)

特定の Screenlet をログイン時に自動起動させるのは、Screenlet Manager でその Screenlet を選択した上で Auto Start on login オプションにチェックを入れればオーケー。

あとは自分の用途次第ですね。

すべてのビューポートで表示するには、「ウィンドウのルール」の「スティッキー」。

スケール」プラグインの適用対象から外すには上の「ウィンドウの装飾」と同じ要領で。(ただ、スケールモードに入ると、本来の壁紙が表示されてしまいます。こればっかりはどうしようもない・・・。)

デスクトップの表示」モードの適用から除外するには「一般オプション(General Options)」にある「タスクバー省略ウィンドウを隠す(Hide Skip Taskbar Window)」オプションを無効に。

また、複数の壁紙用 Screenlet Web Application を作成していて、それぞれを特定のビューポートに表示させたい場合は、「ウィンドウの配置(Window Placement)」プラグインの「固定ビューポート・ウィンドウ」を利用しますが、ここではフルのクラス名で指定してやります。上の Coverage3d_bg を例に取れば、「 class=Coverage3d_bgScreenlet.py 」です。

参考例の手順は以上で終わり。

では、肝心の MappedUp の場合はどうか。

最初に挙げた MappedUp サイトにあるダウンロードページから Web サイト用の zip パッケージをダウンロード。

パッケージを展開したのが「ホーム・フォルダ」とすると、パッケージに含まれている mappedup_ufo.html ファイル、または直接 mappedup8.swf ファイルを以下のように  Web  Application の URL として指定すればオーケー。

file:///home/ユーザー名/MappedUpWebBig/mappedup_ufo.html

ないしは

file:///home/ユーザー名/MappedUpWebBig/mappedup8.swf

あとの手順は前述した通りです。

追記:

え、ちょっと待った。これじゃ Compiz-Deskmenu とかのデスクトップの右クリックメニューがだせなくなるんじゃ?

確かにそうだけれど、Compiz の Ghost プラグインを使う手があります。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。