tabby icon indicating copy to clipboard operation
tabby copied to clipboard

can not input Chinese

Open GY707 opened this issue 7 months ago • 10 comments

Describe the bug IntelliJ IDEA CE version 2025.1.1.1 The input box can not input Chinese, but it can be copied The old version of IntelliJ IDEA CE does not have this issue, such as 2024.3.1.1

Information about your version IntelliJ IDEA 2025.1.1.1 (Community Edition) Tabby 1.13.0

GY707 avatar May 19 '25 08:05 GY707

我也是,一直打不上去,tabnine 正常。md

yjqiang avatar May 30 '25 02:05 yjqiang

me too, but can paste it

dannyxu2015 avatar May 30 '25 04:05 dannyxu2015

这么严重的 bug 你还修不修了?

yjqiang avatar Jun 18 '25 03:06 yjqiang

I have also encountered this problem, which greatly affects the user experience

TqbBoss avatar Jul 01 '25 02:07 TqbBoss

Hi, I would like to take this issue :)

ZHallen122 avatar Jul 03 '25 22:07 ZHallen122

我佛了,不修了?

yjqiang avatar Jul 23 '25 08:07 yjqiang

Can to confirm. Can't print any character except latin.

vektory79 avatar Aug 13 '25 18:08 vektory79

It seems this happens because Offscreen Rendering mode is enabled for Linux. After I changed it to false here, everything started working properly.

vektory79 avatar Aug 14 '25 17:08 vektory79

The issue lies in JCEF. When creating the browser in the Tabby plugin, setting setOffScreenRendering to true breaks keyboard input on Linux.

class ChatBrowser(private val project: Project) : JBCefBrowser(  
  createBuilder()  
    .setOffScreenRendering(  
      when {  
        SystemInfo.isWindows -> false  
        SystemInfo.isMac -> false  
        SystemInfo.isLinux -> true  
        else -> false  
      }  
    )  
    .setEnableOpenDevToolsMenuItem(true)  
)

In older versions of IntelliJ IDEA, keyboard input is completely broken. In newer versions, it's been partially fixed—but only for the English keyboard layout. All other characters fail to enter.

You could try changing the source code to:

class ChatBrowser(private val project: Project) : JBCefBrowser(  
  createBuilder()  
    .setOffScreenRendering(false)  
    .setEnableOpenDevToolsMenuItem(true)  
)

This fully fixes the issue in older IDE versions, but no longer works in recent versions. It turns out that setOffScreenRendering(false) is ignored if the property jcef.remote.enabled is turned on—which has become the default behavior in newer IDE releases. While this improves JCEF's stability, it breaks keyboard input for non-English layouts.

Therefore, to properly support other keyboard layouts in the Tabby chat, you need to explicitly set the IDE's system property jcef.remote.enabled to false.

vektory79 avatar Aug 15 '25 08:08 vektory79

唉,转战vs code了,idea是好,但也不是非它不可。

comeonlovefree-2077 avatar Oct 31 '25 00:10 comeonlovefree-2077