Windowsモバイル環境向けの2つの素敵なオープンソースツール

モバイル環境の構築はそれほど難しくない。必要なモバイルアプリケーションをUSBメモリかリムーバブルメディアにコピーするだけでよい。だが、モバイル生活をもっと快適なものにしたければ、少なくとも2つの問題を解決する必要がある。1つはモバイルアプリケーションを手際よく使えるようにすること、もう1つはUSBメモリとPC(母艦)の間でデータの同期を取ることだ。

最初の問題を解決するには、PStartのような専用アプリケーションランチャを使えばよい。これで、Windowsシステムトレイのアイコンからリムーバブルメディア内のアプリケーションを起動できるようになる。PStartは無料で配布されているが、難点はソースが公開されていないことだ。ASuiteはPStartのオープンソースクローンで、しかも独自の便利な機能がいくつか追加されている。

このランチャを“インストール”するには、最新版をダウンロードし、ASuiteフォルダをUSBメモリにコピーする。ASuiteを起動すると、アイコンがシステムトレイに配置され、メインウィンドウが表示される。メインウィンドウにはList、Search、Statsの3つのタブがある。ランチャにアプリケーションを登録するには、実行可能ファイルをListタブまでドラッグすればよい。File > Scan for executablesを選択してUSBメモリ内のアプリケーションを自動的に登録してもよい。登録アプリケーションはフォルダに分けてグループ化できる。これはUSBメモリに多数のプログラムがあるとき案外役に立つ。複数のアプリケーションを同時に起動したいときは、ソフトウェアグループを作成すればよい。例えば、インターネットアプリケーション(Firefox、Thunderbird、Miranda IMなど)用のソフトウェアグループを作成すれば、それらをワンクリックで一度に起動できる。

登録したアプリケーションのプロパティを調整するにはアプリケーションを右クリックしてPropertiesを選択するか、F5キーを押す。ここではカスタム作業ディレクトリ、カスタムアイコン、自動実行オプションなどを指定できる。これらの設定は普通そのままにしておけばよいが、変更しないとアプリケーションの実行に支障が生じる場合もある。例えば、WordNetはUSBメモリから実行するようには作られていないが、カスタム作業ディレクトリとカスタムアイコン(USBメモリがEドライブのとき、それぞれE:\WordNet 2.1\binとE:\WordNet 2.1\bin\wn.ico)を指定することで、リムーバブルドライブから実行できるようになる。ASuiteは多言語対応だ。ASuiteをローカライズするには、Langフォルダ内のenglish.xmlファイルを目的の言語に翻訳し、別の名前で保存する。その後、ASuite内でFile > Optionsを選択し、翻訳した言語ファイルを指定すればよい。

Unisonで同期を取る

さて、次に解決すべき問題はUSBメモリと母艦の間でデータの同期を取ることだ。アプリケーションのデータや設定だけでなく、ドキュメント類も同期の対象となる。例えば、USBメモリでPortable Firefoxを、母艦でFirefoxを使用しているなら、プロファイルの完全な写しをいつも手元に持っていたいだろう。これでアプリケーション間の移動がシームレスに行えるようになる。同期ユーティリティはいろいろあるが、たいてい母艦にインストールする必要がある。普段USBメモリに入れておき、必要なときどのマシンとも同期が取れるようなツールがあれば便利だ。Unisonは、まさにこれを実現する、強力で使いやすいファイル同期ツールである。

UnisonをUSBメモリにインストールするには、コマンドライン版(unison-x.xx.x-win-text.exe)をダウンロードし、ファイル名をunison.exeに変更し、USBメモリのルートに置く。そして同じ場所にunisonフォルダを作成する。

Unisonはリムーバブルメディアから実行するようには作られていないが、いくつかパラメータを指定すれば、うまくいく。Unisonはコマンドラインユーティリティとして提供されているので、簡単なバッチスクリプトを作成し、その中で適宜パラメータやオプションを設定するとよい。具体的には、新規のテキストファイルを作成し、以下のコードを入力する。ただし、Firefoxのデフォルトのディレクトリ名は実際の環境に合わせて変更する必要がある。

  @echo off
  set unison=.\unison
  set USB_Path=.\FirefoxPortable\Data\profile
  set Local_Path=C:\Documents and Settings\User\Application Data\Mozilla\Firefox\Profiles\vmu5dry8.default
  echo Ready to sync %Local_Path%
  pause
  unison "%USB_Path%" "%Local_Path%" -batch -log -logfile log.txt -times -prefer newer
  echo All done! Details are in the log.txt file.
  pause

まず、set unisonコマンドでUSBメモリのルート内の代替unisonフォルダを指定する。これで、Unisonはハードディスク上のデフォルトの位置にデータを格納しなくなる。次の2つのコマンドは同期するディレクトリを定めるものだ。残念なことに、相対パスは使えない。フォルダの完全パスを指定し、必要なら後で修正する。そして、最後のunisonコマンドでディレクトリ間の同期を取る。パラメータは次のとおり。

-batch。対話なしで同期処理を実行する。
-log -logfile log.txt。ログファイルを指定してロギングをオンにする。
-times。ファイルの更新日時を維持する。
-prefer newer。新しい方のファイルを残すことで競合を解決する。

拡張子.batを付け、このファイルをUSBメモリのルートフォルダに置けば準備完了だ。まだ何か問題があるかもしれないので、Firefoxプロファイルの同期を取る前にダミーのディレクトリで試してみよう(USB_PathとLocal_Pathの値を変更することを忘れずに)。

このバッチファイルを使うと、Firefoxプロファイルに限らず、どんなデータの同期も取ることができる。Unisonの機能とオプションについては、Unisonのマニュアルに詳しく解説されている。これで、もっと凝ったスクリプトを書くことができるだろう。

Dmitri Popov — フリーのライター。ロシア、英国、ドイツ、デンマークのコンピュータ雑誌に寄稿している。

NewsForge.com 原文