以下の内容はhttps://kotaro7750.hatenablog.com/entry/eng_key_ubuntuより取得しました。


ubuntuで英字キーボードを使用したときの日本語入力設定(おまけ vimでの自動IMEオフ)

ubuntuで英字キーボードを使用したときの日本語入力設定

私は普段Ubuntuに英字キーボードを繋いでいるのですが、そうなるとめんどくさいのが日本語入力の設定です。この記事では私がたどり着いた答えを解説していこうと思います。 また、この記事のやり方を真似ることで、vimで日本語入力をオンにしたままノーマルモードに入った際に自動でオフにしてくれる設定も可能になります。

前提

デフォルトのインプットメソッドがfcitxでないとできません。設定->地域と言語->インストールされている言語の管理 からキーボード入力に使うIMシステムをfcitxにしてください。

設定方法

レイアウトを英字にする

$ sudo dpkg-reconfigure keyboard-configuration

画像のように選択していく。普通のキーボードだったら画像の通りで大丈夫ですが、HHKBなどを使っている場合は、キーボードモデルのところで使っているものを選択してください。

f:id:Kotaro7750:20200331105412p:plain
キーボードのモデル
f:id:Kotaro7750:20200331105144p:plain f:id:Kotaro7750:20200331105156p:plain
f:id:Kotaro7750:20200331105202p:plainf:id:Kotaro7750:20200331105208p:plainf:id:Kotaro7750:20200331105218p:plain
ここらへんは割とどうでもいい

そのようにしたら、/etc/default/keyboardが以下のようになっていればok

$ cat /etc/default/keyboard

BACKSPACE="guess"
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS=""

次に/usr/share/ibus/component/mozc.xmlの部分をdefaultではなく、enにします。

fcitxの設定

まずはfcitx-mozcをインストールします。

$ sudo apt install fcitx-mozc

そうしたら、アプリケーション一覧から下の画像のように、fcitxの設定を起動します。 f:id:Kotaro7750:20200331105224p:plain

入力メソッドをmozc、英字キーボードのみにし、2つともレイアウトは英字にしてください。

次に画像のように、「入力メソッドのオンオフ」を好きなバインドにしてみてください。ここではこれをバインドAと呼びます。(画像の例ではSuper+Space)

f:id:Kotaro7750:20200331105707p:plain
入力メソッドのオンオフを設定する

mozcの設定

先程mozcもインストールしたはずですので、アプリケーション一覧からmozcの設定を起動してください。もしない場合は、aptなどで簡単に入ると思います。

下の画像のように、キー設定->キー設定の選択をカスタムにして、編集を選択してください。

f:id:Kotaro7750:20200331105236p:plain
カスタムにする

すると、以下の画像のような画面が出てくるので、直接入力モードのIMEを有効化に好きなバインドにしてください。先程のバインドとは異なることに注意してください。ここではこれをバインドBと呼びます。(画像の例ではShift Space)

f:id:Kotaro7750:20200331105231p:plain
バインドBを設定する

以上で設定は終わりです。このようにすると、バインドAで日本語入力と半角入力をトグルすることができます。なお、バインドBはログインした最初のときに日本語入力がオフになっている場合があるのでそのときに使います。

つまり流れとしては、

  1. ログインする
  2. 日本語入力をバインドBでオンにする
  3. 以降はバインドAでトグルする

となります。

注意点

バインドは、システム全体のバインドと被っていると動きません。

おまけ macみたいにIMEをオンオフする

トグルではなく、macのように、これを押したら必ず日本語入力、半角入力になるとしたい場合は、下の画像のように、fcitxの設定の入力メソッドをオンに、オフにというところを設定してやるとそのようになります。

f:id:Kotaro7750:20200331105240p:plain
mac式の設定

私は、トグルに慣れてしまったので設定していません。

おまけ vimでの設定

日本人Vimmerなら、日本語入力のままノーマルモードに入ってしまってイライラしたことがあると思います。

以下のように設定することで、日本語入力のままノーマルモードに入ったときに、自動で半角モードに切り替えることができます。

使用しているメソッドの確認

fcitxをインストールすると、fcitx-remoteというコマンドラインツールが自動的に入るのですが、これはコマンド経由でIMEを切り替えられるというものです。つまり、インサートモードを抜けるときにこのコマンドを適切に発火してやれば所望の動作が実現できます。

$ cat ~/.config/fcitx/profile | sed 's/,/\n/g' | grep True

# True False
# True False
#WidePunc=True
# True False
EnabledIMList=mozc:True
fcitx-keyboard-us:True
# True False
#PreeditStringInClientWindow=True

mozc,fcitx-keyboard-usという2つを使っていることがわかりました。つまり、以下のコマンドでコマンドラインで半角入力にすることができます。

# 半角
fcitx-remote -s fctix-keyboard-us
# 日本語
fcitx-remote -s mozc

vimscriptでの設定

fcitx-remoteコマンド単体だと、現在のIMEの状態(日本語入力だと1のinactive)を返すので、インサートモードを抜けたときに日本語入力だった場合のみ半角入力に戻しています。

if has('unix')
  autocmd InsertLeave * :call OffIME()
endif

function! OffIME() abort
  " fcitx-remote returns 1 if current method is mozc
  let l:fcitx_status = system('fcitx-remote')
  if fcitx_status == 1
    call system('fcitx-remote -s fcitx-keyboard-us')
  endif
endfunction



以上の内容はhttps://kotaro7750.hatenablog.com/entry/eng_key_ubuntuより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14