mike-fabian / ibus-table

The tables engines for IBus
http://mike-fabian.github.io/ibus-table
GNU Lesser General Public License v2.1
15 stars 5 forks source link

IBus table IMEs don't work in Firefox, Thunderbird and Skype on latest Manjaro (on Star Lite Mk IV)[BUG] #126

Closed ghost closed 2 years ago

ghost commented 2 years ago

Describe the bug Table input from ibus-table isn't working inside Firefox, Thunderbird and Skype on Manjaro, only direct input.

ibus-table version? 1.16.12

ibus version? 1.5.27

Distribution and version? Manjaro 21 (rolling)

Desktop and version? Gnome 42.4

Xorg or Wayland? Wayland

mike-fabian commented 2 years ago

I cannot reproduce that. I tried on Gnome Wayland with these program versions:

mfabian@fedora:~
$ cat /etc/fedora-release 
Fedora release 37 (Thirty Seven)
mfabian@fedora:~
$ rpm -q gnome-shell
gnome-shell-43.0-3.fc37.x86_64
mfabian@fedora:~
$ rpm -q ibus
ibus-1.5.27-3.2.fc37.x86_64
mfabian@fedora:~
$ rpm -q ibus-table
ibus-table-1.16.12-1.fc37.noarch
mfabian@fedora:~
$ rpm -q firefox
firefox-106.0.1-1.fc37.x86_64
mfabian@fedora:~
$ 

The environment variable GTK_IM_MODULE was not set, it uses Wayland input then. But when I set it to GTK_IM_MDOULE=ibus to use the Gtk input module instead of Wayland, ibus-table still works in firefox.

Screenshot

ghost commented 2 years ago

Manjaro still doesn't have Gnome 43. I guess I will wait for that and see if that solves this problem.

mike-fabian commented 2 years ago

Manjaro still doesn't have Gnome 43. I guess I will wait for that and see if that solves this problem.

I really doubt that it has anything to do with the Gnome version, Fedora had that Gnome version in the past and I didn’t see that problem.

I guess it is something else.

What happens if you start firefox with

GTK_IM_MODULE=ibus firefox

usually on should not do that on Wayland because usually one wants to use the Wayland input. Setting that environment variable forces Gtk3 programs like firefox to use the Gtk3 input module instead of the Wayland input. But it is possible that it works then.

ghost commented 2 years ago

What happens if you start firefox with

GTK_IM_MODULE=ibus firefox

usually on should not do that on Wayland because usually one wants to use the Wayland input. Setting that environment variable forces Gtk3 programs like firefox to use the Gtk3 input module instead of the Wayland input.

Yes! This works now! Also, this problem exists not only in Firefox, but Thunderbird, Skype and LibreOffice. So does this mean it's a Wayland problem? Should I just switch to xorg then?

ghost commented 2 years ago

Well, I've switched to xorg, but the problem is still there. Can't use ibus-table in Firefox and the other aforementioned programs without launching them this way:

GTK_IM_MODULE=ibus firefox

Does this make any sense?

ghost commented 2 years ago

Just checked, this problem is also present in gedit; so I believe this is an issue affecting all gtk3 apps.

ghost commented 2 years ago

This problem doesn't exist on my other laptop, where Manjaro has been installed since last year and continuously updated. However, on this Star Lite Mk IV I reinstalled Manjaro a few weeks back because of some issues (those were resolved). However, this issue appeared. I fear it might manifest itself only on clean installs of Manjaro. Perhaps because of some setting changed in a recent update?

ghost commented 2 years ago

By the way, how do I check which module gtk uses by default? I wanna make sure that my other laptop isn't using the ibus module by default. That would explain why there's no problem there.

mike-fabian commented 2 years ago

Well, I've switched to xorg, but the problem is still here. Can't use ibus-table in Firefox and the other aforementioned programs without launching them this way:

GTK_IM_MODULE=ibus firefox

Does this make any sense?

This is not only about ibus-table but all ibus input methods.

In Gnome Xorg, it used to be necessary to set GTK_IM_MODULE=ibus. But I think there is some gsettings key which has the same effect and if that key is set one does not have to set GTK_IM_MODULE=ibus. If one wants to set GTK_IM_MODULE=ibus one could do that in ~/.profile.

In Gnome Wayland, setting GTK_IM_MODULE=ibus is possible, but that forces the use of the Gtk ibus module in all gtk programs except gnome-shell. That maybe a good workaround if there are problems with the wayland input, but it also makes the input experience inconsistent because some programs then use the gtk ibus module and some programs the wayland input.

On Wayland, you can try whether setting GTK_IM_MODULE=wayland makes any difference. This should be the default on wayland if GTK_IM_MODULE is not set, but if that doesn't work somehow, maybe setting the environment variable helps.

