Opened 3 years ago
Last modified 16 months ago
#2359 assigned task
switch input method to ibus?
Reported by: | Antoine Martin | Owned by: | Antoine Martin |
---|---|---|---|
Priority: | major | Milestone: | 5.0 |
Component: | server | Version: | 2.5.x |
Keywords: | Cc: |
Description
Looks like "xim" is being deprecated fast.
Worse, this leaves some applications unusable: eclipse via xpra problem.
Change History (7)
comment:1 Changed 3 years ago by
Status: | new → assigned |
---|
comment:2 Changed 3 years ago by
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:
comment:3 Changed 3 years ago by
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
.
comment:5 Changed 2 years ago by
Milestone: | 4.0 → 5.0 |
---|
comment:7 Changed 16 months ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2359
Note: See
TracTickets for help on using
tickets.
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?