TinyViewer


ダウンロード

バイナリ tinyviewer_0.3.1_arm.ipk

ソース tinyviewer_0.3.1.tar.gz

機能拡張スクリプト集 tvtools

tvtools_0.0.2_arm.ipk

概要

とりあえずスクリーンショットをご覧ください。

ファイル一覧で、カーソル位置のファイルの内容を右側のプレビューウィンドウに表示します。テキスト、html、画像(jpeg,bmp,pngなど)について表示します。それ以外(バイナリなど)は、ファイルの種類をプレビューウィンドウに表示するか、あるいは(判別できなかったときは)化け化けのテキストとして表示します。

OK/Enterキーを押すかタップすると、そのファイルに関連付けられているアプリケーションを起動します。標準では、テキストは標準のメモ帳、htmlはNetFront、画像はイメージビューワを起動します。ほかのエディタ等を関連付けしたい場合は、「私家版携帯端末考」のリナザウチップス 〜タコ風味編の「txt拡張子にZEditorを関連づける」などをご覧ください。

ちなみに、ファイルのサイズや日付は隠れてしまっていますが、ファイル一覧画面を横スクロールさせると出てきます。

また、カーソル位置のファイルをパラメタとして、(拡張子とは無関係に)任意のQtアプリやシェルコマンド・スクリプトを起動することができます。

基本操作

ファイル選択画面では、以下のように操作します。

「ファイル」メニュー

「ファイル」メニューより、以下の操作をすることができます。

プロパティ

ファイルの情報を表示します

最新の情報に更新

ディレクトリの状態を最新の情報に更新します。別アプリケーションでディレクトリ状態が変更されている場合などに使用します。

ファイルの種類

表示するファイルをワイルドカードで指定します。";"で区切ることで複数のワイルドカードを指定できます。既定値として、「*.txt」「*.htm;*.html;*.mht」「*.jpg;*.png;*.bmp」を選択することができます(もちろん、任意の指定を直接入力することができます)

削除

カーソル位置のファイル・ディレクトリを削除します。カーソル位置が".."の場合は選択できません。また、ディレクトリの場合は、ディレクトリ内容が空になっている必要があります。空でないディレクトリの削除には、tvtoolsの「一括削除」をご利用ください。

名前の変更

カーソル位置のファイル・ディレクトリの名前を変更します。カーソル位置が".."の場合は選択できません。

コピー

カーソル位置のファイルをコピーします。カーソル位置がディレクトリの場合は選択できません。プレビュー欄の上に重ねる形で、移動先を選択するダイアログが表示されます。このダイアログで、「コピー:xxx」ボタンを押すかOKキーを押すと、選択されているディレクトリにファイルがコピーされます。この画面では、EnterキーとOKキーの動作が異なることに注意してください。キーによるディレクトリの移動はEnterキーでのみ行えます。カーソルが".."の時は、".."が示す親ディレクトリではなく、現在開いているディレクトリそのものが宛て先となります。
「コピー:xxx」ボタンに、宛て先ディレクトリ名が表示されます。タイトルバーにフルパス名が表示されますが、たいてい切れてしまうと思うので、そのディレクトリが目的のディレクトリなのかどうかはボタンの表示で確認してください。
ディレクトリ単位のコピーには、tvtoolsの「一括コピー」をご利用ください

移動

ファイルを移動します。操作・表示はコピーとほぼ同様です。

プレビュー

チェックをはずすと、プレビュー表示を抑制します。カーソルを高速に移動したいときなどに有効です。

画面横分割

チェックを外すと、VGA・インプットスタイルでは通常横に二分割する形で表示しているファイル画面とプレビュー画面を、縦に似分割する形で表示します。ビュースタイル・QVGAでは関係ありません。この選択は記憶されます。

宛先ディレクトリのみ

チェックされている状態では、コピー・移動などの際に表示される宛先選択ダイアログでは、ディレクトリしか表示しません。チェックを外すと、そのディレクトリの中にあるファイルも表示されます。ただし、選択対象となるのはどちらの状態でもディレクトリのみです。この選択は記憶されます。

My Zaurusモード

隠しファイル表示

「基本操作」をご覧ください。

縮小表示

