戻る

ザウルス関連メモ

フォントの作成 (2006-04-16)
q2chでAAをみる他 (2005-11-12)
スタイル切り替えの検出 - KeyHelper (2005-10-22)
関連付けの優先順位 (2005-09-17)
InputHelperのコードによるキーイベント (2005-08-24)
ビュースタイルでペンを使わずに閲覧 (2005-08-24)
ブラウザ間のブックマークの移行と同期 (2005-08-24)
cron_inet.rbで自動実行時刻の詳細設定 (2005-08-24)
QCopメッセージ情報へのリンク (2005-08-24)
InputHelper Appletのローレベルキーイベント (2005-08-24)
カレンダーの祝日設定 (2005-08-24)
クロックダウンしてみる (2005-08-24)
スクリーンセーバーの設定 (2005-08-24)
電源ONでアプリ起動 (2005-08-24)
ファイルの関連付け (2005-08-24)
IMkit-Anthyの導入(2005-11-19追記)

フォントの作成

Windowsのフォントをザウルス用に変換する手順
ttcファイルからttfファイルを取り出す
WindowsのフォントはC:\windows\fontsに存在、変換したいフォントが***.ttcというファイルに含まれている場合は以下の手順で取り出す。
ザウルス用フォントに変更

参考サイト
わなびざうるす
Zaurus別館

q2chでAAをみる他

ザウルスで使用できる2ちゃんねるビューアはq2chが定番ですが標準状態ではAAが崩れてしまいます。いろいろ見ていると表示フォントをモナーフォントというものにすれば崩れずに表示できるということを知りました。
ArticleFontName=monafont:16:1
ArticleFontName=monafont:8:1
ArticleFontName=lcfont
これでMキーを押す度に、LCフォント→モナーフォント(大)→モナーフォント(小)の順で表示フォントが変化します。モナーフォント(小)は大きいAA表示用です。
LCフォントは使わないよという場合は
ArticleFontName=monafont:8:1
ArticleFontName=monafont
というようにすればOK、行頭に“#”を追加するとコメント行になるみたいなので試しに行う場合に利用できます。
ちなみに使用しているq2chのバージョンは0.3.27y16です、他のバージョンで使用できるかは判りません。
その他Tips
Navi2chDir=/mnt/card/Documents/navi2ch   # SDカードのDocuments以下に置く場合
MaxArticle=5                # タブ数5

関連サイト:
q2ch - 0.3.27y16 & help
q2ch - 本家


スタイル切り替えの検出 - KeyHelper

