はじめに
- macOSでの日本語切り替え同様の操作感が欲しい(次のWindowsでも同様にIMEはON/OFF別キーの操作になりそうですしUbuntuでも同じ環境で操作したい。
- Fcixの機能を利用した、
mozc
+キーボード 英語(US)
の2つの入力メソッド
切り替えではなくて、mozc
のみでの切り替えを行いたい(入力メソッド
自体の切り替えより軽い?ことを期待。入力メソッド
自体を切り替えるとたまに入力が変になる/取りこぼす気がする)
構成
- Hardware : US Keyboard Notebook
- Linux Mint 19.1 (Linux papa 4.18.0-15-generic #16~18.04.1-Ubuntu SMP Thu Feb 7 14:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux) ※ Ubuntu 18.04ベース
- Fcitx
- mozc
- 日本語入力ONを
右ALT
キー - 日本語入力OFFを
左ALT
キー
問題点
-
mozc
の入力切り替えにおいて、ALT
を利用することが出来ない(そのあたりの説明はこの辺に記載されています) - https://github.com/google/mozc/issues/395
- https://github.com/google/mozc/blob/master/src/gui/config_dialog/keybinding_editor.cc
設定方法
-
mozc
の切り替えキーの設定 -
Fcitx
からの呼び出しキーボードの設定 - Ubuntu側での キーマップ の変更
mozcの切替キーの設定
-
ALT
キー単体では特に利用してないためKatakana
を右ALT
にマッピング、Hiragana
を左ALT
にマッピングする予定です。既存の設定は重複しないように一旦消してから行います。 -
ALT
キーとしては登録できないのでUSキーボードでは存在していないキーを登録することで代替することにします。
Fcitx からの呼び出しキーボードの設定
- Fcitxでの
入力メソッド
としてはmozc
のみを設定します。よく英語キーボードを追加しているケースがありますが今回は利用しません。
Mozc
をクリックするとキーボードレイアウトが表示されます。ここでは 英語(US)
を選択します。ここで 既定の入力メソッド
は選択しないでおきます。ここで設定したキーボードレイアウトでmozcが起動します。かりにOS側で英語キーボードを選択していても、ここで日本語を選択するとmozcでの入力は日本語キーボードとして認識されます。したがってここでは 英語
に指定して置くほうが無難です。
Ubuntu側での キーマップ の変更
以下のファイルを用意します
❯❯❯ ls -lR .xkb
drwxr-xr-x 2 hideaki hideaki 4096 3月 3 22:28 keymap
drwxr-xr-x 2 hideaki hideaki 4096 3月 3 23:44 symbols
.xkb/keymap:
合計 8
-rw-r--r-- 1 hideaki hideaki 297 3月 3 22:28 myxkb
.xkb/symbols:
合計 8
-rw-r--r-- 1 hideaki hideaki 114 3月 3 23:44 myswap
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)+ctrl(swap_lwin_lctl)+terminate(ctrl_alt_bksp)+myswap(swapkeys)" };
xkb_geometry { include "pc(pc104)" };
};
partial modifier_keys
xkb_symbols "swapkeys" {
key <LALT> { [ Hiragana ] };
key <RALT> { [ Katakana ] };
};
以下のスクリプトを用意してシステムログイン時に起動させることで有効になります。
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/myxkb $DISPLAY
-
今回利用してるLinux Mintの場合にはシステム設定の
StartUp Application
へ追加します。これで起動します。起動は少しまってから行っています。 -
キーボードの値が何かを知りたい場合には
xev
で確認することが出来ます。
加筆(2021/08/13)
Gnomeの環境で、サスペンドに入るとどうしても標準の状態に戻ってしまいます。そこでシステムワイドの変更にはなってしまいますが以下を追加します。
先程つくったmyswapをシステム側のsymbolsにコピーします
sudo cp -i ~/.xkb/symbols/myswap /usr/share/X11/xkb/symbols/
/usr/share/X11/xkb/rules/evdevの最終行に以下を追加します
mysetting:keyboard-notebook = +myswap(keyboard-notebook)
以下のコマンドでGnome側に設定を反映します
gsettings set org.gnome.desktop.input-sources xkb-options "['mysetting:keyboard-notebook']"
確認
ちなみにこの状態でも ALT+xx
のショートカットは死んでいません。普通に使うことが出来ますなので影響あるのは単体の ALT
が使えないということになります。(今のところそのことで困っていません)
実際のところ Fcitxでの 入力メソッド
の切替とどの程度何が違うのかはしばらく使ってみないとわかりませんが今のところ大きな不具合はなさそうです。
- iBusの方はそもそもこういう動作ですよね?
既知の問題
- Chomeブラウザで
右ALT
を利用した際にカーソルがウインドウを外れることがある - Chomeブラウザで、Facebook入力欄に「。」の入力後Enter(送信)が出来ない状態になる。イラッとする(追記 2019/03/10)