Android Studio & ibus-daemon interactions

来源:互联网 发布:德州扑克源码 cocos2d 编辑:程序博客网 时间:2024/06/08 07:10

On Linux systems (where the ibus-daemon is active), there are scenarios where the IDE will stop responding to keyboard input or start inputting random characters. This document provides some workarounds for those bugs.


The bug seems to be triggered bysome missing synchronization between IBus (the server) and Xlib + AWT (the client JVM), exposed by a combination of a quick succession of key presses and the client’s slower event handling. The bug has already been reported upstream:

  • https://youtrack.jetbrains.com/issue/IDEA-78860
  • https://code.google.com/p/ibus/issues/detail?id=1770

Workaround #1: Force ibus in synchronous mode

$ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd


Do this preferably before starting Studio. This workaround was suggested inhttps://code.google.com/p/ibus/issues/detail?id=1733 for a different Java application facing the same problems.


Workaround #2: Disable IBus input in Studio

$ XMODIFIERS= ./bin/studio.sh

This will only disable input methods for Studio, not the other applications. Restarting the daemon while Studio is running (‘ibus-daemon -rd’) effectively disables the input methodsfor all other applications,and can also crash Studio's JVM with a segmentation fault.


Double-check the shortcut bindings


Run ‘ibus-setup’ and check Keyboard Shortcuts / Next input method. Make sure it’s not Ctrl+space, which is also the code completion shortcut for Studio and other IDEs. Change it to Super+space or whatever seems appropriate. Ubuntu 14.04 (Trusty) makes Super+space the default shortcut, but it could be the case that settings from a previous version were kept around.

0 0
原创粉丝点击