VGA表示の場合にチェックすると、テキスト・htmlのプレビューを12ポイントフォントで表示します。チェックをはずすと標準サイズの表示に戻ります。この選択は記憶されません。QVGA表示の場合は無効になっています。なお、縮小表示で表示するフォントのサイズは、confファイルのShrinkFont項目で指定されているので、ここを書き換えれば変更することも可能です。

「ブックマーク」メニュー

プレビューを行ったファイルのあるディレクトリは、自動的にこのメニューに追加されてゆきます。ただし、追加されるのは15個までで、それ以上は、新規追加が増えるたびに、参照頻度の低いものが削除されます。深い階層を移動する途中に通ったディレクトリなど、ファイルのプレビューを実行していないディレクトリは登録されません。メニューの表示は追加順ではなく、参照頻度の高い順になっています。

メニューを選択すると、そのディレクトリにダイレクトに移動します。また、MyZaurusモードになっているときに、MyZaurusの下ではないディレクトリをメニューから選択した場合も、そのディレクトリに移動します。

「実行」メニュー

0.1.1より、あらかじめ登録したアプリケーションを「実行」メニューより選択して、ファイル名をパラメタとして渡し実行する機能を追加しました。(Windowsエクスプローラの「送る」のような感じ) これにより、関連付けされていないファイルをエディタに渡して起動する、などもできます。

「実行」メニューの先頭には、関連付けされているアプリケーション(OK/Enterを押せば起動するアプリケーション)が表示されます。2行目以降は登録したアプリケーションが表示されます。
登録するときは、一度実行すると作成される/home/zaurus/Setting/TinyViewer.confに以下のように追記してください。

[Launch]
Prog0 = Applications/xxxxxxx
Prog1 = @/home/zaurus/test.sh

以下、Prog9まで、最大で10個のアプリケーションを登録することができます。(なお、実際はProg19まで登録可能ですが、10〜19は予約領域とさせていただきます。)

desktopファイルの存在するアプリケーション(ホーム画面に登録されているアプリケーション)の場合は、/home/QtPalmTop/apps/以降のパスのdesktopファイル名(.desktopを含まず)を記述してください。(要はKeyHelperAppletのランチャー設定と同じです)
パラメタは記述できません。選択されているファイル名がパラメタとして与えられて起動します。メニューには、desktopファイルの中で登録されているアプリケーションの名称が表示されます。

また、シェルコマンド・スクリプトに、やはりファイル名をパラメタとして渡して起動することができます。詳細については、スクリプト起動機能の技術的説明をご覧ください。

機能拡張スクリプト集 tvtools

TinyViewer0.2.3以降に対応した、「実行」メニューに追加する機能拡張スクリプト集です。ipkファイルをインストールすると、スクリプトをインストールし、TinyViewer.confファイルに登録します。次回起動時より「実行」メニューに表示されるようになります。

なお、これらの処理はすべて、シェルスクリプト+コンソールコマンドで実現されているため、以下の制限があります。

書庫リスト

lzh、zip、tar+gzip形式の書庫ファイルの内容を画面に表示します。拡張子がlzhならばlzh形式、zipならばzip形式、それ以外であればtar+gzip形式とみなして表示します。(したがって、実体がtar+gzipであるipkファイルも処理できます) 実行時に特に確認はありません。lzh、zipでは、書庫内に日本語ファイル名がある場合にも、表示できます。(ただし解凍はできませんが)

書庫解凍

lzh、zip、tar+gzip形式の書庫ファイルの内容を、指定したディレクトリに一括して解凍します。メニューから選択すると、あて先ディレクトリ指定ダイアログが開きます。指定方法は「ファイル」メニューのコピー・移動と同様です。なお、同名のファイルがある場合は常に上書きされます
また、以下の動作はLHA for Unix、unzip、tarの仕様です。TinyViewer側で対処できることではないので、動作への要望などはそれぞれの作者にお願いします。

一括コピー

ディレクトリを指定したときに、そのディレクトリ以下の内容を一括してコピーします。(ファイルも指定できますが、単に1ファイルのコピーを行うだけです)メニューから選択すると、あて先ディレクトリ指定ダイアログが開きます。指定方法は「ファイル」メニューのコピー・移動と同様です。なお、同名のファイルがある場合は常に上書きされます

その他

