追記 (2021-12-28)
最近のmozcは起動時の入力モードがデフォルトで直接入力になったみたい。
2021年12月26日にAURのmozcがアップデートされたから勢いでアップデートかけたんだけと、ibus-mozcの新しいバージョンと依存しているようで、すでにibus-mozcがインストールされているとインストールできない。なので、一旦mozcとibus-mozcをアンインストールして、新しいバージョンのmozcとibus-mozcを再インストールしてみたらうまく行った。
$ yay -R mozc ibus-mozc # 一旦アンインストール $ yay -S mozc ibus-mozc # 新しいバージョンをインストール
以前の記事でもmozcの起動時の入力モードを直接入力にしていると書いたが、xdotoolはもちろんx11でしか使えない。なのでwaylandで起動してしまうと、以前の記事のようには入力モードを切り替えられないのが問題だった。
数日前にgdmがgdm-41.0.1-x86_64へアップデートされたが、起動時のセッションがx11を選択しているはずなのにwaylandになってしまうことが多発した。ここで上に書いた問題が発生してしまい、起動時の文字入力が不便に立ってしまった。幸いにもgdm-40.1-2-x86_64のキャッシュがあったのでsudo pacman -U /var/cache/pacman/pkg/gdm-40.1-2-x86_64.pkg.tar.zst
でダウングレードし、/etc/pacman.confにIgnorePkg = gdm
を追記してことなきを得たが、次回のアップデート以降にも同じ問題が起こらないとは限らない。そのために、xdotoolに頼らない方法でmozcの起動時の入力モードを直接入力にできないか調べた。
kActivatedOnLaunch
Is there a way to set hiragana as default? · Issue #381 · google/mozcを見てみると、src/unix/ibus/property_handler.cc内のkActivatedOnLaunchという変数が起動時の入力モードを決定しているようだ。kActivatedOnLaunchがtrueだとひらがな入力で、falseだと直接入力になるようだ。なのでmozcのインストール時にkActivatedOnLaunchをfalseにしてやればいい。
PKGBUILDをいじる
普通にaurからインストールするとkActivatedOnLaunchがtrueになってしまうので、インストール時の処理にsrc/unix/ibus/property_handler.ccのconst bool kActivatedOnLaunch = true;
をconst bool kActivatedOnLaunch = false;
に変える処理を紛れ込ませれば良い。
まずはPKGBUILDをダウンロードしてくる。
$ mkdir -p src/github.com $ cd src/github.com $ yay -G mozc
編集前のPKGBUILDは以下のようになってるはず。
# 省略 build() { msg2 '=====================================================' msg2 ' *** Build Info ***' msg2 ' The following package files will be generated:' for _p in ${pkgname[@]} do msg2 " * ${_p}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}" done msg2 '=====================================================' PATH="${srcdir}:${PATH}" cd "${srcdir}/${pkgbase}/src" msg "Starting make..." # 省略
なので、PKGBUILDを以下のように編集する。
# 省略 build() { msg2 '=====================================================' msg2 ' *** Build Info ***' msg2 ' The following package files will be generated:' for _p in ${pkgname[@]} do msg2 " * ${_p}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}" done msg2 '=====================================================' PATH="${srcdir}:${PATH}" cd "${srcdir}/${pkgbase}/src" sed -i -e 's/const\sbool\skActivatedOnLaunch\s=\strue;/const bool kActivatedOnLaunch = false;/g' $(find . -name property_handler.cc) msg "Starting make..." # 省略
編集前と比較すると、cd "${srcdir}/${pkgbase}/src"
とmsg "Starting make..."
の間にsed -i -e 's/const\sbool\skActivatedOnLaunch\s=\strue;/const bool kActivatedOnLaunch = false;/g' $(find . -name property_handler.cc)
を追記している。こうすることでmozcのビルド前にkActivatedOnLaunchをfalseに変更できる。
編集したらmakepkg -si
でインストールする。インストールした後にログアウトなり再起動なりすれば起動時に入力モードが直接入力になっているのが確認できるはずだ。
これでxdotoolに頼らなくても起動時の文字入力がスムーズにできる。
おまけ: IMEを変換キーと無変換キーで有効/無効にする
mozcのキー設定に以下の設定を入れればok
モード | 入力キー | コマンド |
---|---|---|
変換前入力中 | Henkan | IMEを有効化 |
変換中 | Henkan | IMEを有効化 |
直接入力 | Henkan | IMEを有効化 |
入力文字なし | Henkan | IMEを有効化 |
変換前入力中 | Muhenkan | IMEを無効化 |
変換中 | Muhenkan | IMEを無効化 |
直接入力 | Muhenkan | IMEを無効化 |
入力文字なし | Muhenkan | IMEを無効化 |