前言
发现在Ubuntu系统中,使用JetBrains 系列的IDE工具都会出现输入法卡在左下角不能跟随光标的问题。墙出去看了下,发现很多码友也出现了这种问题,都是历史遗留问题,而JetBrains官方一直没有解决这个bug。
要解决这个问题,需要修改JetBrainsRuntime
的源码。由于每个人环境不一样,笔者这大致总结下解决问题的过程,便于坑友们快速解决问题哈~
问题预览
笔者环境
- 系统:Ubuntu 21.10(Linux实体机)
- 内存:40GB
- 输入法:搜狗输入法 2.4.0.3469 ( sogoupinyin_2.4.0.3469_amd64.deb )
- 键盘输入法系统:fcitx
适用于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
其它的大致如上了,还是不懂可以在文章下面留言
修复预览
参考文献
原文地址
JetBrains Linux系统中 中文 输入法 光标不能跟随 问题修复 fcitx框架输入法