LCD下のヒンジ部にある小さな2つのボタンがありますが、これがキーコード0x2009に割り当てられているのを知りました。KeyHelperConfで確認すると、このボタン押すときと放すときにキーコードが発生するみたいです。
これでインプット/ビュースタイルの切り替えの検出ができるのではないかと思い試してみました。keyhelper.confに
[Launch2]
0x2009 = Applications/zeditor
としてみたところ、見事インプット/ビュースタイルの切り替えでZEditorが起動しました。ただし画面が回転しませんが……(^^ゞ
画面の回転は
R = __7x009rotate
の設定で上手くいくかと思ったのですけど、そう甘くは無いようですね。画面の回転の方法についていろいろ試したところ、「縦横表示切替」のdesktopファイル内の実行コマンドをQCopで実行させれば良いことが判りました。
ターミナルから実行したところインプットスタイルで「横長画面」→「縦長画面」の切り替えしかできませんでしたけれども、KeyHelperに登録して実行したところ両スタイルにで双方向の切り替えができました。
qcop QPE/System 'execute(QString)' "__rotate"
従ってスタイルの切り替え時に、例えばZEditorを起動させたいとする場合にはZEditorの起動コマンドと、このQCopコマンドを実行させれば良いことになります。具体的な方法として2つのコマンドをkeyhelper.confの2キーランチャーセクション[Launch]に登録しておいて、1キーランチャーセクション[Launch2]において0x2009のキーコードでInputHelperのローレベルキーコマンドを用いて2つキーイベントを発生させます。
[Launch]
R = @qcop(TAB)QPE/System 'execute(QString)' "__rotate"
E = @qcop(TAB)Applications/zeditor

[Launch2]
0x2009 = @qcop(TAB)QPE/InputHelper key(QString) "press F10 0 1" "click e 0 1" "release F10 0 1" "press F10 0 1" "click r 0 1" "release F10 0 1"
ここでF10(address)は、2キーランチャー機能を使用するときの修飾キー(User1)です。
これでスタイル切り替えで画面の回転とZEditorの起動が行われるかを試したところ見事に行われました、ただし[Launch2]セクションの記述においてZEditorの起動を画面回転より前に記述することと、ZEditorは高速起動にしておくことが必要みたいです。これをしておかなかった場合にはZEdiorが起動しませんでした。

スタイル切り替え時のコマンド実行が上手くいったので、ビュースタイルでペンを使わずに閲覧で欠点としてあげたポイントが改善できそうなので試してみました。
インプットスタイル用のconfファイルkeyhelper.confとビュースタイル用のkeyhelper2.confを用意し、上記のZEditorの起動部分をconfファイルロードコマンドに書き換えます。

keyhelper.conf(インプットスタイル用)
[Launch]
E = @qcop(TAB)QPE/KeyHelper "config(QString)" keyhelper2
keyhelper2.conf(ビュースタイル用)
[Launch]
E = @qcop(TAB)QPE/KeyHelper "config(QString)" keyhelper2

[Launch2_app]
Escape = @qcop(TAB)QPE/InputHelper key(QString) "click A+CTRL+SHIFT 0 1"
これで画面切り替え時(0x2009発生時)に対応したconfファイルがKeyHelperにロードさせることになります。 実際に試したところ、[Cancel]キーはインプットスタイルでは本来の機能を持ち、ビュースタイルではメニュー表示が行われるようになりました。

関連付けの優先順位

関連付けで複数のdesktopファイルに同じMimeTypeが記述されていた場合にどれが使用されるかについて確認してみる。
現象として
MimeType = text/*
MimeTipeIcons = zeditor
これらのことから、*.desktopファイル名をアルファベット順に並べての後ろのものが有効になる模様、実験してみる。 結果、関連付けがNetfrontとメモ帳に変化しているので、上記の考え方は正しいらしい。更にtextedit.desktop、zeditor.desktopの名前をいろいろ変更して、どちらに関連付けされるかを確認してみる。
  メモ帳        ZEditor      関連付けされるアプリ
1 textedit.desktop   zeditor.desktop  ZEditor
2 textedit.desktop   aeditor.desktop  メモ帳
3 textedit.desktop   textedis.desktop  メモ帳
4 textedit.desktop   textediu.desktop  ZEditor
5 textedit.desktop   Textedit.desktop  メモ帳
6 textedit.desktop   tExtedit.desktop  ZEditor
7 Textedit.desktop   tExtedit.desktop  ZEditor
8 Textedit.desktop   textedit.desktop  ZEditor
9 tExtedit.desktop   textedit.desktop  メモ帳
1〜4からやはりアルファベット順で後ろのものが有効になるようだ。同名で大文字を小文字の違いの場合は5,7,8から1文字目に違いがある場合は小文字が有効、しかし2文字目に違いがある場合は大文字が有効になっている、この辺がよく判らない結果となった。

関連付け関連の情報
日々の徒然 - 2005年7月6日
りなざうテクノウ - Qtopiaのデスクトップ構造(リンク先修正2006.08.25)
りなざうテクノウ - Qtopia上でのファイル関連付け(リンク先修正2006.08.25)


InputHelperのコードによるキーイベント

InputHelperのキーイベントは普通
qcop QPE/InputHelper 'key(QString)' "action key"
という記述になるが、コードによる記述もできる。この場合書式は
qcop QPE/InputHelper 'key(QString)' "action unicode keycode 修飾key状態"
となる。uniode、keycode、修飾key状態は16進数で記述する。
ユニコードを使用する場合、例えば「あ」は0x3042なので、以下の設定で[Z]を押すと「あ」が入力されるようになる。
Z = qcop(TAB)QPE/InputHelper 'key(QString)' "click 0x3042"
キーコードを使用する場合、例えば縮小([Fn]+[1]:キーコード0x200f)は以下のようになる。ユニコード部の0xffffはKeyHelperconfの出力のまま。
Z = qcop(TAB)QPE/InputHelper 'key(QString)' "click 0xffff 0x200f"
「修飾key状態」については使い方が良くわからないので保留。

qpe-embeddedkonsole-jaでの設定例
端末画面追加/切り替えは[fn]+[5]/[1]に割り当てられていますけど、頻繁に使用するには少々入力し辛い配置なのでKeyHelperで[O][P]に割り当ててみます。

[Launch_embeddedkonsole-ja]
O = @qcop(TAB)QPE/InputHelper key(QString) "click 0xffff 0x200f 0x0000"
P = @qcop(TAB)QPE/InputHelper key(QString) "click 0xffff 0x201b 0x0000"

ビュースタイルでペンを使わずに閲覧

ビュースタイルでの使用時にペンを使用しないでアプリの操作や情報の閲覧ができないか実験してみました。
ビュースタイルで使用できるキーは、[OK][Cancel]とシャトルキーによる[Up][Down]だけです。これでいろいろな機能を実現させるにはどうしたらよいでしょうか? 思いつくのはKeyHelperのメニューランチャーを呼び出して項目を選択する方法です。そこで[Cancel]でメニューを呼び出すようにしてみました(ただし欠点あり) 設定にはKeyHelperとInputHelperを使用します。
今回はNetFrontで実験しましたが、どのアプリでも可能なはずです。
keyheloer.xmlの設定
まずkeyhelper.confで[Cancel]のみの1キーでランチャーが起動する[Launch2_app]セクションが使用できるようにします。
<extensions>

	<define key="All" kind="launch2"/>

</extensions>
次にメニューランチャーを表示させる為の仮のキーアサインを決めます。ここでは通常使用しないキーの組合せを選択する必要があります。今回は[Shift]+[Ctrl]+[A]とし、keyhelper.conf上のセクション名は[Menu50]としました。
<extensions>

	<define key="A" kind="menu50">
		<modifier Shift="On"/>
		<modifier Control="On"/>
	</define>

</extensions>
複数のアプリでそれぞれ異なるメニューランチャーを表示させたい場合は、上の"A"を"B","C"……のように、"menu50"の部分を"menu51","menu52"……の様に割り当てていけば良いと思います。
keyhelper.xmlを変更した場合はリロードする必要があります。
$ khctl reload

keyhelper.confの設定
NetFront使用時に[Cancel]でメニューランチャー[Menu50]を表示させるため、ローレベルキーイベントで[Shift]+[Ctrl]+[A]を押すように設定する。
[Launch2_netfront3]
Escape = @qcop(TAB)QPE/InputHelper key(QString) "click A+CTRL+SHIFT 0 1"
実際に表示させるメニューランチャー[Menu50]の項目
[Menu50]
01_NextPage = @qcop(TAB)QPE/InputHelper key(QString) "click Right"
02_PrevPage = @qcop(TAB)QPE/InputHelper key(QString) "click Left"
03_Cancel = @qcop(TAB)QPE/InputHelper key(QString) "click Escape"
04_Home = @qcop(TAB)QPE/InputHelper key(QString) "click F12"
05_Task = @qcop(TAB)QPE/InputHelper key(QString) "click F12+SHIFT 0 1"
06_Menu = @qcop(TAB)QPE/InputHelper key(QString) "click F11"
ここでは必要最小限と思われる項目を設定してみました。
実際に操作してみます。
といった操作手順になります。
もっと実用度を上げるにはタブ切替の操作などもメニューに追加する必要があると思います。とりあえず試した感じでは思っていたよりも操作性は良いと感じました。ただしSL-C3000は図体がでかいので手の大きさによっては物理的に操作しにくいというのはありますね(^^; SL-C860以前の機種だともっと操作し易いんだろうなぁ。

最後に大きな欠点として、[Cansel]をメニュランチャー起動に割り当てているのでインプットスタイル使用時も当然メニューランチャーが表示します。この辺はconfファイルを2つ用意して適当なタイミングで切り替えるしかないですね。

$ khctl config conffile(.conf無し)
インプットスタイルとビュースタイルの切り替わりを検出できる方法があれば、そのタイミングで自動で切替できそうな気がします。
追記
スタイル切り替えの検出 - KeyHelperで解決策を記述しました。

参考サイト
LinuZau ToolBox


ブラウザ間のブックマークの移行と同期

テキストブラウザw3mを導入しましたけど、本格使用に際して問題となるのがブックマークなんですよね。いままで育ててきたOperaのブックマークをそのまま移行できないかと考えてみたところ、w3mのブックマークファイルは普通のhtmlファイルなのでNetscapeとかで使用しているブックマークがそのまま使用できそうです。そう思って見つけたのがWindows PC上で動作する以下のソフトです。

ブックマーク同期・変換ツールBookSync - Tatsu's room on the Web

このソフトは本来Windows PC上のNetscape 4/6,7・Netscape 8・Mozilla/Mozilla Firefox・Opera 6-8のブックマークファイルとIEのお気に入りを相互に変換・同期させるものですが、ザウルスの各ブラウザ間のブックマークデータでも変換可能です。ちょっと実験してみましたがIEのお気に入りデータの変わりにザウルスのNetFrontのBookmark_Files以下のデータがそのまま使用可能なので、NetFrontとOperaのブックマークファイルの同期や一方からもう一方へのブックマークデータの作成なんてこともできちゃいます。

今回はOperaのブックマーク→w3m(Netscape)とNetFrontのブックマークデータの作成です。NetFrontの方はオマケでできちゃいました。手順は以下のとおり、詳細はヘルプを参照してください。ザウルス上でのファイルコピーはTree!Explorer QTが便利だと思います。

これで、c:\work\bookmark.htmlというファイルが作成されるので、ザウルスのw3mのブックマークファイル(/home/zaurus/.w3m-m17n/bookmark.html)と置き換えればOKです。なお、このファイルは文字コードがShift-JISなのでw3m上で新規にブックマークを追加させる可能性がある場合はZEditorなど使用してeuc-JPに変換しておかないと追加した項目が文字化けします。追加項目はブックマークの末尾に追加されました。

ちなみに上記の操作でC:\work\Bookmark_Files以下にIE(NetFront)用のブックマークデータが作成されるのでザウルスの/home/zaurus/Documents/Web_Files/Bookmark_Files以下にコピーすればそのまま使用可能です。
また、NetFrontのデータからOperaやw3m(Netscape)のブックマークを作成したい場合には、opera6.adrやbookmark.htmlが存在しない状態でC:\work\Bookmark_Files以下にNetFrontのブックマークデータをコピーしてきて、[シンクロナイズ]ボタンを押すと作成できます。もちろん各ブラウザのデータが存在する状態で[シンクロナイズ]ボタンを押すと各データの同期になります。


cron_inet.rbで自動実行時刻の詳細設定

指定時刻に特定の操作をさせたい手段として、QTアラムーチョやautomailなどのアプリケーションがありますが、基本的に設定できる内容は指定時刻に実行あるいは定期間隔で実行というものでした、特定の時間帯あるいは曜日に実行したいなど、もっと複雑な時刻設定が可能なものがないか探したところcron_inetというRubyスクリプトを発見したので実験してみました。

NABE Hiki - SL-C700.cron_inet.rb

インストールパッケージは下記からcroninet_1.6d.0.81-1_arm.ipkをダウンロードします。

NABE Hiki - SL-C700.CronInet

Rubyスクリプトなので別途Rubyをインストールする必要があります。
インストールするとCronInetというアイコンが作られますが、今回はこれは使用しません。したがってインストールパッケージからcron_inet.rbとcrontab.rbだけ取り出して持ってきても良いかもしれません。ちなみにアイコンをクリックしてみたのですが、何故か起動しませんでした(Ruby/Qteはインストール、Rubyのパーミッション修正済み)

実行させるスクリプトの登録は/home/root/.cron_inetrcに記述します。

 $cron_online = <<CronOnline
 * * * * * user {path}/command       ---(*)
 CronOnline

 $cron_offline = <<CronOffline
 * * * * * user {path}/command       ---(*)
 CronOffline

 $cron_suspend = <<CronSuspend
 * * * * * user {path}/command       ---(*)
 CronSuspend
“$cron_online”“$cron_offline”“$cron_suspend”はそれぞれネット接続時、電源ON(ネット未接続)、電源OFF(サスペンド)時という条件で(*)部分に実際に実行させたい時刻、コマンドを記述することになります。
/QtPalmtop/bin/automailというスクリプトを実行させたい場合は
 */20 * * * * zaurus /QtPalmtop/bin/automail
  毎時20分毎に実行
 5 4 * * sun zaurus /QtPalmtop/bin/automail
  日曜の4時5分に実行
 5,35 9-18 18 5 * zaurus /QtPalmtop/bin/automail
  5月18日の9-18時に毎時5分と35分に実行
となります、詳しい設定方法は末尾のManpage of CRONTABを参照です。
inet_cron.rbの実行と停止は
$ su
# cron_inet.rb 2>/dev/null &  ------- 実行
# killall cron_inet.rb        ------- 停止
となります。

cron_inet.rbはネット接続して何かをさせることを前提にしているので、$cron_offlineや$cron_suspendに登録した内容は実行の前後で自動にネット接続と切断が行われます。自分の場合、データのバックアップ等ネットに関係ないことも行わせたいので自動ネット接続/切断を行わないようにしてみました。変更箇所はcron_inet.rbの620行目付近のINetConnectクラスの定義部分で

  class INetConnect
(中略)
    def card_exist?
      if (/function: [26] / =~ `#{$card_ident}`) then
	true
      else
	false
      end
    end

    def alive?
      if (/^0\.0\.0\.0\s+([^\s]+)\s/ =~ `/sbin/route -n| /bin/grep "^0.0.0.0"`) then
        if (@host_to_check == nil) then
          ip = $1
        else
          ip = @host_to_check
        end

        ping_str = `ping -c 3 #{ip}`
        if (/time=/ =~ ping_str) then
          return true
        end
      end
      false
    end
  class INetConnect
(中略)
    def card_exist?
       true
    end

    def alive?
      true
    end
に書き換えました。ちょっと試したところ上手く動いているみたいなので良いと思います(多分) なおこの修正でスクリプトがネット接続しているか確認にいくと常に接続していると認識するため、電源ON時の登録は“$cron_online”に記述することになります。また、当然ですがネット接続/切断させたい場合は登録させる各スクリプト側でその操作を記述する必要が生じます。
(追加)975行目の以下をコメントアウトしないと、ネット接続しないスクリプトを電源OFF時に実行させると、すぐにサスペンドしてしまう。
    @qcop.call($suspend)

参考サイト:
Manpage of CRONTAB
ruby入手先 (ruby_1.8.0-1_arm.ipk)


QCopメッセージ情報へのリンク


サスペンド
qcop QPE/Application/suspend 'raise()'

InputHelper Appletのローレベルキーイベント

InputHelperのローレベルキーイベントについて実験してみました。

keyhelper.confにて

[Launch2]
X = @text(TAB)abcd
Y = @text(TAB)efgh
Z = @qcop(TAB)QPE/InputHelper key(QString) "click x" "click y"
と定義した場合、エディタなどを開いて各キーを押すと が行われます。ちなみに[Launch2]セクションはkeyhelper.xmlにて
<extensions>

	<define key="All" kind="launch2"/>

</extensions>
と定義している、ランチャー起動キーを使用しない1キー起動の定義を記述するセクションです。
ここで、[Z]キーの定義を
Z = @qcop(TAB)QPE/InputHelper key(QString) "click x 0 1" "click y 0 1"
と変更してみます。
この状態で[Z]キーを押してみると、先ほどの“xy”ではなく、“abcdefgh”と書き込まれます。つまり[Z]キーが押されたことで[X]キーと[Y]キーを押されるキーイベントが発生して、更に[X]キーと[Y]キーに定義された機能(この場合は“abcd”と“efgh”の書き込み)が起動しているわけです。ここでポイントは“Z=”の行で記述されている“x”と“y"が小文字ということです。

次にkeyhepker.confにて

[Launch]
I = Applications/netfront3
定義しているとします。自分の場合、ランチャー起動キー(User1)を[Address](F10)キーにしているので、[Address]+[I]でNetfrontが起動することになります。このキーを押して起動する手順を書くと
1.[Address](F10)キーを押す
2.[I]キーを押して離す
3.[Address](F10)キーを離す
という手順になります、これをローレベルイベントを用いて[Z]キーに定義してみます。
[Launch2]
Z = @qcop(TAB)QPE/InputHelper key(QString) "press F10 0 1" "click i 0 1" "release F10 0 1"
この状態で[Z]キーを押してみると、[Address]+[I]キーを押したことと等価になり、Netfrontが起動します。

カレンダーの祝日設定

カレンダーを眺めていたら来年以降の春分の日と秋分の日が祝日になっていないのを発見、たしかにメニューの「オプション」で個別の休日設定はできるけれど、それで設定しろというんじゃないだろう思いつつ調べてみました。(アプリケーションマニュアルに2005年までしか設定していない旨の記述がありました)

で、祝日の設定ファイルは/home/QtPalmtop/etc/holiday.datであることが判りました、内容は以下

# あくまでも日本の祝日法にあったものでしかありません
# Sは施行された最初の年、Bは Happy Monday に変わった年
# 春分の日、秋分の日は Lの年まで表示
L=2005
X "振替休日"
Y "国民の休日"
S=1949 M=1 D=1 "元日"
S=1949 B=2000 M=1 D=15 W=2 I=1 "成人の日"
S=1966 M=2 D=11 "建国記念の日"
S=1949 M=3 D=21 F=spring_equinox "春分の日"
(以下略)
3行目の注釈をみると“L”に設定する値で春分の日と秋分の日を表示させるか否かを決定しているみたいです。実際“L=2010”としたら2010年までの春分の日と秋分の日を表示するようになっていました。なぜこんなことをしているのか推測すると春分の日と秋分の日は前の年(多分です)にならないと確定しないのでSL-C3000が発売された時点で2006年以降の設定ができなかったためだと思います。

春分の日と秋分の日は固定した日付ではないのでholiday.datには基準日(春分の日では3月21日)を仮に記述しておいて、その日と異なる年については同じディレクトリにあるspring_equinox.dat(春分の日)とautumn_equinox.dat(秋分の日)に記載されています。参照するファイルはholiday.dat内で“F=”で指定しています。ですから次の年のカレンダーが決定されたら、このファイルのデータを確認する必要がでてきます。
試しに

S=1949 M=5 D=12 F=test "テスト"
という行を追加して、test.datというファイルで適当に日付データを与えたところ、そのとおりの祝日設定ができました。

余談ですけれども、「X "振替休日"」「Y "国民の休日"」の行頭に“#”をつけてコメントアウトしてみたところ、それぞれ振り替え休日と5月4日が休みではなくなりました。
なおカレンダーが高速起動オンになっていると設定変更が反映されないので一旦オフにする必要があります。


クロックダウンしてみる

バッテリの持ちを良く出来ないかと考えて動作クロックを低く設定させてみました。とは言っても実務使用時に今よりも遅くなってしまってはどうしようもないので蓋を閉じて音楽をきいている場合限定です。実際のところ音楽を聴くだけなら416MHzなんて必要ないのですよね。

スペシャルカーネルはCCCRとVCOREで動作周波数とコア電圧を変更することができるので、ぴろさんのところで公開されているqclockchange-for-c3000_0.1_arm.ipkをインストールして変更してみます。今回は音楽再生に支障なく、かつ、区切りの良いということで半分の周波数である208MHzで実験してみました。clockchange-for-c3000でL値を8に設定します。この値ですと画面にノイズが出るのでLCD値を1にしてLCD周波数を52MHzから104MHzに変更しました。CCCRに設定する値は0x0A000208となります、なおコア電圧は標準(0x09=1.3V)のままとしました。

この設定と標準の設定で画面OFFさせた状態で音楽を再生させてみます、再生中にバッテリ残量をログに記録させるため以下のスクリプトも同時に起動させます。

#!/bin/sh

while [ -e /proc/apm ]
do
   cat /proc/apm >> /home/zaurus/Documents/battlog.txt
   date >> /home/zaurus/Documents/battlog.txt

   sleep 60
done
今回は測定時間短縮のためにバッテリを使い切る時間ではなく、残量が100%から85%になる時間を測定してみました。
SL-C3000 SpecialKernel(v17i)

ノーマル(412MHz,CCCR=0x02000210,VCORE=0x09)
BATT 100% >> 85%  :  104min

クロックダウン(208MHz,CCCR=0x0A000208,VCORE=0x09)
BATT 100% >> 85%  :  145min
この結果から単純計算を行うとクロックダウンによってバッテリの持ちが約1.4倍になっています。各部の周波数やコア電圧をもうすこし細かく調節すればもっと良い結果がでるかもしれませんね。
この設定値を、ぴろさんのところで公開されているBatteryPlusに登録すれば簡単にメニューから変更できるようになります。

qclockchange-for-c3000_0.1_arm.ipk - ぴろのページ(カーネルパッチforC3000)
batteryplus_1.1.6_arm.ipk - ぴろのページ(BatteryPlus)


スクリーンセーバーの設定

mplayerの関連でスクリーンセーバーの設定がどこに保存されるか調べてみたところ以下の場所に保存される模様
/home/zaurus/Settings/qpe.conf
[Screensaver]
Interval_AC_ScreenSaver = xxxx ←ここに秒数を記述
ここに秒数を記述して再起動させると、その設定値が有効になるようです。ホーム画面「設定」タブの「ライト/省電力」設定では最大30分までしか設定できませんが、この部分を直接修正するともっと長い時間にできます。とりあえずパワーオフの時間より大きな値にしておけば良さそう。なお、「ライト/省電力」設定で値を変更するとその値になってしいますので注意。

電源ONでアプリ起動

ネット接続での自動時計合わせの設定をしていて、タイトルのようなことができるのを知り実験してみました。とりあえずカレンダーが高速起動ONしていると「今日」の予定表示をしないので、電源ON(レジューム)時に自動で起動させて「今日」の予定を「日」表示にさせる実験をしてみました。

yaktyさんのLinuZau ToolBoxで公開されているツールから、NetHelperApplet、InputHelperApplet、qcop2を使用します。
まずスクリプト/home/QtPalmtop/bin/datebook_tを作成

#!/bin/sh
echo QPE/System 'execute(QString,QString)' datebook > /var/spool/inputhelper/qcop
/home/QtPalmtop/bin/qcop2 QPE/InputHelper 'mouse(QString)' "click 496 48" "click 528 48"
このファイルのオーナーとパーミッションを変更
$ su
# cd /home/QtPalmtop/bin
# chown root:qpe datebook_t
# chmod 755 datebook_t
# exit
$ exit
これをNetHelperに登録、具体的には/home/zaurus/Settings/nethelper.confに以下を追加
[Run_Off]
resume00 = /home/QtPalmtop/bin/datebook_t
NetHelperは本来ネットの接続/切断時に指定したスクリプトを実行させるためのものですが、最新版ではサスペンド/レジューム時にもスクリプト実行が可能になりました。上の記述はネットワーク接続していない時にレジュームした際にスクリプトを実行する記述です。

で、実行、電源OFF→ONさせてみます。うん、ちゃんと動きます。実際のところ上の例はCalenderキーの存在や、電源ONから動作開始までの若干の遅延があるので実用性はちょっと微妙かなとも思いますが、他のアプリで操作がもう少し複雑な場合であれば実用になる、、、かもしれません(汗


ファイルの関連付け

ファイルの関連付けは、mime-typeというもので行われているようだ。ファイルの拡張子とmime-typeとの関連は/home/QtPalmtop/etc/mime.typesというファイルで定義。
mime-typeと起動するアプリケーションとの関連付けは/home/QtPalmtop/apps/xxxx/yyyy.desktop内のMimeType行とMymeTypeIcons行で定義されている。MimeType行はそのアプリケーションで使用できるmime-type、MymeTypeIcons行は「ホーム画面」のファイルタブで左側に表示されるアイコンを指定している。

ただし2つのアプリケーションで同じmime-typeを定義している場合の動作は不明、例として拡張子htmlが定義されているmime-typeであるtext/htmlはoperaとnetfront3で記述されているがoperaに関連付けされている。
実験としてoperaのMimeType行とMymeTypeIcons行をコメントアウトして再起動したところnetfrontに関連付けされた。


IMkit-Anthyの導入

IMkit-Anthyの方が使い易いので導入
こちらから3個のファイルを入手してインストール。ちなみに辞書への語句登録はLinux関連メモを参照のこと。

(追記 2006-03-19)Anthy用の新しい辞書(7500-2)がこちらで公開されています。

候補が飛んでしまうのはどうやらキーリピートが悪さをしている模様、ということでEnterとSpaceキーのリピートをKeyHelperで禁止。

<repeater>
	<repeat delay="500" period="60"/>
	<define key="Space" enable="False"/>
	<define key="Return" enable="False"/>
</repeater>

全/半キーで日本語入力のON/OFFを指定、Shift+全/半で入力モード選択のメニューを表示させるように指定。日本語文字コードはUTF8

<extensions>
	<define key="F21" kind="menu01">
		<modifier Shift="On"/>
	</define>
</extensions>


[Launch2]
F21 = @qcop(TAB)QPE/InputHelper mouse(QString) "click 64 464"

[Menu01]
01_カナ = @qcop(TAB)QPE/IME 'setMode(QString)' KATAKANA
02_ひら = @qcop(TAB)QPE/IME 'setMode(QString)' HIRAGANA
03_全英 = @qcop(TAB)QPE/IME 'setMode(QString)' WALPHA
04_半英 = @qcop(TAB)QPE/IME 'setMode(QString)' ALPHA
05_半カナ= @qcop(TAB)QPE/IME 'setMode(QString)' HKATAKANA
06_▲ = @qcop(TAB)QPE/InputHelper mouse(QString) "click 112 464"
再起動したときに自動的にIMkit-Anthyが選択されるように、/home/QtPalmtop/plugins/inputmethods/inputmethodslistというファイルを作成して、同じディレクトリにあるIMkit-Anthyのライブラリ名を書く、行末の改行が重要
libimkit-anthy.so(改行)
/home/zaurus/.anthyというディレクトリが作業エリアらしい、ここはFlashなのでSDカードへ移動してリンクを貼る。HDD3領域の方が良いかな?
追記(2005/11/19)
標準のIMEと同じキーアサイン(Fn+6〜0)で入力文字を切替したい場合
keyhelper.xml
<extensions>〜</extensions>に1キーランチャーの起動を追加
<extensions>

	<define key="All" kind="launch2"/>

</extensions>
keyhelper.conf
[Fn]+[8]の半角カナは全角カナにしています。
[Launch2]
0x200a = @qcop(TAB)QPE/IME 'setMode(QString)' HIRAGANA
0x200b = @qcop(TAB)QPE/IME 'setMode(QString)' KATAKANA
0x200c = @qcop(TAB)QPE/IME 'setMode(QString)' KATAKANA
0x2007 = @qcop(TAB)QPE/IME 'setMode(QString)' WALPHA
0x2008 = @qcop(TAB)QPE/IME 'setMode(QString)' ALPHA

最終更新日 2006-08-25