概要
Linux上において親指シフトを行う際oyainputを利用している。
ただ、fcitx-mozcではうまく行くものの、fcitx5-mozcでは手動では切り替えできるが、日本語切替時に自動でoyainputがフックしなかった。
fcitx5-mozcにて起動できるにようにコードに改良を加えた。
追記 R06.10.11 wayland上のfcitx5においても入力を確認できた。
環境
- Linux mint 22
- fcitx5-mozc
- oyainput
- gnome on wayland
改良点
ソース上において、"fcitx-remote"の部分を"fcitx5-remote"と変更した。
修正ファイルは2箇所である。
- oyainput.c (269行)
- functions.c(113行)
if (get_imtype() == 1 &&
0 != system("type fcitx5-remote > /dev/null")) {
die("error: fcitx is not installed!");
char cmd[BUFSIZE];
if (snprintf(cmd, BUFSIZE, "HOME=%s fcitx5-remote", home_dir) > BUFSIZE) {
die("error: Username is too long.");
}
再コンパイル後、インストールするとoyainputが起動でき、webブラウザ、端末等で親指シフトが入力できた。
また、wayland上のgnomeにおいてもfcitx5を用いて親指シフトが有効になった。
考察
fcitx-remoteを監視してoyainputがフックをかけるようだが、fcitx5-remoteへと変更されたことによりフックがうまく動作しないようであった。
ただ、手動モードでの切り替えでは親指シフト入力はできた。oyainputの挙動そのものは問題ないよだった。
問題点
- fcitx5の挙動によりたまにうまくフックがかからない場合がある。その場合はfcitx5のトレイアイコンにて再起動すると元に戻ることが多いい。
- それぞれのアプリ上でfcitx5が起動しているためアプリの立ち上げ時はfcitx5がONの状態になっているようだ。ここらへんはoyainputの各自の環境設定に依存するかもしれない。
感想
親指シフトを多用する自分としてはこのソフトが非常にありがたいので使い続けたく改良してみた。現状ではfcitx-mozcがアプリ上で動作するものも多い。だが、徐々にfcitx5が主流になって行きそうで踏み切った。
当初get_imtype()関数での挙動を疑っていたが、エラーを見るとremote側の問題であった。
###リンク
oayinput