お気に入りの写真をスクリーン・セーバーでディスプレーする

 Xウィンドウのdefaultのスクリーン・セーバーはxscreensaverです。幾何学的な画像や無機質なものもいいですが、やっぱり家族の写真とか気に入った写真がスクリーン・セーバーで出せるといいですよね。

これをするには、xscreensaverの代わりをするものを作ります。シェル・スクリプトがgithubにありました。screensaver.shです。

このシェルを使うには2つのパッケージが必要です。その一つがお気に入りの画像をフルスクリーンで表示する軽くてXウィンドウで動き、スライド/ショーしてくれるのが以前紹介したfehです。もう一つがコンピュータがアイドルになったときそれを知らせてくれるものxprintidleです。

前提:

お気に入りの画像をいつでも追加・変更でき、コンピュータがアイドル状態になったら画像が見れるデジタルの写真立てなようなものをイメージします。

もちろん、コンピュータを使うときはお気に入り写真のスライドショーは中断し、またコンピュータが空いたらまた写真が出てくるようにします。

お客様が同席する営業現場のような場面では宣伝用の写真をいれておけばTVの大画面に表示されるデジタル広告としても利用できますね。(セキュリティーのため一旦ログアウトして)コンピュータがアイドルになるとスライドショーが始まりますね。


(1)お気に入りの写真はUSBドライブのPicturesホルダーに入れて置くことにします。写真はこのPicuresフォルダーのトップディレクトリとその下のサブフォルダーにも入れることができるものとします。



先程のscreensaver.shをダウンロードしてこのシェルスクリプトも画像と同じフォルダーのドップディレクトリーにいれます。screensaver.shに実行権限をつけておきます。

(2)fehとxprintidleをインストールします

インストールの詳細は省略します。aptやsynapticパッケージマネージャーで簡単にインストールできるでしょう。なおfehとxprintidleも標準で用意されているパッケージです。

(3)次はscreensaver.shを起動するシェルスクリプトをつくります。

#!/bin/sh

bash /media/pi/757F-222E/Pictures/screensaver.sh 600

これは2行のチョンプロです。先程のscreensaver.shをコンピュータのアイドル状態が600秒(10分)アイドルが続いたら起動するようにしています。これをrun-screensaverの名前で実行権限をつくて/usr/local/binにいれて置きます。

/media/pi/757F-222E/はUSBドライブのデバイスIDです。lsblkコマンドで調べられます。

(4)試してみる

端末画面からrun-screensaverを起動してみてください。

$ run-screensaver &

コンピュータをアイドルにして600秒待ってください、スライドショーが始まります。コンピュータがアイドル状態にするためキーボードやマウスをさわってはいけません。なにもしてない状態にしてください。

コマンドの最後についた&記号はバックグラウンドで実行することを指示しています。

$記号をつけ忘れると−あれ端末のプロンプトが返って来ないぞ? それはscreensaver.shはスライドショーを無限に実行するからです。無限に実行するって暴走? いや違います。コンピュータが指定時間アイドル状態が続いたら自動的に実行します。

スライドショーを途中で中断するにはESCキーを押してください。

先程のプロンプトが返ってこないのを返すには、Ctrl+Zで実行プロセスを停止させます。その後バックグラウンドでプロセスを継続させるにはbgコマンドを使います。

^Z

[1]+  停止                  run-screensaver

$ bg

[1]+ run-screensaver 

デフォールトのXウィンドウ用 xscreensaverは無効に設定しておきます。

私は無制限で保存できるamazonの写真フォルダーを使ってますので、その中のお気に入りの写真をUSBドライブのPicturesフォルダーに時間をみて保存してます。
Picturesフォルダーに年月でサブフォルダーをつくりそこに整理してしています。

みなさんもやってみてくだい。











コメント

このブログの人気の投稿

feh 軽くてコマンドラインで起動するイメージ・ビュワー/スライドショー Xウィンドウ用linux

lmms, blender、フォントが小さい。小さいフォントはルーペで解決