Archives

September 2007 の記事

Bluetooth Keyboard RBK-2000BT2 の日本語キーボード化カスタマイズを
下記エントリで紹介しました。
em1key Bluetooth keyboard RBK-2000BTII の日本語カスタマイズ例
さらにカスタマイズを行い、任意に ON/OFF できる設定ファイルを
作ってみました。

scriptcommand_RBK2K_JP.txt

上記ファイルをダウンロードしたのち、ファイル名を scriptcommand.txt
にリネームして em1key でご利用ください。

ファイルの 290行目 以降にある CSW_~ のシンボルが、各種設定の
有効・無効を切り替えるスイッチになっています。TRUE で有効、
FALSE で無効です。

このファイルは RBK-2000BT2 向けの設定のみ抽出しているので、
それ以外の余計な機能は含まれていません。機種を問わず利用しやすく
なっていると思います。またカスタマイズの参考用にどうぞ。


前回の記事からさらに、下記のカスタマイズが追加されています。
もちろん個別に ON/OFF できます。

● SHIFT+[0] で '_'

SHIFT+[0] キーで '_' を打てるようにします。


● [/?] を本来の位置に配置する

[/?] キーが遠くに離れているので、つい '/' を打とうとしてカーソルが
上に移動してしまいます。そこで次のような置き換えも行ってみました。

キーボード右下のキー群
[.>] [↑] [Sft] [/?]
[←] [↓] [→] [Del]

  ↓

[.>] [/?] [Sft] [\|]
[←] [↓] [↑] [→ ]

これで、'/' や '?' を本来のキー位置で打てるようになります。
その代わりカーソルキーの配列が横一列になってしまいます。
でも実はこれ、vi カーソルと全く同じ並びなので
個人的にはかえって都合が良かったりします。

無くなった [Delete] キーは Ctrl+[BS] で入ります。


作者が実際に使っている設定は、em1key デフォルトの
scriptcommand.txt に RBK2K 用のキー入れ替えを追加したものです。
内蔵キーボード用の設定と外部キーボード用のカスタマイズを共存
させています。こちらもアップロードしておきました。
追加部分はファイルの最後のみで、完全に独立しています。
個別に ON/OFF できるようなスイッチは特に設けていません。
scriptcommand_default_RBK2K_JP.txt


日本語キーボード化の次は 親指シフト 設定も試してみよう、
と思っていたら、すでに遠藤さんが設定を作成しており
こちらのエントリで公開されていました! たいへんありがたいです。

遠藤諭の東京カレー日記 Advanced/W-ZERO3[es]で親指シフト(追加)


RBK-2000BT2 の日本語キーボード化カスタマイズ例です。
リュウド RBK-2000BTII

RBK-2000BT2 は英語キーボードですが WindowsMobile ではデフォルトで
日本語キーボードとして認識されます。そのためもともとキー刻印を
無視して日本語配列で使いたい方にとってはうってつけなのですが、
キーの数が少ないので入力できない文字が存在します。

em1key でこれらのキー割り当てをカスタマイズしてみました。
キー刻印を完全に無視していますので、キーを見ないで打つ方
向けです。

(1) 入力できない [\|] キーを右下の [del] キーに割り当てる

(2) (1) の設定で Delete キーがなくなってしまうので Ctrl+[bs]
  に [Delete] を割り当てる

(3) 入力できない文字 [_] を Ctrl+[:*] に割り当てる。(暫定仕様)

(4) Ctrl と Capslock を入れ替え
  (em1key デフォルト設定が元から持っている機能、お好みで)

(5) Esc キーが小さくて押しづらいので、Esc と [全/半] を入れ替え
  (em1key デフォルト設定が元から持っている機能、お好みで)

(6) (5) の設定で[全/半] が遠くなってしまうので、スペースキー横の
  [alt] でも IME の On/Off 可能にする。

この設定でもまだ入力できない文字 Ctrl+[_] があります。
[_] キーの割り当てに関しては再考の余地ありです。


em1key デフォルトの設定ファイルの一番最後に後述の設定を
追加しています。また、func TABLE_FUNC 0 の中の

SETSYSFLAG SYSFLAG_CTRLSWAP
SETSYSFLAG SYSFLAG_ESCSWAP

の2行を有効にしています。(この2行はお好みで)

追加する設定
# [半] ([全/半]キー処理用)
func TABLE_ALLMODE	VK_DBE_SBCSCHAR
		TESTSYSFLAG	SYSFLAG_SCANVALID
		IF_TRUE	20
		TESTSYSFLAG	SYSFLAG_ESCSWAP
		IF_TRUE	30
	LABEL	20
		# ESC swap しない
		EXIT		FALSE
	LABEL	30
		#
		# ESC キーとして実行
		IF_UP	10
		# down
		RAWDOWN		VK_ESCAPE
		EXIT		TRUE
	LABEL	10
		# up
		RAWUP		VK_ESCAPE
		EXIT		TRUE
