Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ibus と mlterm の起動順序依存問題 #30

Open
tsutsui opened this issue Apr 11, 2020 · 2 comments
Open

ibus と mlterm の起動順序依存問題 #30

tsutsui opened this issue Apr 11, 2020 · 2 comments

Comments

@tsutsui
Copy link
Owner

tsutsui commented Apr 11, 2020

以下のツイートに書いた問題
https://twitter.com/tsutsuii/status/1248828622678323201

mlterm を --enable-ibus オプション付きでビルドした場合、

  • mlterm 起動時点で ibus-daemon が動いていないと起動しない?
  • mlterm 起動後に ibus-daemon を再起動すると mlterm が応答しなくなる?

1つ目の問題は、 .xsession の以下の行

ibus-daemon --xim --daemonize --replace; sleep 2
mlterm -ls -geometry 80x25+0+30 -title $host &

において ibus-daemon--daemon オプションで起動した後、
ibus-daemon が起動し切る前に mlterm の起動まで到達してしまうと
mlterm が立ち上がらないことがある。これはマシンの速度に依存するらしい。

mlterm 側で対処してもらうことになる可能性もあるが、
sleep 2 で待つ以外に対処方法があるか考えてみる。

@tsutsui
Copy link
Owner Author

tsutsui commented Apr 11, 2020

  • mlterm 起動時点で ibus-daemon が動いていないと起動しない?

いまさらながら 20200221 版の amd64 イメージで試してみたところ、
「mlterm 起動時点で ibus-daemon が動いていないと起動しない」は偽で、
.xsessionibus-daemon の行をコメントアウトしていても mlterm は起動する。

mlterm 起動後に ibus を終了すると mlterm がハングするのは再現したが、
これは mlterm に限らず kterm もハングする。なので XIM の問題という気もする。

レポートのあった問題が再現しない(原因は ibus-daemon の起動有無ではない)ので、
対処については #3 の wpa_gui の対処 (起動箇所の ~/.jwmrc への移動) 後の発生状況を見て
改めて考える。

@tsutsui
Copy link
Owner Author

tsutsui commented Apr 26, 2020

あらきさんからのコメント:

https://twitter.com/arakiken/status/1249147710302715906

  • Teokure Live Imageのmltermは~/.mlterm/mainにinput_method=ximと設定されており、xim経由でかな漢字変換を行う設定になっているため、--enable-ibusオプションは関係ないかと思います。
  • ibusは、接続が切れるとdisconnectシグナルが飛んでくるので、コールバックの中でかな漢字変換のcontextを破棄しておく必要があります。xim経由だとその処理がなされず、無効になったcontextにアクセスしようとして固まるのかなあと考えていますが、原因はまだよく分かりません
  • -im ibusオプションで起動すると、ibus-daemonが死んでも、mltermが固まることはないように思いますので、オプションを変えていただくのが早いかもしれません。なおibus-daemonが起動する前にmlterm -im ibusが起動し、ibus-daemonに接続できなかった場合は、input methodなし(-im none)にフォールバックしてしまうので、mlcc input_method ibusのように手動でibusに切り替える必要があります。

なので、やはり「ibus を終了すると起動中の mlterm がハングする」と「ログイン時に mlterm が起動しないことがある」というのは異なる要因らしい。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant