pockestrap

Programmer's memo

IME でも :muscle: みたいに Emoji を入力したい!

やりたいこと

:something: を解釈しないサービスでもこの形式で Emoji を入力出来るようにする。

こんな感じ

やりかた

IME のローマ字テーブルを書き換える

環境

説明は上記の環境で行いますが、ローマ字テーブルをいじることが出来る IME であれば同様のことが可能だと思います。

手順

ローマ字テーブルのバックアップ

まずは、既存のローマ字テーブルをバックアップします。

今回は Mozc を想定していますが、Google 日本語入力でもだいたい同じだと思います。

Arch Linux だと/usr/lib/mozc/mozc_tool --mode=config_dialogのようにして Mozc の設定ダイアログを開きます。 他の環境では適当に IME のメニューあたりからそれっぽいやつを開きます。

そして、「ローマ字テーブル」「編集」「編集」「エクスポート」とクリックし、適当なファイル名でエクスポートします。

f:id:Pocke:20170305195605p:plainf:id:Pocke:20170305195612p:plain

ローマ字テーブルの生成

次に、ローマ字テーブルを生成していきます。

github.com

GitHub に EmojiOne というレポジトリがあります。
open emoji standard を謳っているので、これを元にローマ字テーブルを作ります。

以下の Ruby コードを main.rb という名前で保存します。

# main.rb
require 'json'

emojis = JSON[STDIN.read]

emojis.each_value do |emoji|
  name = emoji['shortname']
  code = emoji['unicode']
  e = code.to_i(16).chr('UTF-8')
  puts "#{name}  #{e}"

  emoji['aliases'].each do |a|
    puts "#{a}   #{e}"
  end
end

そして、以下のコマンドを実行します。

curl https://raw.githubusercontent.com/Ranks/emojione/master/emoji.json | ruby main.rb >> ~/romantable.txt

尚、最後の~/romantable.txtは先程エクスポートしたファイル名に読み替えてください。私の環境のデフォルトだとこのファイル名になっていました。

ローマ字テーブルのインポート

最後に、ローマ字テーブルのインポートをします。 先程と同様に Mozc の設定ダイアログを立ち上げ、「ローマ字テーブル」「編集」「編集」「インポート」とクリックし、先程のファイルをインポートします。

この設定を適用することで、IME から直接 :something: 形式で Emoji を打ち込むことが可能となります。

Ruby 動かすのめんどくさい

生成されたローマ字テーブルを置いておきます。
これを現在使用しているローマ字テーブルと concat してご使用下さい。
現在使用しているテーブルも残さないと、Emoji しか打てない IME が出来上がるのでご注意下さい。

emojitable.txt · GitHub

尚、生成元の JSON ファイルは MIT でライセンスされています。

https://github.com/Ranks/emojione/blob/master/LICENSE.md