スクリプトで実現しているので、機能的にはいくらでも増やすことができます。(表示するメニュー欄が足りませんが)
たとえば、TinyViewer本体ではできない、ディレクトリ単位の一括削除も以下のようなシェルスクリプトを作成し、登録することで可能になります。

------------
#!/bin/bash
rm -R $1
------------
ただし、一括削除は使い方によっては非常に危険なため、あえてパッケージには含めませんでした。必要に応じて追加してください。

スクリプト起動機能の技術的説明

スクリプトを作成し、登録して使用される方はお読みください。

実装形態

system()で単純に実行しているだけです。 0.2.5より、日本語ファイル名で利用可能にするために、以下のようにして実装しています。

/tmpディレクトリに、

#/bin/bash
指定されたコマンド・スクリプト名+指定されたファイル名(+指定された宛先ディレクトリ名)

という内容のファイルtvexec.shを作成し、実行権限を付与します。

実行時に、

system("bash -c /tmp/tvexec.sh")

として起動しています。

シェルをzshなどに入れ替えている場合も、/bin/bashは存在しているはずなので問題ないと思います。
また、/bin/shは日本語ファイル名が全く駄目なので、/bin/shを指定しているスクリプトはそのままでは実行できません。

パイプで出力をハンドリングする等はやっていません。実行結果を確認したいときは、ファイルにリダイレクトしてください。(TinyViewerでは、特にリダイレクトのための記述を付加したりなどはしていません)

/tmp/tvresult.txtにリダイレクトする(tvtoolsのスクリプトなどを例としてご利用ください)と、実行後にダイアログで結果を確認できます。具体的には、実行後に/tmp/tvresult.txtファイルが存在すると、その内容をダイアログに表示します。表示にはスクロールバーが自動付加されますが、リナザウの/tmpの容量自体がそう大きくないので、あまり巨大なファイルになるようなリダイレクトはお控えください。なお、出力結果の文字コードは自動判別します(EUC以外の出力結果でも大丈夫です)。表示後、/tmp/tvresult.txtファイルは削除されます。

confファイルの記述と実行形態

動作機種

SL-C700およびSL-C860で動作確認しています。C750/760、B500でも動作するはずです。0.2.1以降はA300でもおそらく動作すると思います。

開発メモ

2003/01/10 0.3.1リリース
以下の機能を追加しました。

自動マーク機能は、ブックマーク機能と履歴機能を足して2で割ったようなもので、プレビューを行ったファイルのあるディレクトリが自動的にメニューリストに追加されてゆきます。ただし、追加されるのは15個までで、それ以上は、新規追加が増えるたびに、参照頻度の低いものが削除されてゆきます。

深い階層を移動する途中に通ったディレクトリなど、ファイルのプレビューを実行していないディレクトリは登録されません。

メニューの表示順も使用頻度順になっています。つまり、15個フルにディレクトリが登録されている時に、新規ディレクトリが追加されると、最下行にあるディレクトリが代わりに削除されます。

もし、自動削除されたくないディレクトリ名が最下行になっていたら、ちょっとそこへ飛んでプレビューを行い、参照回数を増やしてください。

なお、MyZaurusモードになっていても、MyZaurus下を外れているディレクトリのマークは利用可能です。

