LoginSignup
1
1

fcitx5におけるoyainput

Posted at

概要

Linux上において親指シフトを行う際oyainputを利用している。
ただ、fcitx-mozcではうまく行くものの、fcitx5-mozcでは手動では切り替えできるが、日本語切替時に自動でoyainputがフックしなかった。
fcitx5-mozcにて起動できるにようにコードに改良を加えた。

環境

  • Linux mint 21
  • fcitx5-mozc
  • oyainput

改良点

ソース上において、"fcitx-remote"の部分を"fcitx5-remote"と変更した。
修正ファイルは2箇所である。

  • oyainput.c (269行)
  • functions.c(113行)
oyainput.c
if (get_imtype() == 1 &&
		0 != system("type fcitx5-remote > /dev/null")) {
		die("error: fcitx is not installed!");
functions.c
char cmd[BUFSIZE];
	if (snprintf(cmd, BUFSIZE, "HOME=%s fcitx5-remote", home_dir) > BUFSIZE) {
		die("error: Username is too long.");
	}

再コンパイル後、インストールするとoyainputが起動でき、webブラウザ、端末等で親指シフトが入力できた。

考察

fcitx-remoteを監視してoyainputがフックをかけるようだが、fcitx5-remoteへと変更されたことによりフックがうまく動作しないようであった。
ただ、手動モードでの切り替えでは親指シフト入力はできた。oyainputの挙動そのものは問題ないよだった。

問題点

  • fcitx5の挙動によりたまにうまくフックがかからない場合がある。その場合はfcitx5のトレイアイコンにて再起動すると元に戻ることが多いい。
  • それぞれのアプリ上でfcitx5が起動しているためアプリの立ち上げ時はfcitx5がONの状態になっているようだ。ここらへんはoyainputの各自の環境設定に依存するかもしれない。

感想

親指シフトを多用する自分としてはこのソフトが非常にありがたいので使い続けたく改良してみた。現状ではfcitx-mozcがアプリ上で動作するものも多い。だが、徐々にfcitx5が主流になって行きそうで踏み切った。
当初get_imtype()関数での挙動を疑っていたが、エラーを見るとremote側の問題であった。

###リンク
oayinput

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1