> breakttc ***.ttc
zaufont pcfont.ttf n 50 160 u zaufont 変換後のフォント名 pcfont.ttf 変換するフォント名 FT FT:TTフォント、BDF:BDFフォント n y/n:italicにする/しない 50 50:通常、75:ボールド、他 160 16ポイント su s:アンチエイリアス、u/a:u=Unicode Range,a=ASCII Range sを付けると上手くいかないフォントも存在する
$ export QTDIR=/mnt/card $ ./makeqpf -A インプットスタイル用フォント作成 $ ./makeqpf -display Transformed:Rot270 -A ビュースタイル用フォント作成
ArticleFontName=monafont:16:1 ArticleFontName=monafont:8:1 ArticleFontName=lcfont
というようにすればOK、行頭に“#”を追加するとコメント行になるみたいなので試しに行う場合に利用できます。ArticleFontName=monafont:8:1 ArticleFontName=monafont
Navi2chDir=/mnt/card/Documents/navi2ch # SDカードのDocuments以下に置く場合 MaxArticle=5 # タブ数5
関連サイト:
q2ch - 0.3.27y16 & help
q2ch - 本家
としてみたところ、見事インプット/ビュースタイルの切り替えでZEditorが起動しました。ただし画面が回転しませんが……(^^ゞ[Launch2] 0x2009 = Applications/zeditor
の設定で上手くいくかと思ったのですけど、そう甘くは無いようですね。画面の回転の方法についていろいろ試したところ、「縦横表示切替」のdesktopファイル内の実行コマンドをQCopで実行させれば良いことが判りました。R = __7x009rotate
従ってスタイルの切り替え時に、例えばZEditorを起動させたいとする場合にはZEditorの起動コマンドと、このQCopコマンドを実行させれば良いことになります。具体的な方法として2つのコマンドをkeyhelper.confの2キーランチャーセクション[Launch]に登録しておいて、1キーランチャーセクション[Launch2]において0x2009のキーコードでInputHelperのローレベルキーコマンドを用いて2つキーイベントを発生させます。qcop QPE/System 'execute(QString)' "__rotate"
ここでF10(address)は、2キーランチャー機能を使用するときの修飾キー(User1)です。[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"
スタイル切り替え時のコマンド実行が上手くいったので、ビュースタイルでペンを使わずに閲覧で欠点としてあげたポイントが改善できそうなので試してみました。
インプットスタイル用のconfファイルkeyhelper.confとビュースタイル用のkeyhelper2.confを用意し、上記のZEditorの起動部分をconfファイルロードコマンドに書き換えます。
[Launch] E = @qcop(TAB)QPE/KeyHelper "config(QString)" keyhelper2
これで画面切り替え時(0x2009発生時)に対応したconfファイルがKeyHelperにロードさせることになります。 実際に試したところ、[Cancel]キーはインプットスタイルでは本来の機能を持ち、ビュースタイルではメニュー表示が行われるようになりました。[Launch] E = @qcop(TAB)QPE/KeyHelper "config(QString)" keyhelper2 [Launch2_app] Escape = @qcop(TAB)QPE/InputHelper key(QString) "click A+CTRL+SHIFT 0 1"
これらのことから、*.desktopファイル名をアルファベット順に並べての後ろのものが有効になる模様、実験してみる。MimeType = text/* MimeTipeIcons = zeditor
1〜4からやはりアルファベット順で後ろのものが有効になるようだ。同名で大文字を小文字の違いの場合は5,7,8から1文字目に違いがある場合は小文字が有効、しかし2文字目に違いがある場合は大文字が有効になっている、この辺がよく判らない結果となった。メモ帳 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 メモ帳
関連付け関連の情報
日々の徒然 - 2005年7月6日
りなざうテクノウ - Qtopiaのデスクトップ構造(リンク先修正2006.08.25)
りなざうテクノウ - Qtopia上でのファイル関連付け(リンク先修正2006.08.25)
という記述になるが、コードによる記述もできる。この場合書式はqcop QPE/InputHelper 'key(QString)' "action key"
となる。uniode、keycode、修飾key状態は16進数で記述する。qcop QPE/InputHelper 'key(QString)' "action unicode keycode 修飾key状態"
キーコードを使用する場合、例えば縮小([Fn]+[1]:キーコード0x200f)は以下のようになる。ユニコード部の0xffffはKeyHelperconfの出力のまま。Z = qcop(TAB)QPE/InputHelper 'key(QString)' "click 0x3042"
「修飾key状態」については使い方が良くわからないので保留。Z = qcop(TAB)QPE/InputHelper 'key(QString)' "click 0xffff 0x200f"
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"
次にメニューランチャーを表示させる為の仮のキーアサインを決めます。ここでは通常使用しないキーの組合せを選択する必要があります。今回は[Shift]+[Ctrl]+[A]とし、keyhelper.conf上のセクション名は[Menu50]としました。<extensions> <define key="All" kind="launch2"/> </extensions>
複数のアプリでそれぞれ異なるメニューランチャーを表示させたい場合は、上の"A"を"B","C"……のように、"menu50"の部分を"menu51","menu52"……の様に割り当てていけば良いと思います。<extensions> <define key="A" kind="menu50"> <modifier Shift="On"/> <modifier Control="On"/> </define> </extensions>
$ khctl reload
実際に表示させるメニューランチャー[Menu50]の項目[Launch2_netfront3] Escape = @qcop(TAB)QPE/InputHelper key(QString) "click A+CTRL+SHIFT 0 1"
ここでは必要最小限と思われる項目を設定してみました。[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"
最後に大きな欠点として、[Cansel]をメニュランチャー起動に割り当てているのでインプットスタイル使用時も当然メニューランチャーが表示します。この辺はconfファイルを2つ用意して適当なタイミングで切り替えるしかないですね。
インプットスタイルとビュースタイルの切り替わりを検出できる方法があれば、そのタイミングで自動で切替できそうな気がします。$ khctl config conffile(.conf無し)
参考サイト
LinuZau ToolBox
ブックマーク同期・変換ツール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_Files以下にIE(NetFront)用のブックマークデータが作成されるのでザウルスの/home/zaurus/Documents/Web_Files/Bookmark_Files以下にコピーすればそのまま使用可能です。
また、NetFrontのデータからOperaやw3m(Netscape)のブックマークを作成したい場合には、opera6.adrやbookmark.htmlが存在しない状態でC:\work\Bookmark_Files以下にNetFrontのブックマークデータをコピーしてきて、[シンクロナイズ]ボタンを押すと作成できます。もちろん各ブラウザのデータが存在する状態で[シンクロナイズ]ボタンを押すと各データの同期になります。
NABE Hiki - SL-C700.cron_inet.rb
インストールパッケージは下記からcroninet_1.6d.0.81-1_arm.ipkをダウンロードします。
Rubyスクリプトなので別途Rubyをインストールする必要があります。
インストールするとCronInetというアイコンが作られますが、今回はこれは使用しません。したがってインストールパッケージからcron_inet.rbとcrontab.rbだけ取り出して持ってきても良いかもしれません。ちなみにアイコンをクリックしてみたのですが、何故か起動しませんでした(Ruby/Qteはインストール、Rubyのパーミッション修正済み)
実行させるスクリプトの登録は/home/root/.cron_inetrcに記述します。
“$cron_online”“$cron_offline”“$cron_suspend”はそれぞれネット接続時、電源ON(ネット未接続)、電源OFF(サスペンド)時という条件で(*)部分に実際に実行させたい時刻、コマンドを記述することになります。$cron_online = <<CronOnline * * * * * user {path}/command ---(*) CronOnline $cron_offline = <<CronOffline * * * * * user {path}/command ---(*) CronOffline $cron_suspend = <<CronSuspend * * * * * user {path}/command ---(*) CronSuspend
となります、詳しい設定方法は末尾のManpage of CRONTABを参照です。*/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分に実行
となります。$ 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
に書き換えました。ちょっと試したところ上手く動いているみたいなので良いと思います(多分) なおこの修正でスクリプトがネット接続しているか確認にいくと常に接続していると認識するため、電源ON時の登録は“$cron_online”に記述することになります。また、当然ですがネット接続/切断させたい場合は登録させる各スクリプト側でその操作を記述する必要が生じます。class INetConnect (中略) def card_exist? true end def alive? true end
@qcop.call($suspend)
参考サイト:
Manpage of CRONTAB
ruby入手先 (ruby_1.8.0-1_arm.ipk)
qcop QPE/Application/suspend 'raise()'
keyhelper.confにて
と定義した場合、エディタなどを開いて各キーを押すと[Launch2] X = @text(TAB)abcd Y = @text(TAB)efgh Z = @qcop(TAB)QPE/InputHelper key(QString) "click x" "click y"
と定義している、ランチャー起動キーを使用しない1キー起動の定義を記述するセクションです。<extensions> <define key="All" kind="launch2"/> </extensions>
と変更してみます。Z = @qcop(TAB)QPE/InputHelper key(QString) "click x 0 1" "click y 0 1"
次にkeyhepker.confにて
定義しているとします。自分の場合、ランチャー起動キー(User1)を[Address](F10)キーにしているので、[Address]+[I]でNetfrontが起動することになります。このキーを押して起動する手順を書くと[Launch] I = Applications/netfront3
この状態で[Z]キーを押してみると、[Address]+[I]キーを押したことと等価になり、Netfrontが起動します。[Launch2] Z = @qcop(TAB)QPE/InputHelper key(QString) "press F10 0 1" "click i 0 1" "release F10 0 1"
で、祝日の設定ファイルは/home/QtPalmtop/etc/holiday.datであることが判りました、内容は以下
3行目の注釈をみると“L”に設定する値で春分の日と秋分の日を表示させるか否かを決定しているみたいです。実際“L=2010”としたら2010年までの春分の日と秋分の日を表示するようになっていました。なぜこんなことをしているのか推測すると春分の日と秋分の日は前の年(多分です)にならないと確定しないのでSL-C3000が発売された時点で2006年以降の設定ができなかったためだと思います。# あくまでも日本の祝日法にあったものでしかありません # 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 "春分の日" (以下略)
春分の日と秋分の日は固定した日付ではないのでholiday.datには基準日(春分の日では3月21日)を仮に記述しておいて、その日と異なる年については同じディレクトリにあるspring_equinox.dat(春分の日)とautumn_equinox.dat(秋分の日)に記載されています。参照するファイルはholiday.dat内で“F=”で指定しています。ですから次の年のカレンダーが決定されたら、このファイルのデータを確認する必要がでてきます。
試しに
という行を追加して、test.datというファイルで適当に日付データを与えたところ、そのとおりの祝日設定ができました。S=1949 M=5 D=12 F=test "テスト"
余談ですけれども、「X "振替休日"」「Y "国民の休日"」の行頭に“#”をつけてコメントアウトしてみたところ、それぞれ振り替え休日と5月4日が休みではなくなりました。
なおカレンダーが高速起動オンになっていると設定変更が反映されないので一旦オフにする必要があります。
スペシャルカーネルは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させた状態で音楽を再生させてみます、再生中にバッテリ残量をログに記録させるため以下のスクリプトも同時に起動させます。
今回は測定時間短縮のためにバッテリを使い切る時間ではなく、残量が100%から85%になる時間を測定してみました。#!/bin/sh while [ -e /proc/apm ] do cat /proc/apm >> /home/zaurus/Documents/battlog.txt date >> /home/zaurus/Documents/battlog.txt sleep 60 done
この結果から単純計算を行うとクロックダウンによってバッテリの持ちが約1.4倍になっています。各部の周波数やコア電圧をもうすこし細かく調節すればもっと良い結果がでるかもしれませんね。SL-C3000 SpecialKernel(v17i) ノーマル(412MHz,CCCR=0x02000210,VCORE=0x09) BATT 100% >> 85% : 104min クロックダウン(208MHz,CCCR=0x0A000208,VCORE=0x09) BATT 100% >> 85% : 145min
qclockchange-for-c3000_0.1_arm.ipk - ぴろのページ(カーネルパッチforC3000)
batteryplus_1.1.6_arm.ipk - ぴろのページ(BatteryPlus)
ここに秒数を記述して再起動させると、その設定値が有効になるようです。ホーム画面「設定」タブの「ライト/省電力」設定では最大30分までしか設定できませんが、この部分を直接修正するともっと長い時間にできます。とりあえずパワーオフの時間より大きな値にしておけば良さそう。なお、「ライト/省電力」設定で値を変更するとその値になってしいますので注意。[Screensaver] Interval_AC_ScreenSaver = xxxx ←ここに秒数を記述
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"
これをNetHelperに登録、具体的には/home/zaurus/Settings/nethelper.confに以下を追加$ su # cd /home/QtPalmtop/bin # chown root:qpe datebook_t # chmod 755 datebook_t # exit $ exit
NetHelperは本来ネットの接続/切断時に指定したスクリプトを実行させるためのものですが、最新版ではサスペンド/レジューム時にもスクリプト実行が可能になりました。上の記述はネットワーク接続していない時にレジュームした際にスクリプトを実行する記述です。[Run_Off] resume00 = /home/QtPalmtop/bin/datebook_t
で、実行、電源OFF→ONさせてみます。うん、ちゃんと動きます。実際のところ上の例はCalenderキーの存在や、電源ONから動作開始までの若干の遅延があるので実用性はちょっと微妙かなとも思いますが、他のアプリで操作がもう少し複雑な場合であれば実用になる、、、かもしれません(汗
ただし2つのアプリケーションで同じmime-typeを定義している場合の動作は不明、例として拡張子htmlが定義されているmime-typeであるtext/htmlはoperaとnetfront3で記述されているがoperaに関連付けされている。
実験としてoperaのMimeType行とMymeTypeIcons行をコメントアウトして再起動したところnetfrontに関連付けされた。
候補が飛んでしまうのはどうやらキーリピートが悪さをしている模様、ということでEnterとSpaceキーのリピートをKeyHelperで禁止。
<repeater> <repeat delay="500" period="60"/> <define key="Space" enable="False"/> <define key="Return" enable="False"/> </repeater>
全/半キーで日本語入力のON/OFFを指定、Shift+全/半で入力モード選択のメニューを表示させるように指定。日本語文字コードはUTF8
再起動したときに自動的にIMkit-Anthyが選択されるように、/home/QtPalmtop/plugins/inputmethods/inputmethodslistというファイルを作成して、同じディレクトリにあるIMkit-Anthyのライブラリ名を書く、行末の改行が重要。<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"
/home/zaurus/.anthyというディレクトリが作業エリアらしい、ここはFlashなのでSDカードへ移動してリンクを貼る。HDD3領域の方が良いかな?libimkit-anthy.so(改行)
<extensions> <define key="All" kind="launch2"/> </extensions>
[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