If you use Xorg and GTK_IM_MODULE=ibus firefox makes it work for you and you do not want to start firefox always like that, then you can add

export GTK_IM_MODULE=ibus 

into your ~/.profile (Create that file if it doesn't exist. See man bash the manual page of bash for details about the bash startup files)

ghost commented 2 years ago

GTK_IM_MODULE=wayland firefox  ✔ [Parent 5218, Main Thread] WARNING: gdk_wayland_display_get_wl_display: assertion 'GDK_IS_WAYLAND_DISPLAY (display)' failed: 'glib warning', file /build/firefox/src/firefox-106.0.2/toolkit/xre/nsSigHandlers.cpp:167

(firefox:5218): Gdk-CRITICAL **: 20:05:47.775: gdk_wayland_display_get_wl_display: assertion 'GDK_IS_WAYLAND_DISPLAY (display)' failed ExceptionHandler::GenerateDump cloned child 5263 ExceptionHandler::WaitForContinueSignal waiting for continue signal... ExceptionHandler::SendContinueSignalToChild sent continue signal to child

That makes Firefox just crash altogether. No I'm not using xorg.

mike-fabian commented 2 years ago

GTK_IM_MODULE=wayland firefox  heavy_check_mark [Parent 5218, Main Thread] WARNING: gdk_wayland_display_get_wl_display: assertion 'GDK_IS_WAYLAND_DISPLAY (display)' failed: 'glib warning', file /build/firefox/src/firefox-106.0.2/toolkit/xre/nsSigHandlers.cpp:167

(firefox:5218): Gdk-CRITICAL **: 20:05:47.775: gdk_wayland_display_get_wl_display: assertion 'GDK_IS_WAYLAND_DISPLAY (display)' failed ExceptionHandler::GenerateDump cloned child 5263 ExceptionHandler::WaitForContinueSignal waiting for continue signal... ExceptionHandler::SendContinueSignalToChild sent continue signal to child

That makes Firefox just crash altogether. No I'm not using xorg.

On Fedora 37 beta with gnome 43.0, GTK_IM_MODULE=wayland firefox works. Maybe Wayland has improved since the version you have.

Overall, input on Wayland is getting better but it seems to be still more buggy than on Xorg.

ghost commented 2 years ago

Okay, I guess I will wait for Gnome 43 to make its way to Manjaro then, and we'll see. It's taking very long this time.

ghost commented 2 years ago

How can I set the variable GTK_IM_MODULE=ibus for all gtk3 apps on Wayland?

ghost commented 2 years ago

Something weird is going on. Remember how LibreOffice, gedit and basically all gtk3 apps couldn't input ibus? Well, I've just reinstalled the wayland package, and now all those apps work fine. Only Firefox, Thunderbird and Skype still have this issue.

mike-fabian commented 2 years ago

How can I set the variable GTK_IM_MODULE=ibus for all gtk3 apps on Wayland?

You can write this into your ~/.profile (Create that file if it doesn't exist):

export GTK_IM_MODULE=ibus
mike-fabian commented 2 years ago

Something weird is going on. Remember how LibreOffice, gedit and basically all gtk3 apps couldn't input ibus? Well, I've just reinstalled the wayland package, and now all those apps work fine. Only Firefox, Thunderbird and Skype still have this issue.

Then maybe there was a wayland bug?

I thought Skype was a Qt application, I am not sure though, I haven't used it for a while.

Thunderbird and firefox still need GTK_IM_MODULE=ibus on your system?

They don’t need it on my fedora 37 system, neither on Gnome Wayland nor on Gnome Xorg,

ghost commented 2 years ago

Skype is an Electron app, I believe. May be mistaken.

Thunderbird and firefox still need GTK_IM_MODULE=ibus on your system?

They don’t need it on my fedora 37 system, neither on Gnome Wayland nor on Gnome Xorg,

Yeah, it's weird. Every other app works fine now, but Skype, Firefox and Thunderbird still have this issue. Is there a way to set GTK_IM_MODULE=ibus just for those three apps? And what might be common about them that they would have this behavior together?

ghost commented 2 years ago

I just installed Firefox Developer edition and now ibus works fine. Fricking weird. Still doesn't work in normal Firefox.

mike-fabian commented 2 years ago

Yeah, it's weird. Every other app works fine now, but Skype, Firefox and Thunderbird still have this issue. Is there a way to set GTK_IM_MODULE=ibus just for those three apps?

If I want to start a certain program in an special way, I usually create a wrapper script in ~/bin/program.

I.e. put something like

#!/bin/sh

GTK_IM_MODULE=ibus firefox $@

into a file ~/bin/firefox, and make that file executable:

chmod 755 ~/bin/firefox

And what might be common about them that they would have this behavior together?

I don’t know.

ghost commented 2 years ago

Well, I think I'll just close this issue for now. Since it seems it only appears on my laptop and it's partially resolved.