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アプリやシェルコマンド・スクリプトを起動することができます。
基本操作
ファイル選択画面では、以下のように操作します。
- すべてのディレクトリを表示する
「ファイル」メニューで、「My Zaurusモード」のチェックを外します。
- 隠しファイルも表示する
「ファイル」メニューで、「隠しファイル表示」をチェックします。
- ディレクトリ移動
表示されているディレクトリを選択すると移動します。また、".."を選択すると、上位のディレクトリへ移動します。「BS」キーを押すと、同様に上位のディレクトリへ移動します。
- SDカード、CFカードへ移動する
「My Zaurusモード」の時は、「My Zaurus」へ戻って、「SDカード」あるいは「CFカード」を選んでください。ただし、挿入されていないカードは表示されません。また、「My Zaurus」表示中にカードを挿しても自動認識はしません。(「最新の情報に更新」をすれば反映されるはずですが、基本的になるべく実行中の抜き差しは避けてください)
すべてのディレクトリを表示させている場合は、/mnt/card以降がSDカード、/mnt/cf以降がCFカードです。この場合も、ディレクトリ名のアイコンは通常ディレクトリではなくカードのアイコンに変わっています。
なお、「My Zaurusモード」のチェックを外している状態(すべてのディレクトリ表示可能状態)で「My Zaurusモード」をチェックすると、強制的に「My Zaurus」のルート(「本体メモリー」とカードの一覧)に移動します。そのため、深いディレクトリ階層からカードへ移動したいときはこの切り替えを使うと簡単です。「My Zaurus」モードを解除するときにはディレクトリの移動は発生しないため、カード移動後に解除すれば、引き続きすべてのディレクトリを表示できるモードで作業を続けられます。
「ファイル」メニュー
「ファイル」メニューより、以下の操作をすることができます。
プロパティ
ファイルの情報を表示します
最新の情報に更新
ディレクトリの状態を最新の情報に更新します。別アプリケーションでディレクトリ状態が変更されている場合などに使用します。
ファイルの種類
表示するファイルをワイルドカードで指定します。";"で区切ることで複数のワイルドカードを指定できます。既定値として、「*.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ファイルを使用するときはLHa for Unix(toycodeさんまたはWarlus,Visitさんで配布)が、zipファイルを使用するときはunzipが必要です。それらが導入されていない場合はエラーになります。tar+gzipは標準で対応しています。bzipは対応していません。(bzipを使う人ならば、自分でスクリプトを修正することができると思いますし)
- 書庫解凍やコピーを実際に処理するのは、TinyViewerではなくそれぞれのコンソールコマンドです。要望等がある場合はそれらの作者宛にお願いします。
- 一括コピーなど、操作によっては重大な結果をもたらしますので、使用に当たってはご注意ください。くれぐれも自己責任でお願いします。
書庫リスト
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側で対処できることではないので、動作への要望などはそれぞれの作者にお願いします。
- FATファイルシステム上(SDカードなど)に解凍すると、ファイルのタイムスタンプは解凍した日時になる
- 日本語ファイル名のファイルは解凍できない。(書庫内のほかのファイルは解凍できる)
一括コピー
ディレクトリを指定したときに、そのディレクトリ以下の内容を一括してコピーします。(ファイルも指定できますが、単に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ファイルの記述と実行形態
- 単純実行
progx = @スクリプト名(フルパス)<tab>登録名
「登録名」の名称でメニューに表示されます。選択すると、「スクリプト名」のスクリプトに、カーソル位置のファイルがパラメタ$1として渡され、実行されます。特に確認はありません。情報表示などファイルそのものに大きな影響を与えない類のスクリプトに利用してください。ファイルの削除など、不可逆な結果をもたらすスクリプトは、絶対にこの形式では登録しないでください。
- 確認実行
progx = !スクリプト名(フルパス)<tab>登録名
実行時に確認ダイアログを表示する以外は単純実行と同じです。カーソル位置のファイルを対象とする操作で、不用意に実行したくないものを指定してください。
- 対象指定実行
progx = #スクリプト名(フルパス)<tab>登録名
メニューから選択すると、コピー・移動時と同様に対象ディレクトリを指定するダイアログが表示されます。ここでディレクトリを指定すると、そのディレクトリがパラメタ$2として渡され($1はほかの形式と同様)、確認ダイアログを表示後にスクリプトを実行します。なお、対象ディレクトリ指定では、確認ダイアログなしの形式はありません。
また、対象ディレクトリの末尾には"/"はつきません。必要に応じてスクリプト側で対応してください。
動作機種
SL-C700およびSL-C860で動作確認しています。C750/760、B500でも動作するはずです。0.2.1以降はA300でもおそらく動作すると思います。
開発メモ
2003/01/10 0.3.1リリース
以下の機能を追加しました。
- 参照したディレクトリを自動的にブックマークに追加し、メニューからの選択でそのディレクトリにダイレクトに移動でき、なおかつ使用頻度の低いマークは自動的に削除する自動マーク機能を追加しました。
- VGA表示の場合に、テキスト・htmlのプレビュー表示時のフォントを12ポイントフォント(あるいは任意に指定したそれ以外のサイズのフォント)に一時的に切り替えてプレビューを行う、縮小表示機能を追加しました。
- 仮想ファイルシステム参照の方式を変更しました。
自動マーク機能は、ブックマーク機能と履歴機能を足して2で割ったようなもので、プレビューを行ったファイルのあるディレクトリが自動的にメニューリストに追加されてゆきます。ただし、追加されるのは15個までで、それ以上は、新規追加が増えるたびに、参照頻度の低いものが削除されてゆきます。
深い階層を移動する途中に通ったディレクトリなど、ファイルのプレビューを実行していないディレクトリは登録されません。
メニューの表示順も使用頻度順になっています。つまり、15個フルにディレクトリが登録されている時に、新規ディレクトリが追加されると、最下行にあるディレクトリが代わりに削除されます。
もし、自動削除されたくないディレクトリ名が最下行になっていたら、ちょっとそこへ飛んでプレビューを行い、参照回数を増やしてください。
なお、MyZaurusモードになっていても、MyZaurus下を外れているディレクトリのマークは利用可能です。
縮小表示機能は、一つのサイズに限らず、任意のフォントサイズにその場で切り替えられたほうが便利なのはもちろんわかってるのですが、それは大変なので(^^;。フォントサイズ変更機能というよりも、「プレビューのままでもう少し見たい」というときのための機能です。
2003/12/26 0.2.6リリース
仮想ファイルシステム/proc以下のファイルがプレビューできなかった点を修正しました。
それ以外の変更はないので、/proc以下のファイルを参照しない場合はバージョンアップの必要はありません。
2003/12/11 0.2.5リリース
シェルスクリプト実行機能について、日本語ファイル名の制限を外しました。
- 指定したスクリプト/シェルコマンドに日本語ファイル名が正常に渡ります。
- ただし、実行するスクリプトで/bin/shを指定している場合は正常に動作しません。(/bin/shが日本語ファイル名に対応していないためです) /bin/bash等に変更してください。
- 実行するコマンドがUTF-8形式の日本語ファイル名に対応できない場合も正常に動作しない可能性があります。更新系のコマンドの場合は、あらかじめ確認の上ご使用ください。
また、tvtoolsも日本語ファイル名対応にあわせ、/bin/shではなく/bin/bashを使って実行するように改めた0.0.2をリリースしました。
2003/11/28 0.2.4リリース
以下の機能を追加しました。
- メニューにショートカットを追加しました。また、主要な「ファイル」メニューの項目と、「実行」メニューに登録されるプログラムの上位10プログラムについては、所定のCtrl+英数字キーで直接起動できるようになりました。
- 宛先指定ダイアログで、ディレクトリのみ表示するか、ファイルも表示するかを選択できるようにしました。
- VGA画面のインプットスタイルに限り、画面分割の縦横を変更できるようにしました。
- desktopファイルを修正して、高速起動も可能にしました。
なお、C860でも動作確認済みです(^^;。
2003/11/03 0.2.3リリース
以下の機能を追加しました
- 「実行」メニューのコマンド・スクリプト起動機能で、あて先ディレクトリをGUI指定してから起動する形式を追加
- 「実行」メニューのコマンド・スクリプト起動機能で、実行前に確認ダイアログを表示する形式を追加
最後に参照していたファイルとその親ディレクトリが削除されていると起動できなくなっていた不具合を修正しました。
また、この機能追加を前提として使用する、機能拡張スクリプト集「tvtools 0.0.1」をリリースしました。
2003/10/31 0.2.2リリース
以下の機能を追加しました
- 「削除」で、ディレクトリの削除を可能にしました。ただしディレクトリ内にファイルがあると削除できません。「名前の変更」でディレクトリの名前変更も可能にしました。
- カーソル位置のファイルをコピーする「コピー」機能と移動する「移動」機能を追加しました。また、この時にコピー先のディレクトリを新たに作成することもできます。
- ワイルドカード指定(複数指定可能)で、ファイル選択欄に表示するファイルの種類を絞り込める「ファイルの種類」機能を追加しました。
また、ファイル選択欄で何も表示されていない行をタップすると落ちていた不具合を修正しました。
2003/10/23 0.2.1リリース
- すべてのディレクトリ、隠しファイルも表示可能にしました。また、ファイル名は拡張子込みで表示されます。それに伴い、ファイル選択の操作が0.1.1までと若干変わっています。従来と同様の"My Zaurus"を起点とした表示形式(操作・レイアウトは若干異なります)に切り替えることもできます。表示する情報そのものは変わらないので、Linuxのディレクトリ階層に不慣れな場合や、"My Zaurus"以下のファイルしか扱わない場合はこちらのほうが便利です。
- 「ファイル」メニューに「名前の変更」を追加しました。
すべてのディレクトリ・隠しファイルが表示可能になったため、それらを削除・名前変更することも可能になっています。システムの重要なファイルを削除・名前変更するようなことのないように十分ご注意ください。当然ながら、実行したことによる結果はすべて自己責任でお願いします。
また、シャープライブラリをリンクしなくなったので、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リリース
-
Word/Excelファイルやいくつかのバイナリファイルは自動判別し、プレビューウィンドウにファイルの種類のみを表示するようにしました。(独力でWord/Excelファイルを表示するようなことは無理なので、内容の表示はありません(^^;)
- B500に対応しました(つもりなので、確認してください)。
- ビュースタイルで起動したときは画面を上下に分割するようにしました。(実行中のスタイル変更には対応していません)
- 起動時の表示ファイルを指定できるようにしました。ディレクトリを指定するときは"/*"で指定します。
例:
KeyHelperAppletで
Application/TinyViewer /mnt/card/Documents/*
ターミナルから
qcop QPE/System 'execute(QString,QString)' TinyViewer /mnt/card/Documents/*
2003/10/14 0.0.1リリース
えー、TTextReaderにまだまだTodoがあるのにもかかわらず(^^;、こんなものを作ってみました。
TTextReaderにプレビュー機能をつけたとき、ざうぽけのMarさんが「ファイル一覧でプレビューできたら…」と書いていたのにヒントを得た、ずばりファイル一覧でプレビュー(テキスト、html、画像)をするソフトです。なお、テキスト・htmlは、ファイルの先頭一定量しか読んでいないので、htmlは場合によっては正しく出力されません。(ソースのプレビューになる)
詳細表示はここから起動する専用ソフトにすべて任せるという方針で、自力ではプレビュー以上のことはしません(将来も)。
あまり機能強化するつもりはありませんが、Windowsのエクスプローラーで言う「送る」の機能、およびファイルの削除くらいの機能はつけるつもりです。(内容を確認しながら削除、ができるように)
また、文字コード自動判定に、SatoshiさんのZEditorの文字コード判定ロジックを利用させていただきました。一応私の自前でもTTextReaderで使っている自動判定ロジックがありますが、これは速度最優先で精度が低いものです。
このアプリでは自動判定の精度が低いと話にならないので、精度の高いZEditorのものを利用させていただきました。この場を借りてお礼申し上げます。
[戻る]