環境
- Windows 7, 10, Max OS X (仕事で使うので基本はWindows7)
前提条件
- OS側でキーボードの言語設定が可能
- 日本語配列が好き
- Shift+2はダブルクォートじゃないと困る
- 日本語入力はローマ字入力です(かな入力の保障は出来ないです)
前段
勢いでErgoDox EZを買った。ぽちった後に、もしかして「Shift+2を押したらアットマークが出てしまうのでは?」とすごく不安になった。
届くまでの間、普段は英語を読まないのに https://github.com/jackhumbert/qmk_firmware のドキュメントを読んだり、普段は読まないC言語も読んだ。
日本語配列として使う問題点
- ろ((_))と¥((|))が打てない?
- 記号のマッピングが違うのでは?
数字+記号の箇所のみをピックアップした表を作った。
(バーティカルラインは表化けするので全角)
問題度 | JIS | US | JIS(Shift) | US(Shift) | Ergodox |
---|---|---|---|---|---|
1 | 1 | ! | ! | KC_1 | |
C級 | 2 | 2 | " | @ | KC_2 |
C級 | 3 | 3 | # | # | KC_3 |
C級 | 4 | 4 | $ | $ | KC_4 |
C級 | 5 | 5 | % | % | KC_5 |
C級 | 6 | 6 | & | ^ | KC_6 |
C級 | 7 | 7 | ' | & | KC_7 |
C級 | 8 | 8 | ( | * | KC_8 |
C級 | 9 | 9 | ) | ( | KC_9 |
C級 | 0 | 0 | 無 | ) | KC_0 |
C級 | - | - | = | _ | KC_MINS |
A級 | ^ | = | ~ | + | KC_EQL |
B級 | \ | 無 | | | 無 | KC_JYEN |
A級 | @ | [ | ` | { | KC_LBRC |
A級 | [ | ] | { | } | KC_RBRC |
C級 | ; | ; | + | : | KC_SCLN |
A級 | : | ' | * | " | KC_QUOT |
A級 | ] | \ | } | | | KC_BSLS |
, | , | < | < | KC_COMM | |
. | . | > | > | KC_DOT | |
/ | / | ? | ? | KC_SLSH | |
B級 | \ | 無 | _ | 無 | KC_RO |
問題度 A級
Shiftを押さない通常時でもキー配置が違うもの
問題度 B級
USキーボードに存在しないキー
ファームウェアでマッピングしているので、問題は無い。 (気付くのに時間が掛かったがな!)
問題度 C級
通常時は一緒だが、Shiftのキー配置が違うもの
問題度 該当無し
見ての通り、日本語配列とUS配列でキーが一致しているもの
解決編
ErgoDox EZが届いて、接続したら、日本語キーボードとして認識されました、とりあえずShift+2を押してもダブルクォートが出力される。
つまり上記のC級の問題は頭の中で変換できれば何てこと無い問題になった。
さて、次に記号を片付けていくか… KC_LBRC(左ブラケット)をマッピングしている箇所をタイプすると@が出力される…。
||||||||/(≧□≦;)\||||||| ワカリニクイヨー
分かりにくかったらマッピングしてしまえば良いんだ!!
A級とB級だけをマッピングしなおす。
JIS | US | JIS(Shift) | US(Shift) | Ergodox | Alias |
---|---|---|---|---|---|
^ | = | ~ | + | KC_EQL | JA_HAT |
\ | 無 | | | 無 | KC_JYEN | JA_ENVL |
@ | [ | ` | { | KC_LBRC | JA_AT |
[ | ] | { | } | KC_RBRC | JA_LBRC |
: | ' | * | " | KC_QUOT | JA_CLON |
] | \ | } | | | KC_BSLS | JA_RBRC |
\ | 無 | _ | 無 | KC_RO | JA_ENUN |
#define JA_CLON KC_QUOT // : and +
#define JA_AT KC_LBRC // @ and `
#define JA_HAT KC_EQL // ^ and ~
#define JA_ENUN KC_RO // \ and _ (EN mark and UNder score)
#define JA_ENVL KC_JYEN // \ and | (EN mark and Vertical Line)
#define JA_LBRC KC_RBRC // [ and {
#define JA_RBRC KC_BSLS // ] and }
KC_JYENとKC_ROは十分分かりやすいかもしれない、そして私が決めたエイリアス名は分かりにくいかも(EN mark and Vertical LineとEN mark and UNder score)
他のところも全て、JA_から始まるエイリアスを作ろうと思ったけど、まぁいいかと思って行っていない。
あと、本家のkeymap_extrasに入れようか悩んだけど、そこまで需要ないかな?
結論
日本語配列として十分使える!
日本語配列好きなErgoDoxユーザに届け!
ここまでで、記事書くの疲れたので俺の最強のキー配置はまた今度…。
https://github.com/Yuta-shuh/qmk_firmware/blob/master/keyboard/ergodox_ez/keymaps/shuh/keymap.c