ibus-mozcでNormanレイアウト


概要

Ubuntu 16.04 のibus-mozcを使ってNormanレイアウトで日本語入力するための設定方法の備忘録。

Ubuntu上でNormanで入力したいだけならfcitx-mozcを使った方法のほうがやりやすいと思う。

ibusでは一筋縄では行きませんでしたが、Normanみたいなちょっと変わったレイアウトを採用したい人の参考にでもなれば。

方法

ibusにnormanのエントリ追加

/usr/share/ibus/component/simple.xml
にエントリを入れる。colemanとかの部分をコピーして修正。

/usr/share/ibus/component/simple.xml
<engine>
<name>xkb:us:norman:eng</name>
<language>eng</language>
<license>GPL</license>
<author></author>
<layout>us</layout>
<layout_variant>norman</layout_variant>
<longname>English (Norman)</longname>
<description>English (Norman)</description>
<icon>ibus-keyboard</icon>
<rank>99</rank>
</engine>

ibus list-engine
でエントリが入っているのを確認し、
ibus engine xkb:us:norman:eng
でレイアウトが変更されるのを確認する。

ibus-mozc

日本語入力のためにibus-mozcをインストール。
sudo apt install ibus-mozc

インストール後、
ibus-setup
でmozcとnormanを選択。

詳細タブの、「システムのキーボードレイアウトを使用する」のチェックを外す。

ibus restartするとnormanレイアウトで日本語入力できるようになってる。

残念ながら、X windowからログアウトしてログインし直すとqwertyに戻ってしまうので、自動起動するアプリケーションにibus restartを追加。

また、システム設定のテキスト入力を起動したり、super+spaceで別の入力システムに切り替えたりするとやはりqwertyに戻される。
それを避けるため、mozcは変換キーで日本語変換がON、無変換キーでOFFとなって直接入力になるように設定した。

トラブルシューティング

ibus-setup が起動しない

最初、

Traceback (most recent call last):
File "/usr/share/ibus/setup/main.py", line 31, in <module>
from gi.repository import GLib
ModuleNotFoundError: No module named 'gi'

というエラーが出た。

これはanaconda環境で実行したからで、anaconda環境を抜けて実行したら問題なく起動した。

システム設定→テキスト入力にNormanが表示されない

ibusのエントリを編集しても、システム設定(unity-control-center)の入力ソースリストには反映されない。

gnome-tweak-toolをインストールする。

sudo apt install gnome-tweak-tool

gnome-tweak-toolを起動して、キーボードとマウスの項目で「全ての入力ソースを表示」をON。

するとシステム設定のテキスト入力にEnglish (Norman)も含む全てのレイアウトが表示される。

ここで選んだNormanだとControl Lがbackspace動作をしてしまうので、gnome-tweak-tool のタイピングのところ、「CTRLの位置をAの左」に設定。

単に英語でNorman打ちたいだけならこの方法だけで良い。
ibus-mozcとは連動してくれず、システム設定→テキスト入力にNormanを追加してもmozcはqwertyのままなので、上記のようにしないとならない。

試行錯誤

途中経過で試してみたこと。

gsettings

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+norman'), ('ibus', 'mozc-jp')]"

確か実際にはNormanレイアウトが有効にならなかったような。。。

dconf

dconf dump /desktop/ibus > ibus.conf
後、

preload-engines=['xkb:us:norman:eng','mozc-jp']

と該当部分を書き換えて、
dconf load /desktop/ibus < ibus.conf

これも効果なかったような。。。

~./bashrc

ibus engine xkb:us:norman:eng
ibus engine mozc-jp

を追加。ターミナルを開くとNormanになるように。→自動起動アプリ設定の方がスマートだった。

参考