お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-03-08 10:46:00

edonkun
新しいメンバ
登録日: 2011-03-08

スクリーンセーバー起動時に任意のコマンドを実行するには?

図書館のWebOPACの検索端末をUbuntu10.10で構築しようと作業を行っています。
Webベースの検索画面をブラウザ上に表示するだけのキオスク端末となります。

Ubuntu10.10にpessulusとEpiphanyをインストールして設定しています。
http://blog.goo.ne.jp/minoh_edubuntu/e/a5c07c5efa0e6a43a421ac22c45cd611
を参考にしながら、目的の動作はほぼ達成できましたが

定期的にホーム画面に戻る設定ができず行き詰まっています。
cronで時間がきたら Epiphanyを kill と 実行をしようかと考えましたが
利用者が操作中にブラウザが再起動することになってしまいます。

まだ試していませんが、スクリーンセーバーの.desktopファイルの[Desktop Entry]でExec= にコマンドを直に書いてしまおうかとも思っています。
他によい方法をご存じの方がありましたら教えてもらえないでしょうか。

オフライン

 

#2 2011-03-08 12:52:02

vbk
メンバ
From: Lake Hamana in Hamamatsu
登録日: 2009-12-22

Re: スクリーンセーバー起動時に任意のコマンドを実行するには?

Epiphanyの拡張機能「Greasemonkey」(epiphany-extensionsパッケージ内)を使ってみてはどうでしょうか。
このプラグインにより閲覧中のページにJavascriptを埋め込めるので、例えばマウスの移動やキーボード入力の検出とsetInterval関数の組み合わせで実現できそうです。

機能をブラウザ側に実装したほうが、ブラウザを終了・起動させる方法よりもコンパクトだと思います。

オフライン

 

#3 2011-03-08 18:45:53

STGSAGWAN
ゲスト

Re: スクリーンセーバー起動時に任意のコマンドを実行するには?

タイトル通りの事なら、 https://forums.ubuntulinux.jp/viewtopic.php?id=10563&action=new で出来ますよ。

 

#4 2011-03-09 23:18:58

edonkun
新しいメンバ
登録日: 2011-03-08

Re: スクリーンセーバー起動時に任意のコマンドを実行するには?

ありがとうございます。
STGSAGWANさんにご提示いただいた情報で解決できました。


具体的にはPerlスクリプトで

#!/usr/bin/perl
my $cmd = "dbus-monitor --session \"type='signal',interface='org.gnome.ScreenSaver', member='ActiveChanged'\"";

open (IN, "$cmd |");

while (<IN>) {
if (m/^\s+boolean true/) {
system("killall epiphany-browser");
system("epiphany-browser &");
}
}

として、ログイン時に自動起動するように設定しました。
今のところ順調です。大変勉強になりました。ありがとうございました。


本題とはずれますが
もともとOPAC用端末は、業者が導入したWindowsパソコンにIEベースの専用ソフトが動いていました。環境復元ソフトも含めてかなりの費用がかかっていました。
HDDが不調で交換のため、OSや専用ソフトの再セットアップを業者に頼むか迷っていたのですが、Ubuntuでトライして正解でした。

オフライン

 

#5 2011-03-09 23:20:38

edonkun
新しいメンバ
登録日: 2011-03-08

Re: スクリーンセーバー起動時に任意のコマンドを実行するには?

vbkさんからご提示いただいた、Greasemonkeyについては勉強不足で、仕組みが思いつきませんでした。
もう少し研究してみます。ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB