Intellij IDEA字体在linux中平滑
我在Arch Linux上使用IntelliJ IDEA和KDE。 OpenJDK版本是1.7.0_40。
整个IDE字体(包括代码编辑器)在没有任何抗锯齿和字体平滑的情况下呈现。 我将idea.properties
文件中的idea.use.default.antialiasing.in.editor
设置为true
,并添加_JAVA_OPTIONS
变量-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
没有任何效果。
还有什么我可以尝试启用字体平滑?
看看这里 。 我记得在运行IDEA时遇到了同样的问题,但是在添加wiki中提到的行后,问题就消失了。
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting'
setting
可能是
-
off
或false
或default
– 无抗锯齿 -
on
– 完全抗锯齿 -
gasp
– 使用字体的内置提示说明 -
lcd
或lcd_hrgb
– 针对许多流行的LCD显示器进行了抗锯齿处理 -
lcd_hbgr
– 替代LCD监视器设置 -
lcd_vrgb
– 替代LCD监视器设置 -
lcd_vbgr
– 替代LCD监视器设置
我在这里找到了另一个解决方案。 它适用于Oracle JDK,但它可能有助于人们绊倒这个问题。 你必须编辑.vmoptions
文件(在我的例子中,它来自/bin
的idea64.vmoptions
)。 添加以下三行:
-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dsun.java2d.xrender=true
如果遇到问题,可以删除最后一行。 您可以为第一个设置测试不同的版本(从上面的post中获取选项)。
此外,您可以编辑正在使用的字体并清除提示(post的作者建议使用FontForge)。 我没有发现这是必要的。
这些丑陋的东西都不再需要了。 从Linux下载最新的IntelliJ(2016.1以后版本)。 它包括一个修改过的JRE,修复了字体问题。 要修复Android Studio,请创建一个指向IntelliJ jre的符号链接:
ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre
或者,只需以root身份打开文件管理器(假设您的IDE安装在/ opt目录或其他系统文件夹中)并创建IntelliJ jre的快捷方式并将其移至Android Studio安装文件夹,然后将其重命名为“jre”。 这适用于最新的android studio 2.0,但它也适用于早期版本。
Android Studio现在附带修改后的JRE,因此不再需要符号链接,只需下载最新版本即可。
如前所述,这是JDK中的一个错误。 好消息是,有一个OpenJDK 补丁可以极大地改善Linux上IntelliJ的字体渲染,并使字体质量与我在Mac上看到的一致。
(要清楚,这比通过调整idea.properties
可以获得的要idea.properties
。)
要安装它,请使用以下包:
Ubuntu PPA https://launchpad.net/~no1wantdthisname/+archive/openjdk-fontfix
Arch AUR: https : //aur.archlinux.org/packages/jre7-openjdk-headless-fontfix/
(我运行Ubuntu / Elementary OS,所以我不能亲自担保这个)
它不适用于OpenJDK,即使你选择的是_JAVA_OPTIONS
,所以用sudo pacman -Rndd jdk7-openjdk jre7-openjdk jre7-openjdk-headless java-rhino
删除它并从Aur安装Oracle JDK 8。 安装后,您必须注销/登录才能更新您的java环境变量(fe JAVA_HOME
)。 瞧,字体渲染很好。
请享用!
PS: pacman -Rndd
删除没有依赖,但配置文件,扩展: pacman --remove --nosave --nodeps --nodeps
。
这是OpenJDK中的已知错误。 我认为任何调整都不会为你解决这个问题,它可能会让它变得更好,但OpenJDK中的字体渲染会被破坏。
最无痛的修复恕我直言,是去AUR并安装jdk7-compat ,它被设计为在你的普通JDK旁边运行。
如果你从未使用过AUR,请不要担心,它真的很直接。 基本上,你做的是
- 确保你安装了
pacman -S base-devel
- 从我上面链接的AUR页面下载tar,解压缩它。
- 在解压缩到的文件夹中运行’makepkg -di’
并完成了。 现在,编辑/usr/share/intellijidea-ce/bin/idea.sh并更改执行程序的行(它在文件的底部),使它看起来像这样
eval "/opt/java7/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
这将使IntelliJ在ORACLE JVM而不是OpenJDK中运行,它将字体问题全部修复在一起。
在/usr/share/intellijidea-ce/bin/idea.sh:
编辑此行:
ALL_JVM_ARGS="$VM_OPTIONS $COMMON_JVM_ARGS $IDE_JVM_ARGS $AGENT $REQUIRED_JVM_ARGS"
并使它像这样:
ALL_JVM_ARGS="$VM_OPTIONS $COMMON_JVM_ARGS $IDE_JVM_ARGS $AGENT $REQUIRED_JVM_ARGS -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true"
这适用于IntelliJ IDEA 2018
最好的解决方案是使用随附的Java Runtime下载该版本。 此版本在自定义JRE上运行,该JRE经过修补以更好地处理Linux上的字体。
IntelliJ IDEA为Linux OS提供了两个版本,一个版本具有嵌入式JRE(这是默认下载),而另一个版本没有一个版本,具体取决于用户自己的Java安装。
如果您不想重新安装IntelliJ,还有另一种解决方案:
- 下载并解压缩此JRE
- 切换到它
- 将
-Djava2d.font.loadFontConf=false
添加到位于intellij_installation_folder / bin /下的idea.vmoptions和idea64.vmoptions文件中
NB当我尝试它们时,第一个解决方案的结果看起来更漂亮。
就我的测试而言,这里提到的@CorneliuDascălu解决方案不再适用于IntelliJ 2018。