こんにちは、ミツバです。 この前、行われた天キーでいい感じのキーキャップを入手できたので少し特殊なことをしてみようと思いました。 キーボードは、ErgoDashを利用しています。
Ubuntuでの設定
今回はUbuntu 18.04でやっていきます。
keymap.cを編集
// 一番上に記述 #include "process_unicode.h" // キーマップ定義の上ぐらいに記述 enum unicode_name { THINKING_FACE, }; const uint32_t PROGMEM unicode_map[] = { [THINKING_FACE] = 0x1F914, // THINKING_FACE }; // キーマップに追加 X(THINKING_FACE) // 一番下に追加 void matrix_init_user(void) { set_unicode_input_mode(UC_LNX); }
rules.mkを編集
UNICODE_ENABLE = no UNICODEMAP_ENABLE = yes
これで指定したキーで絵文字が打てていると思います。
デモ
thinking faceでthinking faceが打てるようになった pic.twitter.com/hZGPFT8gSu
— ミツバ@なんか趣味作る (@mitubaEX) 2019年5月4日
MacとUbuntuで切り替えて同じことをやる
keymap.cに追記
#include "process_unicodemap.h" #include "process_unicode_common.h" enum custom_keycodes { QWERTY = SAFE_RANGE, LOWER, RAISE, ADJUST, THINKING_FACE_TYPE, // 追加 }; // modeを変更するキーコードをキーマップに追加する UNICODE_MODE_OSX // THINKING_FACEのコードを追加する THINKING_FACE_TYPE // THINKING_FACE_TYPEが押されたときに、やる処理を書く case THINKING_FACE_TYPE: if (record->event.pressed) { switch(get_unicode_input_mode()) { case UC_OSX: register_code(KC_RALT); SEND_STRING("D83E+DD14"); unregister_code(KC_RALT); break; } } break;
あとは以下の手順をするだけです。
- MacのIMEにUnicode Hex Inputを追加し、メニューバーから show emoji & symbols を選択。
- 左上の歯車から、Customize Listを選択。
- Code TablesからUnicodeにチェックを入れて準備完了。
これで UNICODE_MODE_OSX を押したあと、THINKING_FACEを打つと顔文字が出たと思います。
デモ
無理矢理実装したけど、普通にlinuxでは動かないので共存出来てない pic.twitter.com/JjYYaSShTX
— ミツバ@なんか趣味作る (@mitubaEX) 2019年5月5日
しかしLinuxでキーマップに設定する以外で、絵文字を入力する方法がよくわからなかったので諦めました。 何か良い案があれば教えてください。
解説
やっていることとしては、無理やりALTを入力してthinking_faceのUTF-16 code unitsを入力しています。 このUTF-16 code unitsは、このサイト で確認できるので入力したい絵文字を各自で調べてみてください。