JetBrains IDE 在 Linux系统中 中文 输入法 跟随光标问题修复

前言

发现在Ubuntu系统中,使用JetBrains 系列的IDE工具都会出现输入法卡在左下角不能跟随光标的问题。墙出去看了下,发现很多码友也出现了这种问题,都是历史遗留问题,而JetBrains官方一直没有解决这个bug。

要解决这个问题,需要修改JetBrainsRuntime的源码。由于每个人环境不一样,笔者这大致总结下解决问题的过程,便于坑友们快速解决问题哈~

问题预览

笔者环境

适用于JetBrains版本

  • IDEA
  • Goland
  • WebStorm
  • PyCharm
  • PhpStorm

解决问题方案

一、下载JetBrainsRuntime源代码

github网址:https://github.com/JetBrains/JetBrainsRuntime

下载命令:

git clone https://github.com/JetBrains/JetBrainsRuntime.git

下载源代码的时候,很可能会出现超时下载不下来的情况,可以参考github加速访问

二、下载patch

github网址:https://github.com/prehonor/myJetBrainsRuntime

下载命令:

git clone https://github.com/prehonor/myJetBrainsRuntime.git

三、安装必要的依赖

sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev openjdk-11-jdk

四、编译JDK

依次执行如下命令:

# 复制 idea.path 文件到 JetBrainsRuntime 根目录
sudo cp myJetBrainsRuntime/idea.path JetBrainsRuntime/

# 进入 刚刚 git clone JetBrainsRuntime 源码目录
cd JetBrainsRuntime

#(这一步经过测试,并不需要,用master就好)
git checkout cfc3e87f2ac27a0b8c78c729c113aa52535feff6


# 使用复制进来的补丁
git apply idea.patch



# 在 JetBrainsRuntime 根目录 执行配置
sh ./configure --disable-warnings-as-errors

# 在 JetBrainsRuntime 根目录 执行编译,这个步骤会生产 jdk
make images

# OK到这里后,我们只需要等待编译成功...

# 编译后的jdk目录在这个位置
# JetBrainsRuntime/build/linux-x86_64-normal-server-release/

五、修复步骤(重要)

走到这个流程说明快成功了,不过别高兴太早,现在还有两个步骤要走:

将编译好的JDK相关文件迁移至新的目录位置,方便后续使用

在迁移JDK相关文件前,请确保第四步已经完成了,若是不行那就重新依次执行第四步所有命令。

# 确保是否有完成第四步,可以查看这个目录下是否有这两个文件:
ll JetBrainsRuntime/build/linux-x86_64-normal-server-release/jdk

ll JetBrainsRuntime/build/linux-x86_64-normal-server-release/support

迁移JDK相关文件

# 进入 JetBrainsRuntime 编译后的jdk目录
cd JetBrainsRuntime/build/linux-x86_64-normal-server-release/


# 复制文件到指定目录,我这里复制到 /opt/Custom-JebbrainsJdk ,所以迁移命令如下:
# 创建目录
sudo mkdir /opt/Custom-JebbrainsJdk
# 复制JDK相关文件到刚刚创建的目录
sudo cp -r jdk support /opt/Custom-JebbrainsJdk

设置 JetBrains 相关 IDE 工具加载 JDK 路径

注意:在设置前,建议关闭 IDE 工具

这里笔者用Goland 2020.3 版本做示例展示,先找到Gloland安装目录,并用文本编辑打开bin目录下的 goland.sh 文件,并设置 IDE 启动加载JDK路径,见下图:

# set custom jdk to env
export GOLAND_JDK=/opt/Custom-JebbrainsJdk/jdk

其他 IDE 设置加载的 JDK路径大致同上,核心只是需要更改 sh 里的 环境变量名 即可,笔者这里在展示几个 IDE 更改示例:

PyCharm

WebStorm

其它的大致如上了,还是不懂可以在文章下面留言

修复预览

参考文献

评论

  1. Linux Chrome
    7月前
    2022-2-28 22:32:12

    有问题啊
    luo@luo-Standard-PC-Q35-ICH9-2009:~/Downloads/JetBrainsRuntime$ git apply idea.patch
    idea.patch:25: trailing whitespace.
    idea.patch:41: trailing whitespace.
    idea.patch:45: trailing whitespace.
    idea.patch:96: trailing whitespace.
    case KeyEvent.KEY_RELEASED:
    idea.patch:146: trailing whitespace.
    error: patch failed: src/java.desktop/share/classes/java/awt/Container.java:678
    error: src/java.desktop/share/classes/java/awt/Container.java: patch does not apply
    error: patch failed: src/java.desktop/share/classes/javax/swing/JTextArea.java:547
    error: src/java.desktop/share/classes/javax/swing/JTextArea.java: patch does not apply
    error: patch failed: src/java.desktop/share/classes/javax/swing/JTextField.java:409
    error: src/java.desktop/share/classes/javax/swing/JTextField.java: patch does not apply
    error: patch failed: src/java.desktop/share/classes/sun/awt/im/InputContext.java:28
    error: src/java.desktop/share/classes/sun/awt/im/InputContext.java: patch does not apply
    error: patch failed: src/java.desktop/unix/classes/sun/awt/X11/XInputMethod.java:28
    error: src/java.desktop/unix/classes/sun/awt/X11/XInputMethod.java: patch does not apply
    error: patch failed: src/java.desktop/unix/classes/sun/awt/X11InputMethod.java:33
    error: src/java.desktop/unix/classes/sun/awt/X11InputMethod.java: patch does not apply
    error: patch failed: src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c:436
    error: src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c: patch does not apply
    luo@luo-Standard-PC-Q35-ICH9-2009:~/Downloads/JetBrainsRuntime$ git apply idea.patch

    • liang 博主
      Linux Chrome
      7月前
      2022-3-08 12:40:27

      嗨~伙计,复制的补丁idea.patch有错误可以忽略,只要能make images即可

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