(メモ)W-ZERO3[es]で親指シフトを導入する手順、折りたたみUSBキーボードを力技で親指シフトキーボードに変える小ネタ。
(未来:em1key/em1keypc用の「飛鳥カナ配列スクリプト(oyayubiwm改造版)」を公開。)
用意するもの。
【パソコンを経由する場合】
【W-ZERO3[es]単体で行う場合】
以下の手順は、全て【パソコンを経由する場合】を基準に書いています。
#現在、手持ちのW-ZERO3[es]には「ctrlswapmini/imekeyset5」以外のソフトは導入していないので……。
パソコン側で、ダウンロード。
- http://hp.vector.co.jp/authors/VA004474/wince/soft4.html#oyayubi
- 「oyayubiwm○○○.zip」をデスクトップ上にダウンロード。
- http://hp.vector.co.jp/authors/VA004474/wince/soft3.html#em1key
- 「em1key○○○.zip」をデスクトップ上にダウンロード。
親指シフトの定義を導入する。
- 「田スタート」→「プログラム」→「ファイル エクスプローラ」とたどり、ファイルエクスプローラを起動する。
- 画面上から2行目の左端をペンでタップし、【miniSDカード】を選ぶ。
- 【scriptcommand】を2秒ほどタップし続け、出たメニューから「コピー」を選ぶ。
- 画面上から2行目の左端をペンでタップし、【マイ デバイス】を選ぶ。
- 画面の中ほどにあるフォルダ【Program Files】を選ぶ。
- 画面の中ほどにあるフォルダ【em1key】を選ぶ。
- 画面中ほどの「何もない真っ白な部分」を2秒ほどタップし続け、出たメニューから「貼り付け」を選ぶ。
- scriptcommandというファイルを置き換えるかどうかという表示が出るので、「はい」をタップする。
em1keyを立ち上げる。
- 「田スタート」→「プログラム」→「ファイル エクスプローラ」とたどり、ファイルエクスプローラを起動する。
- 画面上から2行目の左端をペンでタップし、【マイ デバイス】を選ぶ。
- 画面の中ほどにあるフォルダ【Program Files】を選ぶ。
- 画面の中ほどにあるフォルダ【em1key】を選ぶ。
- ファイル【em1key】をタップする。
- em1keyが立ち上がり、かつ「親指シフト」の文字が出ていれば、インストール成功。
- 「自動起動に設定」すると、リセット後もem1keyが必ず立ち上がるようになる。
- デフォルト設定では「無変換・変換」キーが親指シフトキーなので、キーボードを使うときには【普通のJISキーボードで快速親指シフト】か、あるいは【USB親指シフトキーボードで普通の親指シフト】のどちらかになるはず。
- 親指シフト性を重要視するなら、FKB8579-661EV(親指シフトキーボード)か。さすがにフルキーボードを持ち歩くのは難しいだろうし。
- コンパクトさを重視するならHHKB/Lite2/かな無しや、類似の薄型キーボードあたりで。BUFFALO BKBU-MCJ109A/BKのテンキーレス版があれば良いのだけれど。
「FILCO パピヨン」キーボードを使う場合の注意点。
- 「繭姫/姫踊子草」を使っていてはじめて気づいたのだけれど……折りたたみキーボードのパピヨンは、Altキー押下時に「0x12/0xa4/0xa5のいずれでもないキーコード」で吐き出している……のかも。いや、単に「分解時に壊れた」だけかもしれないですけど^^;。
- em1key+oyayubiwm+親指化改造済みパピヨンで、左シフト(ShopUさんによる改造で、左スペースがAltと等価になっている)が効かないという話が。故障ではなくてem1keyに通らないということ。
- 以前に「Delキーでもできるよ〜」という話を投稿したのですが、em1key+oyayubiwm+無改造パピヨンでも同じく「Delキーは親指シフトキーとして使える」ことを確認しました。
- つまり、右スペースキーをDelキーとして使うための結線変更をすればよい、と。
- 部品の購入および分解方法についてはFILCO パピヨン<親指化セット>(親指化版ではない)を頼りにすればよいので、その点での不安はなし。
- 「左親指=VK_SPACE」「右親指=VK_DELETE」にするには、scriptcommand.txtの336〜337行目あたりにある記述を、下記のように変更する。
- define L_OYASHIFT_KEY VK_SPACE
- define R_OYASHIFT_KEY VK_DELETE
- もっともこれでは、右シフトキーを誤打すると「カーソル右側の文字が一つ消えてしまう」という、致命的な問題を抱えることになりますけど……^^;。
- 以前に「Delキーでもできるよ〜」という話を投稿したのですが、em1key+oyayubiwm+無改造パピヨンでも同じく「Delキーは親指シフトキーとして使える」ことを確認しました。
em1keyらしい解決法があった。
同じくNICOLAフォーラムにて、作者さんが解決策を提示していらした。
このあたりは、まさに「配列ではなく挙動で定義する、em1keyらしい解決方法」だなぁ……と。
ログが流れると洒落にならんので、以下に要点を転記しておくことに。
以下の2点は、どちらも http://nicola.sunicom.co.jp/cgi/wf_soft/wf_s_forum.plx?no=629&reno=626&oya=625&mode=msgview&page=0 からの転記です。
【Altキーコードが親指シフト用に使えない点】
- 文字キー先行なら正しく働くが、親指(Alt)キー先行にすると「WM_KEYDOWNで発行されるはずのキーイベントがWM_SYSKEYDOWNで発行されてしまう」……これが原因。WindowsMobile5固有の原因らしい。
- oyayubiwm(1.31)のscriptcommand.txt/1873行目近傍を、次のように編集する、と。
- # 左親指シフト # オリジナルのまま。
- func _SELTABLE L_OYASHIFT_KEY # オリジナルのまま。
- IF_UP 10 # Altを左親指にするための設定。
- RAWUP VK_LMENU # Altを左親指にするための設定。
- LABEL 10 # Altを左親指にするための設定。
- SETGSTATE _LSHIFT # オリジナルのまま。
- CALL _subOYAShift # オリジナルのまま。
- endfunc # オリジナルのまま。
【Delキーコードを発行したくない場合の対応法】
- 単独操作時のDelキーコードを無効にできる。oyayubiwm(1.31)のうち、func TABLE_FUNC _subOYAExecShiftの後のほうにある定義を弄る。
- # 単独でシフトが押された # オリジナルのまま。
- LOADVAR _SB_ISLEFT # Delキーコードを無視する。
- IF_FALSE 41 # Delキーコードを無視する。
- SENDVAR GVAR_KEYCODE # オリジナルのまま。
- LABEL 41 # Delキーコードを無視する。
- RESETGSTATE _SHBUFFER # オリジナルのまま。
- RETURN 0 # オリジナルのまま。
- endfunc # オリジナルのまま。