ujimushi(@旧sradjp(15364))の日記

旧スラドの日記の引越先です

ubuntu 24.04とibus-mozcとキーボードのus配列

この記事を書くきっかけ

きっかけとなったのは, Ubuntu24.04でFcitxを使ってUS配列キーボードで日本語入力する方法! というとあるblogの記事です。

ふむふむ。

  1. Ubuntu日本語配列のキーボードで運用していたけどUS配列のキーボードに買い替えた
  2. US配列なのにUbuntuのセットアップ時に日本語キーボードでセットアップしてしまった

というケースを想定しているらしい。まぁこの辺はいい。

しかし,Ubuntuは標準でインプットメソッドにはIbusを使用しており, Ibus-mozcは日本語配列でしか日本語入力ができないので,標準機能ではどうしようもありません。

はあ?

そこでそんな環境にも対応したFcitx-mozcを導入し,US配列を使いながら日本語入力をしよう,というわけです。

いやいや。私us配列でibus-mozc使っているし。日本語キーボードでセットアップしたことはないけど, 多分設定できるはずやし。

個人的にすごく不快。こういう間違った内容がGoogle検索の上位に来るのはどうでもいいけど個人的にすごく不快。

そう。ただ不快だったからこの内容を書こうと思いました。100% 個人的感情からですが後悔はしていない。 色々実際にやってみたり調べたことをここに記します。

日本語でubuntu24.04をインストール

まずは試す環境のインストール。VirtualBox上にubuntu24.04を日本語キーボード・日本語ロケールでインストールしました。 手順は省略。

ここではus配列のキーボードは使えない状態です。Shift+2"が表示される状態。

解決方法の推定

実は日本語キーボードでのセットアップをしたことが無かったので,初体験。 ここで解決できると推定した手順は次の通り。

  1. 英語のロケールをインストールする
  2. 画面表示は日本語を1番優先にする
  3. キーボードに「英語」を追加する
  4. 英語を一番上(優先順位を日本語より上)にすればOKか?

軽くお試し

英語のロケールのインストール

まずはインストール直後,日本語日本語(Mozc)のみです。 後で調査したところ,日本語はJIS配列のキーボード,日本語(Mozc)ibus-mozcのインプットメソッドです。

当初の目論見通り,設定のシステム→地域と言語→システム→Manage Installed Languages から英語をインストールします。

次のようにリソースは日本語のみが表示されています。

「言語のインストールと削除」から英語をインストールします。

メニューとウィンドウの言語に「英語」が追加されていることが分かります。 そして,一番上に「日本語」,その次に「英語」となるように並べ替えます。

これで,万が一日本語リソースが壊れても英語で表示される保険的な意味合いもあります。

次に,設定→キーボード→入力ソースから英語キーボード配列を追加します。

「入力ソースの追加」を押して次のように,「英語(米国)」→「英語(us)」を追加します。

そして設定後の画面です。

では,早速試してみます。

入力を「英語」→「日本語(Mozc)」と切替えてから入力するとUS配列での入力, 「日本語」→「日本語(Mozc)」と切替えてから入力するとJIS配列での入力が実現していることが分かります。

画面の下にキー入力が表示されていますが,これはVirtualBoxのホスト側で Show Me The Keyを動かしていてそれを表示しています。 そのため,JIS配列に切り替えてもホスト側のキー配列は変更していないので, ゲスト側で"と認識されていてもホスト側のアプリなので@で表示されています。

このように,英語キーボードで日本語入力するには 「英語リソース追加→US配列のキーボード追加」がミソとなることが分かりました。

なお,ibus-mozcはibusの機能により直前に何のキーボード配列だったかを覚えているのようで, OSの再起動後も直前のキーボードの状態を保持していることを別途確認しました。

メニューの選択だけでキーボード配列が切り替えられるのは便利だと思います。

ibus-mozcでのus配列でのIME有効・無効の切替えについて

次に,ibus-mozcでIME有効・無効の切替えについて説明します。

Windowsにおいては,US配列のキーボードでのIME有効・無効の切替えは特に設定しなくても,Alt+`で可能です。

ただし,ibus-mozcでは,Mozc側の設定でこのキーを個別に設定する必要があります。なお,JIS配列の場合は あらかじめ「半角/全角」キーが設定されているので,追加の設定は不要です。

Mozcのショートカットキーに登録できるキーバインドについては,次の特徴があります。

  • 修飾キーにAltSuperキーが使えない→実質はCtrlShiftのみ
  • アプリケーションのショートカットキーより優先度が高い

このため,アプリケーション側でよく使われるショートカットはできるだけ避ける方がベターということになります。

となると,ctrl+記号を使うことになり,Windowsに似た感じではctrl+`,有名どころだとctrl+SPACEEmacsっぽくだとctrl+\という感じでしょうか?

なお私が使っているKINESIS Advantage2だと, isoキーボードをus配列で使っているような感じ(MacBritish配列っぽい)なので,ubuntu上だと下図のような配列になっており, [< >]キーが余っています。なのでこのコンビネーションctrl+ <でMozcの直接入力との切り替えに利用しています。

