Intellij IDEA字体在linux中平滑

时间:2013-06-27 15:13:27

标签: intellij-idea openjdk font-smoothing

我在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中,没有任何效果。

我还可以尝试启用字体平滑吗?

8 个答案:

答案 0 :(得分:23)

Take a look here。我记得在运行IDEA时遇到了同样的问题,但在添加了wiki中提到的行后,问题就消失了。

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting' setting可能在哪里

  • offfalsedefault - 无抗锯齿
  • on - 完全消除锯齿
  • gasp - 使用字体的内置提示说明
  • lcdlcd_hrgb - 针对许多流行的液晶显示器进行了抗锯齿处理
  • lcd_hbgr - 替代LCD监视器设置
  • lcd_vrgb - 替代LCD监视器设置
  • lcd_vbgr - 替代LCD监视器设置

答案 1 :(得分:16)

我找到了另一个解决方案here。 它适用于Oracle JDK,但它可能有助于人们绊倒这个问题。您必须编辑.vmoptions文件(在我的情况下,idea64.vmoptions来自/bin)。添加以下三行:

-Dawt.useSystemAAFontSettings=on
-Dswing.aatext=true
-Dsun.java2d.xrender=true

如果遇到问题,可以删除最后一行。您可以为第一个设置测试不同的版本(从上面的帖子中获取选项)。

此外,您可以编辑正在使用的字体并清除提示(帖子的作者建议使用FontForge)。我没有发现这是必要的。

答案 2 :(得分:5)

不再需要这些丑陋的东西了。从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,因此不再需要符号链接,只需下载最新版本。

答案 3 :(得分:4)

如前所述,这是JDK中的一个错误。好消息是,OpenJDK有一个patch,可以极大地改善Linux上IntelliJ的字体渲染,并使字体质量与我在Mac上看到的一致。

(要明确的是,这明显优于通过调整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,所以我不能亲自担保这个)

答案 4 :(得分:3)

即使使用您选择的_JAVA_OPTIONS,它也无法使用OpenJDK,因此请使用sudo pacman -Rndd jdk7-openjdk jre7-openjdk jre7-openjdk-headless java-rhino将其删除,然后从Aur安装Oracle JDK 8。安装完成后,您必须注销/登录才能更新您的java环境变量(f.e。JAVA_HOME)。瞧,字体渲染很好。

享受!

PS:pacman -Rndd删除没有依赖项,但使用配置文件,展开:pacman --remove --nosave --nodeps --nodeps

IntelliJ Idea Community Edition 13.1.2 with Oracle JDK8 on Arch Linux

答案 5 :(得分:2)

这适用于IntelliJ IDEA 2018

最好的解决方案是下载包含Java运行时的版本。 此版本在自定义JRE上运行,该JRE已修补,可以更好地处理Linux上的字体。

IntelliJ IDEA为Linux操作系统提供了两个版本,一个版本具有嵌入式JRE(这是默认下载),而另一个版本则没有,并且取决于用户自己的Java安装。

如果您不想重新安装IntelliJ,还有另一种解决方案:

  1. 下载并解压缩this JRE
  2. Switch to it
  3. -Djava2d.font.loadFontConf=false添加到位于 intellij_installation_folder / bin /
  4. 下的 idea.vmoptions idea64.vmoptions 文件中

当我尝试它们时,第一个解决方案的结果看起来更漂亮。

就我的测试而言,这里提到的@Corneliu Dascălu解决方案在IntelliJ 2018上不再起作用

答案 6 :(得分:1)

这是OpenJDK中的已知错误。我认为任何调整都不会为你解决这个问题,它可能会让它变得更好,但OpenJDK中的字体渲染会被破坏。

最无痛的修复恕我直言,是去AUR并安装jdk7-compat,它被设计为在你的普通JDK旁边运行。

如果您从未使用过AUR,请不要担心,它真的很直接。基本上,你做的是

  1. 确保您使用pacman -S base-devel
  2. 安装了base-devel
  3. 从上面链接的AUR页面下载tar,解压缩。
  4. 在您解压缩到的文件夹中运行'makepkg -di'
  5. 并完成了。现在,编辑/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中运行,它将字体问题全部修复在一起。

答案 7 :(得分:0)

/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"