endfunc

# [全] ([全/半]キー処理用)
func TABLE_ALLMODE	VK_DBE_DBCSCHAR
		TESTSYSFLAG	SYSFLAG_SCANVALID
		IF_TRUE	20
		TESTSYSFLAG	SYSFLAG_ESCSWAP
		IF_TRUE	30
	LABEL	20
		# ESC swap しない
		EXIT		FALSE
	LABEL	30
		#
		# ESC キーとして実行
		IF_UP	10
		# down
		RAWDOWN		VK_ESCAPE
		EXIT		TRUE
	LABEL	10
		# up
		RAWUP		VK_ESCAPE
		EXIT		TRUE
endfunc

# [DEL] ([\|]キーに変更)
func TABLE_ALLMODE	VK_DELETE
		TESTSYSFLAG	SYSFLAG_SCANVALID
		IF_TRUE	20
		# [\|]
		IF_UP	40
		RAWDOWN	VK_BACKSLASH
		EXIT		TRUE
	LABEL	40
		RAWUP	VK_BACKSLASH
		EXIT		TRUE
	LABEL	20
		EXIT	FALSE
endfunc

# [BS] (Ctrl+BS で Delete)
func TABLE_ALLMODE	VK_BACK
		TESTSYSFLAG	SYSFLAG_SCANVALID
		IF_TRUE		20
		IF_CTRL		10
	LABEL	20
		EXIT	FALSE
		# [DELETE]
	LABEL	10
		IF_UP	40
		RAWUP	VK_CONTROL
		RAWDOWN	VK_DELETE
		EXIT		TRUE
	LABEL	40
		RAWUP	VK_CONTROL
		RAWUP	VK_DELETE
		EXIT		TRUE
endfunc

# [:*] (Ctrl+[:*]で _)
func TABLE_ALLMODE	VK_APOSTROPHE
		TESTSYSFLAG	SYSFLAG_SCANVALID
		IF_TRUE		20
		IF_CTRL		10
	LABEL	20
		EXIT	FALSE
		# [_]
	LABEL	10
		IF_UP	40
		RAWUP	VK_CONTROL
		RAWDOWN	VK_SHIFT
		RAWDOWN	VK_OEM_102
		EXIT		TRUE
	LABEL	40
		RAWUP	VK_CONTROL
		RAWUP	VK_OEM_102
		RAWUP	VK_SHIFT
		EXIT		TRUE
endfunc

# [ALT] (IME On/Off)
func TABLE_ALLMODE	VK_MENU
		IF_UP	40
		RAWUP	VK_LMENU
		WINCMD	WINCMD_IMESW	# IME の On/Off
		EXIT		TRUE
	LABEL	40
		EXIT		TRUE
endfunc



Ascii 遠藤さんの 「遠藤諭の東京カレー日記」
再び em1key 関連のお話が載りました。

Advanced W-ZERO3 [es] 親指(続編)
キーボードの限界小ささ(1)

今度はそれぞれキーボードに合わせてカスタマイズした、
実際の設定ファイルが公開されています。
em1key のカスタマイズ情報はそれほど多くないので、
実際に使っている方の実例として参考になります。

em1key v1.26 で Advanced W-ZERO3[es] に(一応)対応しましたが
内蔵キーボードとの切り分け共存が 100% できているわけではなく、
Fn を押した記号と親指シフトの定義が干渉することがあるようです。

とりあえず oyayubiwm の方に機能の有効・無効をいつでも
切り替えられる機能がついているので、こちらでの対処を
お願いします。具体的な操作を質問いただいたので、
下記ページにも追記しておきました。
oyayubiwm

em1key v1.26 では他にも変更点がありました。
ドキュメントへの追記と script マニュアルの更新をすっかり
忘れていまして、あわてて更新をしておきました。

script 命令の ifpc, ifce, ifsw, ifnsw ~ endif が
ネスト対応になっています。(いまのところ 32段まで)

ifpc
ifce
ifsw <symbol>
ifnsw <symbol>
endif
define <symbol> <int>

これらの命令は C 言語でのプリプロセッサに相当します。
script ファイルを em1key が読み込んだ時点で処理されるので、
if ~ 等で除外されたブロックはバイトコード化されず、
メモリにも常駐せず、負担にならないようになっています。
動的な分岐は IF_~ 系の命令です。

em1key スクリプトマニュアル v1.26.0
em1key カスタマイズ情報