英語キーボードを日本語キーボードに近づける方法 その2
初めに
自作キーボード等の選択肢が英語キーボードの方が圧倒的に多いため、英語キーボードを使いつつ日本語キーボードに近づけようと言うのが趣旨です。
前回はキーマップ変更を実際には試してなかったので試しました。
結論から言うと、windowsで日本語キーボードとして認識させていれば上手くいきますがその辺もうちょっと詳しく。
windows上で英語キーボードを日本語キーボードと認識させる方法
「設定-時刻と言語」を開き、「言語-日本語のオプション」を開き、「ハードウェアキーボードレイアウト」で日本語キーボードを選んで再起動。
これにより、英語キーボードでも日本語キーボードと同じ記号入力方法になる。
例)SHIFT+2で"になる
ただしキーキャップの刻印と食い違うことになるので、そこを合わせたい場合は前回記事等参考に日本語キーキャップに交換が必要。
windows上で英語/日本語キーボードとして認識させてる際の仕様
英語キーボードとして認識させている時の仕様
VIAで下記3つのキーを指定しても、OS側で受け取ってくれないため使用不可の模様(他にもダメなキーもあるかもしれない)
・無変換 : KC_MHEN
・変換 : KC_HENK
・かな : KC_KANA
下記2キーについては使用可能
・IMEOFF : KC_HANJ
・IMEON : KC_HAEN
日本語キーボードとして認識させているときの使用
下記全て使用可能
・無変換 : KC_MHEN
・変換 : KC_HENK
・かな : KC_KANA
・IMEOFF : KC_HANJ
・IMEON : KC_HAEN
よって、日本語キーボードとして認識させていれば無変換(KC_MHEN)や変換(KC_HENK)を使ってしまって問題無い。
英語キーボードとして認識させている時にはIMEOFF/IMEONキーを使って、IME側で機能割り当てすれば同じように使える。
極力英語キーボードを日本語キーボードっぽくする方法まとめ
キーボード選択
ISO配列(逆L字エンター)レイアウト
キー総数は普通の英語(ANSI)キーボードレイアウトと変わらないため我慢出来るなら普通の英語キーボードでもOKバックスペースキーを2キーに分割したレイアウトに出来ること(split bs)
英語キーボード標準のバックスペースキーサイズ(2u)だと¥キー足りない。まあ殆ど使わないINSキーとかF13キーに割り当てる手もあるけど。(追記、気づいてなかった・・・)右シフトキーを2キーに分割したレイアウトにできること(split right shift?)
右シフトキーを分割出来ないと_キーが足りない。
ただ、分割出来るものでも左側キーが長くて、右側キーが短いものしか無さそうなので、どうしてもちょっと違う形になってしまう。
そもそも右シフトキー近辺って、右シフトも右ALTもAppキーも需要低いからそれらに割り当ててしまっても問題無さそう。キーレウアウトが柔軟なものは、半田付け(hotswap未対応)のものが多いので注意、やっぱりhotswapの方が嬉しいよね
zoom75だと逆L字エンターキーとsplit bsは問題無さそう。
NEO80だと、逆L字エンターキーとsplit bs, split right shift対応なので合わせられる中では1番良いか?
OS上でのキーボード認識は日本語キーボードとする
これでSHIFT+2で"になる(その他記号も日本語キーボード準拠に)
英語キーボード配列に慣れたいなら、ここの設定は英語キーボードで良い
キーマップ
下記画像はALTキーを単発で押したら無変換キー/変換キーになるように設定するサンプル。
winキーやappキー潰して無変換キー/変換キーにするのももちろんあり。好みで設定!
ただしALTキーを使う場合、日本語キーボードの無変換キー/変換キーとは違い、ホームポジションのまま親指でALTキー押すのはかなり難しい。
ホームポジションで親指で押せるキーが多いというのはJIS配列の特徴だよなあ・・・ここのレイアウト自由度高いカスタムキーボード有れば良いんだけど。
スペース左のキー : MT(MOD_LALT,KC_MHEN)
単押しだと無変換キー、長押しだと左ALTキー
スペース右のキー : MT(MOD_RALT,KC_HENK)
単押しだと変換キー、長押しだと右ALTキー
キーキャップ
日本語キーボードとしてwindowsに認識させている場合、英語キーボード用キーキャップだと印字されている記号と、実際に入力出来る記号が食い違う。
動作上は問題無いが気になる場合は、日本語キーボードの記号が印字されてるものを使用する。
具体的には前回記事参照、他にも色々あるけども。
備考
キーボード選択で全てを満たそうとすると、流石に選択肢が少なそう。
素直に日本語(JIS)配列のものを選んでしまえ、となってしまいますね。
でもほんと選択肢が少ない、Keychron K8Proとかぐらい。
大まかには下記かなーと感じました。
変換キー・無変換キーが欲しい
VIA/qmk対応なら対応可能、IME側の設定も必要だけど。
ただしスペースキーがJIS配列より長いため、ホームポジションのまま親指キーで押すのは困難逆L字エンターじゃないとどうしてもイヤだ
ISOレイアウト使えるものなら大丈夫。
そもそも小指でエンター押す人は逆L字じゃなくても問題無い可能性大。日本語キーボードの記号配列にしたい
windowsの設定を日本語キーボードにすればOK。
ただしキーが2つ分足りない(BSキーの左、右シフトの左)ため、物理的にキーを増やすか、キーマップ弄って対応が必要。
今回のを踏まえ、個人的に設定したキーマップ
趣旨とは異なるが、今回分かったことも含め個人的な要件を下記に設定。
記号等は英語キーボード配列のままにしたい
->OSでの認識は英語キーボードとすればOKカナ変換はファンクションキー使わずにホームポジションから近いキーを使いたい
capslockキーの位置にctrlを入れたい
一番左下のctrlはそのままにしておきたい
capslockキー位置のctrlにまだ慣れきってないためwinキーは他のキーと同時押しで使う(winキー+Lとか)が、winキー単発押しはしない
Appキーは要らない
capslockキーも要らなそうだがとりあえずどこかに残す
キーマップ
スペースの左のキー : MT(MOD_LALT,KC_HANJ)
単発だとIMEOFFキー、他のキーと一緒だと左ALTキー
英語キーボードでは変換・無変換が使えないのでIMEONとIMEOFFを割り当ててATOK設定で機能割り当てて対応スペースの右のキー : MT(MOD_RALT,KC_HAEN)
単発だとIMEONキー、他のキーと一緒だと右ALTキー
英語キーボードでは変換・無変換が使えないのでIMEONとIMEOFFを割り当ててATOK設定で機能割り当てて対応左カーソルキーの左のキー : MT(MOD_RCTL,KC_CAPS)
単発だとcapslockキー、他のキーと一緒だと右CTRLキーAキーの左のキー(標準だとcapslockキーのところ) : 左CTRLキー
その他
ATOKの設定で、IMEONキーとIMEOFFキーに機能割り当て出来るの確認。
MS-IMEやgoogle日本語入力は使ってないので分からず・・・