🍣絵文字キーの実現
要約
入力メソッドの拡張とキーボードのファームウェア変更により🍣キーを実現した。
ErgoDoxで実現できないキー
ErgoDox EZ等のキー配列を自由に変更できるキーボードがある。 ただし、通常のキーボードにないキーを作ることはできない。
例えば、絵文字を直接入力するキーを作ることはできない。
ファームウェアの制限
ErgoDox EZ等で利用できるファームウェアであるqmk_firmwareにはUnicodeサポート機能がある。しかし実現方法がOSごとに違うため、OSに依存した制限がある。
macOSではUnicode Hex Inputを利用しているが、Unicode Hex Inputは4桁のコードポイントしか受け付けない。そのため4桁を越えるU+1F363
(🍣)を入力するキーは作れない。
絵文字キーの実現
入力メソッドの拡張
4桁を越えるコードポイントを入力できるようAquaSKKを拡張した。(codepoint_inputブランチ)
Ctrl
と Option
を押しながらコードポイントを入力し、最後に u
を入力することで、任意のコードポイントを入力できるようにした。 例えば、 🍣(U+1F363
)を入力したい場合は、 Ctrl
と Option
を押しながら 1
F
3
6
3
U
を押すと🍣が入力できる。
ErgoDoxでの入力
ErgoDox EZのファームウェアを変更し、拡張した入力方法を用いるマクロを作成する。 これにより絵文字キーを実現できる。
// M(1)とM(2)に絵文字を割り当てる const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case 1: if (record->event.pressed) { // 🍣(U+1F363) return MACRO( D(LALT), D(LCTL), T(1), T(F), T(3), T(6), T(3), T(U), U(LCTL), U(LALT), END ); } break; case 2: if (record->event.pressed) { // 🍺(U+1F374) return MACRO( D(LALT), D(LCTL), T(1), T(F), T(3), T(7), T(A), T(U), U(LCTL), U(LALT), END ); } break; } return MACRO_NONE; };
別解1: サロゲートペア
@mzp U+D83C U+DF63 でも
— ばんじゅん🍓 (@banjun) 2016年12月24日
別解2: TouchBar
TouchBarには絵文字入力補助があって便利!