日別アーカイブ: 2007年9月25日

em1key Bluetooth keyboard RBK-2000BTII の日本語カスタマイズ例

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