ctrlswapminiにおける「vkmap」「vkmapl」の役目。
(参考: http://hp.vector.co.jp/authors/VA014436/prg_memo/prg_all/prg/002.html )
両者は主にWS003SH/WS004SH用の設定で、「キーボードを開く&縦画面で使う」時に用います。
横画面(キーボードは下)ではなく縦画面で使うので、キーボードは右か左に来る……と。
vkmapは「キーボードを右側に出す」時に、Qwertyキーボードの英字キーを、ほかの機能キーへと割り当てるための設定を記述します。詳細設定の「■Qwertyキーボードをテンキーにする」をチェックしていて、なおかつVKMAP_ROTATE0(キーボードが右側に出る)モードで有効になります。
vkmaplは「キーボードを左側に出す」時に、Qwertyキーボードの英字キーを、ほかの機能キーへと割り当てるための設定を記述します。詳細設定の「■Qwertyキーボードをテンキーにする」をチェックしていて、なおかつVKMAP_ROTATE180(キーボードが左側に出る)モードで有効になります。
画面はOS側の設定でも反転することもあるので、どちらでも同じ設定になるようにするためには「vmapの設定=vmaplの設定」にする必要がある(vmapのみを設定すると巧くいかないときがある)のかもしれません。
オリジナルの定義を引用しつつ……とはいえ、対応関係をはっきりさせるためにちょっと順番を弄ってみたり。
実際に定義するときには、公開されているオリジナルの定義と同じ方法で記述するほうが解りやすい&メンテナンスしやすいと思います。
順番を書き換えても、たぶん定義される内容は同じ……はずです。
まずはVK。おなじみの文字コードが出てくるのでピンと来るかも。
※注釈はほとんど私がテキトーにつけたものなので、信用しないでください^^;。
defcode VK_BACK '\x08' # BackSpace後退 vkmap 6 VK_BACK vkmapl VK_PERIOD VK_BACK defcode VK_TAB '\x09' # Tabタブスペース defcode VK_RETURN '\x0d' # Enter改行……じゃなかった、復帰。 vkmap 7 VK_RETURN vkmapl 6 VK_RETURN vkmap VK_PERIOD VK_RETURN vkmapl 7 VK_RETURN defcode VK_SHIFT '\x10' # 小指Shiftシフトキー defcode VK_CONTROL '\x11' # Ctrlコントロールキー defcode VK_KANA '\x15' # カナロック(Ctrl-capslock) defcode VK_KANJI '\x19' # Alt-半角全角 defcode VK_SPACE '\x20' # Spaceスペースキー defcode VK_PRIOR '\x21' # PageUpページ上送り vkmap M VK_PRIOR vkmapl E VK_PRIOR defcode VK_NEXT '\x22' # PageDownページ下送り vkmap N VK_NEXT vkmapl R VK_NEXT defcode VK_END '\x23' # End終端送り vkmap U VK_END vkmapl C VK_END defcode VK_HOME '\x24' # Home先頭送り vkmap I VK_HOME vkmapl X VK_HOME defcode VK_LEFT '\x25' # ←左カーソルキー vkmap Y VK_LEFT vkmapl V VK_LEFT defcode VK_UP '\x26' # ↑上カーソルキー vkmap H VK_UP vkmapl D VK_UP defcode VK_RIGHT '\x27' # →右カーソルキー vkmap B VK_RIGHT vkmapl T VK_RIGHT defcode VK_DOWN '\x28' # ↓下カーソルキー vkmap G VK_DOWN vkmapl F VK_DOWN defcode VK_LWIN '\x5b' # 左「田ミ」Win窓キー vkmap 9 VK_LWIN vkmapl 4 VK_LWIN defcode VK_RWIN '\x5c' # 右「田ミ」Win窓キー defcode VK_APPS '\x5d' # 「目←」Appアプリキー defcode VK_F1 '\x70' # F1ファンクションキー defcode VK_TSOFT1 VK_F1 # soft key 1に割り当てられている vkmap 8 VK_TSOFT1 vkmapl VK_SPACE VK_TSOFT1 defcode VK_F2 '\x71' # F2ファンクションキー defcode VK_TSOFT2 VK_F2 # soft key 2に割り当てられている vkmap VK_SLASH VK_TSOFT2 vkmapl 5 VK_TSOFT2 defcode VK_F3 '\x72' # F3ファンクションキー defcode VK_F4 '\x73' # F4ファンクションキー defcode VK_F5 '\x74' # F5ファンクションキー defcode VK_F6 '\x75' # F6ファンクションキー defcode VK_TVOLUMEUP VK_F6 defcode VK_F7 '\x76' # F7ファンクションキー defcode VK_TVOLUMEDOWN VK_F7 defcode VK_F8 '\x77' # F8ファンクションキー defcode VK_F9 '\x78' # F9ファンクションキー defcode VK_F10 '\x79' # F10ファンクションキー defcode VK_F11 '\x7a' # F11ファンクションキー defcode VK_F12 '\x7b' # F12ファンクションキー defcode VK_F13 '\x7c' # F13ファンクションキー defcode VK_F14 '\x7d' # F14ファンクションキー defcode VK_F15 '\x7e' # F15ファンクションキー defcode VK_F16 '\x7f' # F16ファンクションキー defcode VK_F17 '\x80' # F17ファンクションキー defcode VK_TFLIP VK_F17 defcode VK_F18 '\x81' # F18ファンクションキー defcode VK_TPOWER VK_F18 defcode VK_F19 '\x82' # F19ファンクションキー defcode VK_F20 '\x83' # F20ファンクションキー defcode VK_F21 '\x84' # F21ファンクションキー defcode VK_F22 '\x85' # F22ファンクションキー defcode VK_F23 '\x86' # F23ファンクションキー defcode VK_F24 '\x87' # F24ファンクションキー defcode VK_SEMICOLON '\xba' # ;セミコロンキー defcode VK_EQUAL '\xbb' # =イコールキー defcode VK_COMMA '\xbc' # ,カンマキー defcode VK_HYPHEN '\xbd' # −ハイフンキー defcode VK_PERIOD '\xbe' # .ピリオドキー defcode VK_SLASH '\xbf' # /スラッシュキー defcode VK_HANZEN '\xf3' # 半角全角漢字キー
つぎはVKMAP。こっちはW-ZERO3[es]のテンキー側についているキーへの割り当てを示しています。
一部キーボード上の(標準的なWindows端末用キーボードにはない)キーもここで割り当てられています。
defcode VKMAP_T1 '\x101' vkmap T VKMAP_T1 vkmapl B VKMAP_T1 defcode VKMAP_T2 '\x102' vkmap F VKMAP_T2 vkmapl G VKMAP_T2 defcode VKMAP_T3 '\x103' vkmap V VKMAP_T3 vkmapl Y VKMAP_T3 defcode VKMAP_T4 '\x104' vkmap R VKMAP_T4 vkmapl N VKMAP_T4 defcode VKMAP_T5 '\x105' vkmap D VKMAP_T5 vkmapl H VKMAP_T5 defcode VKMAP_T6 '\x106' vkmap C VKMAP_T6 vkmapl U VKMAP_T6 defcode VKMAP_T7 '\x107' vkmap E VKMAP_T7 vkmapl M VKMAP_T7 defcode VKMAP_T8 '\x108' vkmap S VKMAP_T8 vkmapl J VKMAP_T8 defcode VKMAP_T9 '\x109' vkmap X VKMAP_T9 vkmapl I VKMAP_T9 defcode VKMAP_TSTAR '\x10a' # * vkmap W VKMAP_TSTAR # * vkmapl VK_RIGHT VKMAP_TSTAR # * defcode VKMAP_T0 '\x10b' vkmap A VKMAP_T0 vkmapl K VKMAP_T0 defcode VKMAP_TPOUND '\x10c' # # vkmap Z VKMAP_TPOUND # # vkmapl O VKMAP_TPOUND # # defcode VKMAP_MOJI '\x110' vkmap 3 VKMAP_MOJI vkmapl 9 VKMAP_MOJI defcode VKMAP_MODECHANGE '\x111' defcode VKMAP_NUMLOCK '\x112' vkmap 4 VKMAP_NUMLOCK vkmapl 8 VKMAP_NUMLOCK defcode VKMAP_IME '\x113' vkmap 5 VKMAP_IME vkmapl VK_SLASH VKMAP_IME defcode VKMAP_OK '\x114' vkmap J VKMAP_OK vkmapl S VKMAP_OK defcode VKMAP_ROTATE0 '\x115' vkmap P VKMAP_ROTATE0 vkmapl P VKMAP_ROTATE0 defcode VKMAP_ROTATE90 '\x116' defcode VKMAP_ROTATE180 '\x117' vkmap L VKMAP_ROTATE180 vkmapl L VKMAP_ROTATE180 defcode VKMAP_ROTATE270 '\x118' defcode VKMAP_ROTATE '\x119'
……あれっ?
defcode VK_ALNUM '\x14' # 英数(capslock) defcode VK_JKANA '\xf2' # カタカナひらがな
defcode VK_ALNUM '\xf0' # 英数(capslock) defcode VK_JKANA '\xf2' # カタカナひらがな
のどちらかを定義して、操作ごとに「VK_ALNUM」「VK_JKANA」のどちらかを明示的に指定すれば、ATOKでも英数/かなの切り分けが出来そうな気がするな……テストしてみるか。
……って、VKMAP以前のところで転けてどーする>私orz
テストしてみた。
……完璧に勘違いでしたorz。