株式会社クリアコード > ククログ

ククログ


GNU/Linux版Firefoxでime-modeを動作させるアドオン

ime-modeとは

CSSにはime-modeというプロパティがあり、これによりinput要素やtext要素でインプットメソッドの入力モードを制御することができます。この仕様は廃止されることが決まっているため積極的に利用すべきものではありませんが、一方で代替となる仕様や実装が無いこともまた事実です。日本の業務システムでは、入力業務効率化の必要性から、今なおこの機能を利用している事例も多いようです。

Firefoxでのime-modeサポート状況

この仕様はInternet Explorer由来のものですが、Firefoxも同仕様をサポートしています。ただし、GNU/Linux版ではサポートされている機能が限定的で、activeinactiveはサポートされていません。これは、GNU/Linux版Firefoxがプラットフォーム層として利用しているGTK側の制約に依るものです。

弊社でも「GNU/Linux版Firefoxでime-modeを使用することはできないか?」というお問い合わせを受けたことが過去に何度かあります。

ime-mode-we

最近、とあるお客様から「どうしてもこの機能をGNU/Linux版Firefoxで実現したい」という強いご要望があったため、新たにime-mode-weというアドオンを作成してお応えしました。

同アドオンは、今のところ多言語入力フレームワークとしてIBusを、入力エンジンとしてAnthyKKCMozcSKKのみをサポートしています。

インストール方法

アドオン自体は、通常のアドオンと同様に、同ページから「Firefoxへ追加」ボタンを押すだけでインストールすることができます。ただし、このアドオンはシステムネイティブのコマンドを呼び出す形で実装されているため、このネイティブコマンドについても別途インストールする必要があります。同ページにも記載していますが、以下の手順でネイティブコマンドをインストールして下さい

  1. "ime-mode-we-host.tar.gz"を https://github.com/clear-code/ime-mode-we/releases からダウンロードします。
  2. 以下のコマンドで、同アーカイブ内のファイルをシステムに展開します:
sudo tar xvf ime-mode-we-host.tar.gz -C /

アドオンの方をネイティブコマンドよりも先にインストールしてしまっている場合は、Firefoxを再起動して有効化して下さい。

なお、同コマンドの実行にはPythonが必要です。

利用方法

問題なくインストールが完了していれば、ime-mode: inactiveがセットされた入力エリアにフォーカスを合わせると自動的に入力モードが直接入力モードになり、ime-mode: activeがセットされた入力エリアにフォーカスを合わせると自動的に入力モードがひらがな入力モードに切り替わるようになります。後者については、実装上の都合で、直前の入力モードではなくひらがなモードに固定化されています(直前の入力モードに変更するためには、各IBusエンジン側の対応が必要です)。

ただし前述の通り対応している入力システムは限られますし、IBus側の設定をデフォルト状態から変更している場合には、対応済みのIBusエンジンでも正しく動作しないこともあるかもしれません。

まとめ

GNU/Linux版Firefoxでime-modeを動作させるアドオンime-mode-weを紹介しました。現在はIBusの特定のIMエンジンのみ対応していますが、Fcitxなどにも対応させることは難しくないでしょう。実際、上記のお客様向けには、非公開のプロプライエタリIMエンジンに対応させる形で提供していますし、IMエンジン側に手を入れることでひらがな固定といった制約も排除しています。また、ime-modeの仕様に拘らなければ、IMEのON/OFFだけでなく、初期状態をカタカナや半角カタカナなどに切り替えるといった機能も実現できるかと思います。

もしこういったカスタマイズのご要望がある場合は、ぜひ弊社お問い合わせフォームよりご連絡下さい。

2019-06-24

«前の記事: OSSへのフィードバックには何をどう書けばいいのか、どのプロジェクトに報告すればいいのか 最新記事 次の記事: MariaDBへ不具合をフィードバックするには »
タグ:
年・日ごとに見る
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|