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

switch input method to ibus? #2359

Closed
totaam opened this issue Jul 19, 2019 · 5 comments
Closed

switch input method to ibus? #2359

totaam opened this issue Jul 19, 2019 · 5 comments
Milestone

Comments

@totaam
Copy link
Collaborator

totaam commented Jul 19, 2019

Looks like "xim" is being deprecated fast.
Worse, this leaves some applications unusable: eclipse via xpra problem.

@totaam
Copy link
Collaborator Author

totaam commented Jul 23, 2019

There's a note in the configure_imsettings_env function:
the default: set DISABLE_IMSETTINGS=1, fallback to xim, that's because the 'ibus' 'immodule' breaks keyboard handling unless its daemon is also running - and we don't know if it is..

So it looks like ibus has its own problems... maybe those have been fixed? Or maybe we can figure out if the daemon is running somehow? Or start it ourselves if it is not?

@totaam
Copy link
Collaborator Author

totaam commented Aug 5, 2019

On the plus side, I can switch the keyboard layout using the systray tool.
Problems:

  • I'm not sure how to test this
  • the systray gets too many clicks (annoying appindicator API strikes again)
  • needs testing with win32 and macos
  • we'll need a new configuration option to run ibus-daemon --xim -v
  • the default shortcut for changing the layout is intercepted by gnome for its own ibus

The only useful documentation that I could find:

@totaam
Copy link
Collaborator Author

totaam commented Aug 6, 2019

I don't see anything wrong with the way we handle the tray clicks:

2019-08-06 10:34:06,273 activate_menu(<Gtk.StatusIcon object at 0x7f774692f780 (GtkStatusIcon at 0x55fff9bca830)>) modifiers_mask=<flags GDK_MOD2_MASK of type Gdk.ModifierType>
2019-08-06 10:34:06,273 handle_click(1, 0)
2019-08-06 10:34:06,273 may_guess() GUESS_GEOMETRY=False, current guess=None
2019-08-06 10:34:06,273 tray_click(1, 1, 0) tray=ClientTray(3:IBus Panel)
2019-08-06 10:34:06,273 button_packet=['button-action', 3, 1, 1, (1781, 21), ['mod2']]
2019-08-06 10:34:06,274 GTKStatusIconTray.get_geometry() <Gtk.StatusIcon object at 0x7f774692f780 (GtkStatusIcon at 0x55fff9bca830)>.get_geometry()=(True, screen=<GdkX11.X11Screen object at 0x7f7746856b40 (GdkX11Screen at 0x55fff88a4050)>, area=<Gdk.Rectangle object at 0x7f774685c360 (GdkRectangle at 0x55fff8971d00)>, orientation=<enum GTK_ORIENTATION_HORIZONTAL of type Gtk.Orientation>)
2019-08-06 10:34:06,274 GTKStatusIconTray.get_geometry() geometry area rectangle=(1771, 5, 24, 24)
2019-08-06 10:34:06,274 ClientTray(3:IBus Panel).reconfigure(False) geometry=(1771, 5, 24, 24)
2019-08-06 10:34:06,274 tray_click(1, 0, 0) tray=ClientTray(3:IBus Panel)
2019-08-06 10:34:06,275 button_packet=['button-action', 3, 1, 0, (1781, 21), ['mod2']]
2019-08-06 10:34:06,275 GTKStatusIconTray.get_geometry() <Gtk.StatusIcon object at 0x7f774692f780 (GtkStatusIcon at 0x55fff9bca830)>.get_geometry()=(True, screen=<GdkX11.X11Screen object at 0x7f7746856aa0 (GdkX11Screen at 0x55fff88a4050)>, area=<Gdk.Rectangle object at 0x7f774685c280 (GdkRectangle at 0x55fff8971d00)>, orientation=<enum GTK_ORIENTATION_HORIZONTAL of type Gtk.Orientation>)
2019-08-06 10:34:06,275 GTKStatusIconTray.get_geometry() geometry area rectangle=(1771, 5, 24, 24)
2019-08-06 10:34:06,275 ClientTray(3:IBus Panel).reconfigure(False) geometry=(1771, 5, 24, 24)

The GTKStatusIconTray backend receives the activate_menu event and fires a button press + release.
So we would have to run without the panel: ibus-daemon --xim -v -r --panel=disable.

@totaam
Copy link
Collaborator Author

totaam commented Oct 15, 2020

#2900 is a duplicate of this bug.

@totaam
Copy link
Collaborator Author

totaam commented Jun 26, 2021

Anyone wanting to revert to pre-4.3 behaviour can use: --input-method=xim

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

No branches or pull requests

1 participant