残念ながらWindowsのUS配列では[\|]と同じになってしまい,あまり使い勝手が良くありません。もったいない。

なお,英語版WikiのBritish and American keyboardsの項を見ると, Linux版のUS配列との記述・図がありますね。

そして,切替えのキーボードショートカットは最低4つ必要です。その理由は,次の図が分かりやすいですかね。

大きく分けてMozcは4つの状態(モード?)があります。

  • 直接入力
  • 入力文字なし
  • 変換前入力中
  • 変換中

で,それぞれの状態に対して動作を定義すればよいということになります。

日本語キーボードの[半/全]に設定されている設定は次の図の通りです。

右上のメニューからだと,入力をMozcにしてから「ツール」→「プロパティ」を選択し,表示されるダイアログから 「一般」タブの「キー設定」→「キー設定の選択」→「編集」を押すとキー設定のダイアログが表示され,そこからカスタマイズが可能です。

日本語キーボードの[半/全]での設定は素直に「IMEを無効化」「IMEを有効化」に設定されていますが, 次の設定画面のような,「ひらがなに入力切替」「キャンセル後 IME を無効化」という設定も可能です。

ほとんどのアプリでは設定後すぐに反映されますが,Gnomeのデスクトップ等は反映されないことがあります。 最悪再起動が必要と思います。

なお,ネット上の記事ではibus-mozcのIMEの有効・無効切替をGnome側のインプットメソッドの切替でやっているものがありますが, やや大げさかな?と思います。

USとJISのキーボード配列切替えには役立つでしょうが,それぐらい大げさな変更だということです。 ibus-mozc内で切替える方がコストが下がるでしょう。

ibus-mozcの最新版のビルドとインストール(ubuntu-24.04向け)

ここでは,ubuntu-24.04の方向けのibus-mozcの最新版のビルドとインストール方法を紹介します。 ただし,aptでインストールしたバイナリを壊して上書きするので,以下に書いた内容はリスクが自分で取れる方のみお勧めするものです。

と言ってもmozcのgithubサイトのDockerでのビルド方法 のドキュメント通りの内容になります。

ここ最近,dockerによるビルドの標準環境がubuntuの24.04になったようです。 そのため,バイナリを自分の環境に上書きすればibus-mozcの最新版を利用することが可能です。

Dockerでのビルド手順

公式サイトのドキュメントでは,

curl -O https://raw.githubusercontent.com/google/mozc/master/docker/ubuntu24.04/Dockerfile

となっていますが,まず24.04用のDockerfileをダウンロードします。

次にビルドします。私の場合,sudoが必要ですが皆さんは多分一般ユーザーで実行できるのではないかと思います。

sudo docker build --rm --tag mozc_ubuntu24.04 .

イメージからコンテナを作ります。

sudo docker create --interactive --tty --name mozc_build mozc_ubuntu24.04

コンテナの開始,ビルドは次のように実行します。

sudo docker start mozc_build
sudo docker exec mozc_build bazel build package --config oss_linux --config release_build

これで,エラーが出てなさそうならビルド成功です。ビルドしたものはzipでひとまとめにされているので, ダウンロードします。

sudo docker cp mozc_build:/home/mozc_builder/work/mozc/src/bazel-bin/unix/mozc.zip .

さて,このmozc.zip/以下のibus-mozcに関係するファイルをアーカイブにしたものなので,/基準で unzipすれば最新モジュールに入れ替わります。

    sudo unzip  mozc.zip -d /

ただ,上書きするかどうか一々尋ねてくるので,sudo unzip -o mozc.zip -d / とでもする方がいいかもしれません。

上書きした後はOSごと再起動した方がいいかもしれません。

最新版ibus-mozc,Wayland上でmozc特有のメニューを表示する方法

詳しくは,mozcのgithub設定関係のドキュメントを見て下さい。

ibus-mozcの設定は,最近のubuntuを新規にインストールした場合は~/.config/mozc, 昔のubuntuからアップデートした場合(~/.mozcフォルダが存在する場合)は~/.mozcに設定ファイル等があります。 (ドキュメント)

そのフォルダの中にibus_config.textprotoという設定ファイルがあって,その設定をいじることで動作を変更することができます。

最新版では次のように設定することで,ibus標準ではなくMozcの変換候補メニューに変えることができます。 用例等も表示されるようになります。

# This settings are available in 2.29.5205 and later versions
mozc_renderer {
  enabled : True
  compatible_wayland_desktop_names : ["GNOME"]
}

ただし,設定ファイル変更後に

ibus write-cache
ibus restart

等の処理が必要です。公式のドキュメントを参照下さい。

用例の表示例は次の通りです。

ただ,私のように漢直を使っている場合,ほとんどがサジェスト表示になるのであまり関係ないという感じです。 mozc独自の変換候補メニュ一表示ではサジェストリストの番号が表示されないので,個人的にはあまりMozcのメニューにこだわるところはありません。

さいごに

ibus-mozcについて色々試してみたところをまとめてみました。

ubuntu環境の日本語入力の標準はibus-mozcであると思うのですが, 誤解したままfcitx5をインストールし,さらにそこでドツボにはまっているのが散見されるのは如何なものかとも思う今日この頃です。