USB HID キーボード と 親指シフト
USB HID キーボードは、規格制定当時に存在していたキーボードのキートップ全てを網羅する様に考えられています。 当然親指シフトに使われる「親指左」「親指右」に対応するキーあります。(実際には使われて居ませんが…)
Windows10(日本語版)で使えるキーコードは、OADG109A日本語キーボード相当のキーコードです。 親指シフト変換器は、そのキーコードに割り当てを行います。
注. USBのUsage IDを便宜的にキーコードと称ています。
出力するキーコード
下は、親指シフト変換器の出力キーコード表です。
キーとキーコード(USB ID (HID Keyboard/Keypad Usage ID))とは、1対1に対応します。
ただ残念な事に現在のWindows OSでは、一部認識しないキーコードも存在しています。
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
---|---|---|---|---|
1 | ESC | ESC | 29 | Keyboard ESCAPE |
2 | 1 ! | 1 ! | 1E | Keyboard 1 and ! |
3 | 2 " | 2 " | 1F | Keyboard 2 and @ |
4 | 3 # | 3 # | 20 | Keyboard 3 and # |
5 | 4 $ | 4 $ | 21 | Keyboard 4 and $ |
6 | 5 % | 5 % | 22 | Keyboard 5 and % |
7 | 6 & | 6 & | 23 | Keyboard 6 and ^ |
8 | 7 ' | 7 ' | 24 | Keyboard 7 and & |
9 | 8 ( | 8 ( | 25 | Keyboard 8 and * |
10 | 9 ) | 9 ) | 26 | Keyboard 9 and ( |
11 | 0 @ | 0 | 27 | Keyboard 0 and ) |
12 | - = | - = | 2D | Keyboard - and (underscore) |
13 | ^ ~ | ^ ~ | 2E | Keyboard = and + |
14 | \ | | \ | | 89 | Keyboard International3 |
15 | ] } | ] } | 32 | Keyboard Non-US # and ~ |
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
16 | 英字 | 英数 Caps Lock | 29 | Keyboard Caps Lock |
17 | q Q | q Q | 14 | Keyboard q and Q |
18 | w W | w W | 1A | Keyboard w and W |
19 | e E | e E | 08 | Keyboard e and E |
20 | r R | r R | 15 | Keyboard r and R |
21 | t T | t T | 17 | Keyboard t and T |
22 | y Y | y Y | 1C | Keyboard y and Y |
23 | u U | u U | 18 | Keyboard u and U |
24 | i I | i I | 0C | Keyboard i and I |
25 | o O | o O | 12 | Keyboard o and O |
26 | p P | p P | 13 | Keyboard p and P |
27 | : * | : * | 34 | Keyboard ‘ and “ |
28 | [ { | [ { | 30 | Keyboard ] and } |
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
29 | 英小文字 カタカナ | ひらがな カタカナ | 88 | Keyboard International2 |
30 | a A | a A | 04 | Keyboard a and A |
31 | s S | s S | 16 | Keyboard s and S |
32 | d D | d D | 07 | Keyboard d and D |
33 | f F | f F | 09 | Keyboard f and F |
34 | g G | g G | 0A | Keyboard g and G |
35 | h H | h H | 0B | Keyboard h and H |
36 | j J | j J | 0D | Keyboard j and J |
37 | k K | k K | 0E | Keyboard k and K |
38 | l L | l L | 0F | Keyboard l and L |
39 | ; + | ; + | 33 | Keyboard ; and + |
40 | 後退 | Back Spase | 2A | Keyboard DELETE (Backspace) |
41 | 取消 | 9B | Keyboard Cancel | |
42 | Return | Enter | 30 | Keyboard Return (ENTER) |
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
43 | Shift | Left Shift | E1 | Keyboard LeftShift |
44 | z Z | z Z | 1D | Keyboard z and Z |
45 | x X | x X | 1B | Keyboard x and X |
46 | c C | c C | 06 | Keyboard c and C |
47 | v V | v V | 19 | Keyboard v and V |
48 | b B | b B | 05 | Keyboard b and B |
49 | n N | n N | 11 | Keyboard n and N |
50 | m M | m M | 10 | Keyboard m and M |
51 | , > | , < | 36 | Keyboard , and < |
52 | . > | . > | 37 | Keyboard . and > |
53 | / ? | / ? | 38 | Keyboard / and ? |
54 | ' _ | \ _ | 87 | Keyboard International1 |
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
55 | CTRL | Left Ctrl | E0 | Keyboard LeftControl |
56 | ALT | Left Alt | E2 | Keyboard LeftAlt |
57 | タブ | Tab | 2B | Keyboard Tab |
58 | 親指左 | 8F | Keyboard International9 | |
59 | 親指右 | 8E | Keyboard International8 | |
60 | 空白 | Spacebar | 2C | Keyboard Spacebar |
61 | かな漢字 | 73 | Keyboard F24 | |
62 | 無変換 | 無変換 | 8B | Keyboard International5 |
63 | 変換 | 変換 前候補 | 8A | Keyboard International4 |
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
64 | PAUSE | Pause | 48 | Keyboard Pause |
65 | COPY | Print Screen | 46 | Keyboard PrintScreen |
66 | PF1 | F1 | 3A | Keyboard F1 |
67 | PF2 | F2 | 3B | Keyboard F2 |
68 | PF3 | F3 | 3C | Keyboard F3 |
69 | PF4 | F4 | 3D | Keyboard F4 |
70 | PF5 | F5 | 3E | Keyboard F5 |
71 | PF6 | F6 | 3F | Keyboard F6 |
72 | PF7 | F7 | 40 | Keyboard F7 |
73 | PF8 | F8 | 41 | Keyboard F8 |
74 | PF9 | F9 | 42 | Keyboard F9 |
75 | PF10 | F10 | 43 | Keyboard F10 |
76 | PF11 | F11 | 44 | Keyboard F11 |
77 | PF12 | F12 | 45 | Keyboard F12 |
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
78 | 漢字辞書 | 70 | Keyboard F21 | |
79 | 単語抹消 | 71 | Keyboard F22 | |
80 | 単語登録 | 72 | Keyboard F23 | |
81 | 前行 | Page Up | 4B | Keyboard PageUp |
82 | HOME | HOME | 4A | Keyboard Home |
83 | 次行 | Page Down | 4E | Keyboard PageDown |
84 | 半角/全角 | 半角/全角 | 35 | Keyboard Grave Accent and Tilde |
85 | 削除 | Delete | 4C | Keyboard Delete Forward |
86 | 挿入 | Insert | 49 | Keyboard Insert |
87 | ↑ | ↑ | 52 | Keyboard UpArrow |
88 | ← | ← | 50 | Keyboard LeftArrow |
89 | ↓ | ↓ | 51 | Keyboard DownArrow |
90 | → | → | 4F | Keyboard RightArrow |
91 | 実行 | 74 | Keyboard Execute | |
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
92 | PF13 | 68 | Keyboard F13 | |
93 | PF14 | 69 | Keyboard F14 | |
94 | PF15 | 6A | Keyboard F15 | |
95 | PF16 | 6B | Keyboard F16 | |
96 | PF17 | 6C | Keyboard F17 | |
97 | PF18 | 6D | Keyboard F18 | |
98 | PF19 | 6E | Keyboard F19 | |
99 | PF20 | 6F | Keyboard F20 | |
100 | T* | T* | 55 | Keypad * |
101 | T/ | T+ | 54 | Keypad / |
102 | T+ | T+ | 57 | Keypad + |
103 | T- | T- | 54 | Keypad - |
104 | T7 | T7 | 5F | Keypad 7 and Home |
105 | T8 | T8 | 60 | Keypad 8 and Up Arrow |
106 | T9 | T9 | 61 | Keypad 9 and PageUp |
107 | T= | 67 | Keypad = | |
108 | T4 | T4 | 5C | Keypad 4 and Left Arrow |
109 | T5 | T5 | 5D | Keypad 5 |
110 | T6 | T6 | 5E | Keypad 6 and Right Arrow |
111 | T. | T. | 63 | Keypad . and Delete |
112 | T1 | T1 | 59 | Keypad 1 and End |
113 | T2 | T2 | 5A | Keypad 2 and Down Arrow |
114 | T3 | T3 | 5B | Keypad 3 and PageDn |
115 | TEnter | TEnter | 58 | Keypad ENTER |
116 | T0 | T0 | 62 | Keypad 0 and Insert |
117 | T000 | B1 | Keypad 000 | |
No. | キー(FMT-KB207) | キー(OADG109A) | USB ID | USB 名称 |
118 | SYSREQ | 9A | Keyboard SysReq/Attention | |
119 | EXT1 | Left Windows | E3 | Keyboard Left GUI |
120 | EXT2 | Application | 65 | Keyboard Application |
121 | SCROLL LOCK | Scroll Lock | 47 | Keyboard Scroll Lock |
122 | HOME | Home | 4A | Keyboard Home |
123 | END | End | 4D | Keyboard End |
[親指右] [親指左] は、資料 「HID Usage Tables Version 1.12」の10章の注釈にある「8 Reserved for language-specific function, such as Front End Processors and Input Method Editors.」からも解るようにかな漢字変換用に使えます。 もう少し拡大解釈すれば、文字入力前の処理に使えるキーになります。
[漢字辞書] [単語抹消] [単語登録] [かな漢字] の各キーは、機能キーなのでファンクションキー(F21~F24)に割り当てています。
キーコードの入れ替え
上記の出力コードをそのままOSに渡してもそれなりに文字入力はできます。 でも使い勝手が悪いので、認識しないキーや存在しないキーなどを入れ替えて使えるようにします。
認識しないためコードを入れ替えるキー
[SYSREQ] [取消] [実行] [親指右] [親指左] [T000]
機能キーとしてコードを入れ替えるキー
[PF15] [PF16] [PF17] [PF18] [PF19] [PF20] [漢字辞書] [単語抹消] [単語登録] [かな漢字]
出力内容が異なるコードを入れ替えるキー
[T=](WindowsではClearキーとして認識される)
初期値として
- [SYSREQ] : (System Request)
- [取消] : [ESC]
- [実行] : [T_Enter]
- [親指右] : [変換]
- [親指右] : [変換]
- [PF15] : [Scrol Lock]
- [PF16] : [Num Lock]
- [PF17] : [End]
- [PF18] : [Wndows]
- [PF19] : [Application]
- [PF20] : [Alt]
- [漢字辞書] : [F21]
- [単語抹消] : [F22]
- [単語登録] : [F23]
- [T000] : [(T000)]
- [T = ] : [(T=)]
親指シフト変換器内で使用するキー
[PF13](F13)と[かな漢字](F24)は、親指シフト変換器内で状態を切り替えるために使用しているキーです。 キーコード自体は、PC本体に送られIMEの状態を変更するために使用されます。
親指シフト入力ローマ字出力機能
キーボードとして最も要らなく親指シフトとして必要なオプション機能です。 多少問題点もありますが使える状態になっています。
OADG109A日本語キーボードの普及で、JISかな入力よりローマ字入力が主流になっています。 キーボード内で親指シフトの打鍵判断を行い出力コードを組み合わせてローマ字を打鍵したようにする機能です。
Microsoft IMEを想定してローマ字を出力します。 下記は、この機能により出力される文字一覧です。 IMEの設定を変更して多くの文字を出さるようにしています。 変更しない場合は、一部記号が出ません。
英数入力時
1 2 3 4 5 6 7 8 9 0 - ^ \ ] q w e r t y u i o p : [ a s d f g h j k l ; z x c v b n m , . / \
英数入力時 / Shift
! " # $ % & ' ( ) @ = ~ | } Q W E R T Y U I O P * { A S D F G H J K L + Z X C V B N M < > ? _
かな入力時
1 2 3 4 5 6 7 8 9 0 - | 。 か た こ さ ら ち く つ , 、 う し て け せ は と き い ん . ひ す ふ へ め そ ね ほ ・
かな入力時 / 親指シフト左
? / ~ 「 」 [ ] ( ) ¥ ぁ え り ゃ れ ぱ ぢ ぐ づ ぴ を あ な ゅ も ば ど ぎ ぽ ぅ ー ろ や ぃ ぷ ぞ ぺ ぼ
かな入力時 / 親指シフト右
? / ~ 「 」 [ ] ( ) ¥ が だ ご さ よ に る ま ぇ ヴ じ で げ ぜ み お の ょ っ び ず ぶ べ ぬ ゆ む わ ぉ
かな入力時 / Shift
! ” # $ % & ’ ( ) = ~ | } Q W E R T Y U I O P * { A S D F G H J K L + Z X C V B N M < > ? _
ローマ字
親指シフトで押されたキーをローマ字に置き換えてUSBより出力します。 その時のローマ字出力を下記に示します。
あ a |
い i |
う u |
え e |
お o |
ヴ vu |
ぁ la |
ぃ li |
ぅ lu |
ぇ le |
ぉ lo |
||||||
か ka |
き ki |
く ku |
け ke |
こ ko |
が ga |
ぎ gi |
ぐ gu |
げ ge |
ご go |
ヵ lka |
ヶ lke |
|||||
さ sa |
し si |
す su |
せ se |
そ so |
ざ za |
じ zi |
ず zu |
ぜ ze |
ぞ zo |
|||||||
た ta |
ち ti |
つ tu |
て te |
と to |
だ da |
ぢ di |
づ du |
で de |
ど do |
っ ltu |
||||||
な na |
に ni |
ぬ nu |
ね ne |
の no |
||||||||||||
は ha |
ひ hi |
ふ hu |
へ he |
ほ ho |
ば ba |
び bii |
ぶ bu |
べ be |
ぼ bo |
ぱ pa |
ぴ pi |
ぷ pu |
ぺ pe |
ぽ po |
||
ま ma |
み mi |
む mu |
め me |
も mo |
||||||||||||
や ya |
ゆ yu |
よ yo |
ゃ lya |
ゅ lyu |
ょ lyo |
|||||||||||
ら ra |
り ri |
る ru |
れ re |
ろ ro |
||||||||||||
わ wa |
ゐ wyi |
ゑ wye |
を wo |
ん nn |
ゎ lwa |
親指シフト入力はキー1つに1文字か割り当たりますので、通常のローマ字入力のように拗音の入力はありません。
その他
親指シフト入力-ローマ字出力ができるようになったため、ローマ字入力かな漢字変換を行うパソコンなら繋げて即親指シフト入力ができるようになりました。
サブで使っているLinux(ubuntu)でも使えるのはよかったかな。
ただし、何時もの如くモードすれはでますけど。
問題点
何時ものモードずれです。
IME(インプット メゾット エディタ)の状態やキーボードのドライバの状態をキーボードが知ることができないため起こる現象です。
親指シフトエミュレーションソフトでは、かなり解消されますので使うと良いです。
で問題点ですが
- 半角/全角キーで英字入力とかな入力モードが一致しない
- メニューが上手く使えない
- Altキーと相性が悪い
モードずれの解消に手間取る原因です。 IMEの設定を変更して対応します。
親指シフト入力してる間は、ローマ字になっているのでメニューのキー操作がができません。 一旦英数入力に切り替えてから操作する必要があります。
Altキーは、1度押すとAlt状態を保ち次のキーを待っています。 英数入力時には、問題なく操作できますが、親指シフト入力している時は動作が怪しくなります。
対処としては、ShiftキーやCtltキーと同じく、Altと他のキーを同時に押してください。
免 責
情報は出来るだけ正確に書くつもりです。ただこの記事を見て作ると思ったときは、 個人の責任において作業を行なってください。 データの喪失や機器の損傷が有っても、一切の責任は取れません。