縮小表示機能は、一つのサイズに限らず、任意のフォントサイズにその場で切り替えられたほうが便利なのはもちろんわかってるのですが、それは大変なので(^^;。フォントサイズ変更機能というよりも、「プレビューのままでもう少し見たい」というときのための機能です。

2003/12/26 0.2.6リリース
仮想ファイルシステム/proc以下のファイルがプレビューできなかった点を修正しました。
それ以外の変更はないので、/proc以下のファイルを参照しない場合はバージョンアップの必要はありません。

2003/12/11 0.2.5リリース
シェルスクリプト実行機能について、日本語ファイル名の制限を外しました。

また、tvtoolsも日本語ファイル名対応にあわせ、/bin/shではなく/bin/bashを使って実行するように改めた0.0.2をリリースしました。

2003/11/28 0.2.4リリース
以下の機能を追加しました。

なお、C860でも動作確認済みです(^^;。

2003/11/03 0.2.3リリース
以下の機能を追加しました

最後に参照していたファイルとその親ディレクトリが削除されていると起動できなくなっていた不具合を修正しました。

また、この機能追加を前提として使用する、機能拡張スクリプト集「tvtools 0.0.1」をリリースしました。

2003/10/31 0.2.2リリース
以下の機能を追加しました

また、ファイル選択欄で何も表示されていない行をタップすると落ちていた不具合を修正しました。

2003/10/23 0.2.1リリース

すべてのディレクトリ・隠しファイルが表示可能になったため、それらを削除・名前変更することも可能になっています。システムの重要なファイルを削除・名前変更するようなことのないように十分ご注意ください。当然ながら、実行したことによる結果はすべて自己責任でお願いします。

また、シャープライブラリをリンクしなくなったので、A300でも多分動くかと思います。

なお、ファイル選択部分を新規に作成しているため、ひょっとすると、ファイル選択中に落ちる等のバグが新たに発生するかもしれません。そのため、0.1.1も残しておきます。

2003/10/18 0.1.1リリース

0.0.1で書いた通り、「送る」機能と削除機能を追加しました。また、画像などが多くてカーソル移動が遅くなるようなディレクトリ上を移動するときのために、プレビューを抑制することができるようにしました。なんかプレビューワとしての自己否定のような気もするので(^^;、記憶はしません。

「実行」機能は一種のランチャーですが、TinyViewerといいつつメモリは意外と消費するので(画像表示するためか、それともSlFileSelectorが意外に食うのか)、C700スワップ無しだと、NetFrontなどメモリ消費の大きいアプリは起動できないことがあります。(C750/60だと多分問題ないかと。うらやましー) 本業のランチャーではないから、という事で許してください。

それもあって、GUIでの設定ダイアログは用意する予定はありません。メモリ消費を極力増やしたくないので。

なお、日本語で始まるファイル名を選択したときは、コマンド・スクリプトは起動できません。正しくファイル名を渡すことができないためです。

英字で始まるファイル名(たとえば、"C700について.txt"とか)は、途中に日本語を含んでいてもどうやらコマンド/スクリプトに渡ってくれる(ひょっとして、シェルが先頭の文字だけを見てはじいている?)ようなのですが、起動するコマンドで日本語ファイル名を正しく解釈して実行できるかどうかは保証できませんし、そもそも本当にすべてのケースで英字+日本語ファイル名が通るかどうかも確認できないので、とりあえず日本語を使っているときは一律コマンド・スクリプトは使用不可にしてあります。Qtアプリケーションの場合は、もちろん日本語ファイル名で何の問題もありません。

このあたり(コンソールアプリとUTF-8日本語ファイル名)、正直よくわからない領域なので、詳しくご存知の方がいたらご教授ください。

ところで、たくさんリクエストいただいている、全ディレクトリ表示可能化ですが、これまでの本体すべてよりも大仕事になる話なので(^^;、やはりそうすぐにはできそうにありません。とりあえず、シンボリックリンクなどで対処してください。(ただし、リンクが無限ループにならないよう、ルートではなく/home/zaurus/Documentsを含まないディレクトリに個別にリンクを張るほうがいいかと思います。)

2003/10/15 0.0.2リリース

2003/10/14 0.0.1リリース
えー、TTextReaderにまだまだTodoがあるのにもかかわらず(^^;、こんなものを作ってみました。
TTextReaderにプレビュー機能をつけたとき、ざうぽけのMarさんが「ファイル一覧でプレビューできたら…」と書いていたのにヒントを得た、ずばりファイル一覧でプレビュー(テキスト、html、画像)をするソフトです。なお、テキスト・htmlは、ファイルの先頭一定量しか読んでいないので、htmlは場合によっては正しく出力されません。(ソースのプレビューになる)
詳細表示はここから起動する専用ソフトにすべて任せるという方針で、自力ではプレビュー以上のことはしません(将来も)。

あまり機能強化するつもりはありませんが、Windowsのエクスプローラーで言う「送る」の機能、およびファイルの削除くらいの機能はつけるつもりです。(内容を確認しながら削除、ができるように)

また、文字コード自動判定に、SatoshiさんのZEditorの文字コード判定ロジックを利用させていただきました。一応私の自前でもTTextReaderで使っている自動判定ロジックがありますが、これは速度最優先で精度が低いものです。 このアプリでは自動判定の精度が低いと話にならないので、精度の高いZEditorのものを利用させていただきました。この場を借りてお礼申し上げます。


[戻る]