¿Cómo arreglar el suavizado de fuentes en IntelliJ IDEA cuando se usa un DPI alto?

Respuestas:

112

Estoy en una pantalla de alta resolución y lo hice funcionar con un renderizado de fuente perfecto, para lograr esto necesitas:

  • (En Linux) Instale y use Oracle JDK (estoy usando 1.7) y no OpenJDK (también el parcheado con fontfix fue inútil para mí). Mira cómo hacer esto .

  • Edite el archivo de configuración .vmoptions que encuentre en la carpeta de instalación de Bin (por ejemplo, studio.vmoptions y para 64bit studio64.vmoptions , o WebStorm.exe.vmoptions, etc., según la versión del IDE que instaló) agregando estas líneas:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Elimine la información de sugerencias de la fuente que desea usar y seleccione la nueva fuente en las preferencias de IntelliJ IDEA (Configuración -> Editor -> Fuente);
    Si no sabe cómo hacer esto, instale FontForge y luego:

    1. Abre tu fuente en FontForge
    2. Seleccione todos los glifos mediante Ctrl+Ay borre todas las sugerencias (Sugerencias -> Borrar sugerencias)
    3. Seleccione glifos nuevamente y use Sugerencias -> Borrar instrucción
    4. Guarde la fuente con un nombre diferente (Archivo -> Generar fuentes)
    5. Instale la nueva fuente, selecciónela en IDEA

Si siguió los consejos anteriores y experimenta retrasos al desplazarse rápidamente por el código (esto a veces puede ocurrir en distribuciones de Linux con un controlador de gpu no optimizado), intente eliminar la línea
-Dsun.java2d.xrender=true
del archivo .vmoptions .

Finalmente, aquí hay una captura de pantalla del resultado:

Captura de pantalla IDE


(las fuentes utilizadas aquí son LucidaMAC para el IDE principal y Ubuntu Mono con información de sugerencias eliminada para el editor de código)

guari
fuente
44
¡Increíble! Funciona también en Windows :)) gracias: *
Bloke
1
He intentado lo anterior en mi máquina Windows con alta resolución (3200x1800). He ajustado el studio.vmoptions como se mencionó, pero todo sigue borroso. Por favor avise si es posible, ¿me gustaría que esto funcione?
Pace
10
@Pace Para eliminar fuentes borrosas, debe deshabilitar la escala de visualización para esa aplicación (haga clic con el botón derecho en su icono, seleccione Properties, vaya a la Compatibilitypestaña y verifique Disable DPI scaling on high DPI settings, para aplicaciones x64 en Win8, debe editar el indicador de la clave de registro relacionada: abra Regedit. exe, vaya HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersy agregue un valor de cadena REG_SZ cuyo nombre es la ruta completa al ejecutable de la aplicación y cuyo valor es HIGHDPIAWARE );)
guari
3
No puedo aclarar sugerencias e instrucciones sobre las fuentes en la falsificación de fuentes ... Hay errores cuando intento guardarlos después de eso ... ¿Qué estoy haciendo mal?
Mario Zderic
2
Guau. Sigue siendo útil un año después. JetBrains necesita hacer que esto sea el predeterminado o al menos realizar una detección automática. La falta de definición sin estos ajustes hace que IntelliJ se vea horrible e inutilizable.
Andrew T Finnell
4

Escribí un pequeño manual de cómo solucionar esto.

   wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
   tar -zxvf jdk-8u5-tuxjdk-b08.tar.gz
   sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
   rm jdk-8u5-tuxjdk-b08.tar.gz

Script para iniciar Intellij Idea

* solo tenga en cuenta que necesita cambiar la ubicación IDEA_HOME para su ruta de idea

#!/bin/sh

IDEA_HOME=/opt/idea
export JAVA_HOME=/usr/lib/jvm/jdk-8u5-tuxjdk-b08/
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd \
                      -Dsun.java2d.xrender=true"
export GNOME_DESKTOP_SESSION_ID=this-is-deprecated
exec $IDEA_HOME/bin/idea.sh "$@"

Más información y capturas de pantalla de mejores fuentes: http://urshulyak.com/?p=478

Yaroslav Urshulyak
fuente
Añadiendo -Dsun.java2d.xrender=truea bin/webstorm64.vmoptionsen el directorio del WebStorm era suficiente para mí.
Alicia
1
El enlace de descarga está roto. Por favor corrija
jackode
Esta respuesta asume una arquitectura de 64 bits, que puede no ser el caso
Anwar
Esto es esencialmente ejecutar código arbitrario como root: se recomienda precaución.
Thorbjørn Ravn Andersen
2

Obtuve un aspecto similar simplemente descargando la fuente Menlo y configurando el Editor Anti-aliasing en 'escala de grises' dentro de Apariencia y comportamiento> Apariencia

Este es el resultado:

Así es como se ve

Aquí hay una comparación entre las dos plataformas.

ingrese la descripción de la imagen aquí

Estoy usando una resolución más alta y un mejor hardware en el trabajo con el MAC, es por eso que las fuentes se ven un poco más brillantes, el resultado variará dependiendo de su máquina. De todos modos, vale la pena intentarlo, los cambios son fáciles de revertir

FRR
fuente
¡Funcionó parcialmente para mí! Las fuentes no son tan nítidas como la interfaz de usuario genérica de Mac, pero son lo suficientemente nítidas para que funcionen. Estoy en 13 "Mac Pro, OS X 10.11.4
Jain
¿por qué haces esto en OSX ?, deberías obtener las fuentes correctas de la caja :)
FRR
2

Ya no se necesita nada de estas cosas feas. Descargue el último IntelliJ (2016.1 en adelante) para Linux. Incluye un JRE modificado con el problema de las fuentes solucionado. Para arreglar Android Studio también, haga un enlace simbólico al IntelliJ jre:

ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre

Alternativamente, simplemente abra su administrador de archivos como root (suponiendo que sus IDEs estén instalados en el directorio / opt u otra carpeta del sistema) y cree un acceso directo al jre de IntelliJ y muévalo a la carpeta de instalación de Android Studio, luego cámbiele el nombre a 'jre'. Esto funciona para el último estudio de Android 2.0, pero también debería funcionar con versiones anteriores.

Aspirante a desarrollador
fuente
¿A qué versión te refieres? Cuando voy a Ayuda> Acerca de, veo Intellij IDEA 15.0.2yBuild #IU-143.1184
Bloke
@Bloke solo vaya al sitio y descargue la última versión de IntelliJ. Es 2016.1.1 ahora mismo, creo. Cambiaron la forma en que anuncian las nuevas versiones ahora y ahora tiene ese formato AÑO.REVISIÓN.Actualización #.
Aspirante a Dev
Oh por cierto. Lo acabo de probar. Sin Source Code Proembargo, mi fuente ahora parece demasiado audaz, pero ese es un problema menor. ¡Gracias!
Bloke
Usar el JRE empaquetado con IntelliJ marcó la diferencia para mí. Inicialmente había descargado IntelliJ sin JRE y usé mi Oracle JDK local (1.7) que resultó en fuentes incorrectas. HTH
Cierra el
2

En los nuevos JetBrains, la solución de IDE es diferente.

En la carpeta de instalación IDE simplemente cambie el nombre de la jre carpeta a otra cosa. Por ejemplo:

  1. $ cd your-path-to/WebStorm-162.2228.20/
  2. $ mv jre/ _jre/

Las versiones más nuevas usan JRE incluido en lugar de su sistema y esta versión incluida causa problemas de representación de fuentes .

Funciona bien aquí: WebStorm 2016.3.2 en Kubuntu 16.04 linux.

Captura de pantalla de WebStorm con fuente fija

ogram
fuente
Esto está enterrado en la parte inferior, pero ESTE es el verdadero culpable. Todos los de arriba están enfocados en las fuentes del Editor, pero ya tenía buenas fuentes de editor. Mi problema fue que las diversas llamadas, información sobre herramientas y diálogos modales mostraron un terrible procesamiento de fuentes sin antialiasing. Intenté todo lo anterior y nada de eso resolvió el problema, pero ocultar el paquete jre hizo el truco.
Dan
1

Si no puede borrar sugerencias con FontForge, como guari explicó en su respuesta . Use Cousine (Apache License v2.00) como fuente del editor y establezca el tamaño en 14. Probé un par de otras fuentes monoespaciadas. Sin embargo, Cousine parece tener una mejor representación que la mayoría de las otras fuentes. Mira la captura de pantalla al final

  1. Descargar la fuente: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Cree un nuevo directorio de familia de fuentes: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Extraer los archivos de fuente: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Póngalos disponibles para IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Actualice el caché de fuentes: sudo fc-cache -f -v
  6. Reinicie IntelliJ y elija Cousin como fuente de editor
  7. No olvides configurar las vmoptions como explicó guari

Captura de pantalla:

usuario1185087
fuente
Su captura de pantalla no parece que esté usando anti-aliasing.
Ztyx
Se reemplazó la captura de pantalla por una más pequeña para evitar la reducción de escala. Ahora puede ver que se usa anti-aliasing
user1185087
1

En Windows 10, tuve problemas similares. Verificando que las Disable display scaling on high DPI settingsfuentes sean más suaves pero mucho más grandes. Aquí se explica cómo hacerlo (de un comentario anterior de otro usuario):

Haga clic derecho en su icono, seleccione Properties, vaya a la Compatibilitypestaña y verifiqueDisable DPI scaling on high DPI settings

Al entrar en Windows Settingsy buscar Display Settings, hay un cuadro de diálogo con un control deslizante que dice Change the size of text, apps, and other items. Lo moví de 125% a 100% y tuve que cerrar sesión y volver a iniciar sesión. Las fuentes son pequeñas Y suaves ahora:

ingrese la descripción de la imagen aquí

Aún más, si desmarco Disable display scaling on high DPI settings, parece que sigue siendo suave.

Usuario1
fuente
¡Esta fue la única solución que funcionó para mí! ¡Gracias!
DrKaoliN
0

La respuesta aceptada no funcionó para mí, pero conseguí que todo funcionara haciendo esto:

Después de leer varios tutoriales y jugar con un montón de soluciones, he encontrado una manera que funciona perfectamente.

En primer lugar, descargue JDK 8 de Oracle y ejecute las siguientes líneas en el terminal:

cd Downloads
tar -xvf jdk-8u25-linux-x64.tar.gz
rm jdk-8u25-linux-x64.tar.gz
sudo mkdir -p /usr/lib/jvm/
sudo mv jdk1.8.0_25 /usr/lib/jvm/

Ahora descargue la corrección de fuente JDK (Cortesía de [Urshulyak Yaroslav] [2]) ejecutando lo siguiente:

cd ~/Downloads
wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
tar -xvf jdk-8u5-tuxjdk-b08.tar.gz
sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
rm jdk-8u5-tuxjdk-b08.tar.gz

Esto extraerá el zip descargado y lo moverá a / usr / lib / jvm /. Ahora ejecuta lo siguiente en la terminal:

cd ~
sudo gedit .bashrc

Luego agregue las siguientes líneas al final del archivo bashrc.

JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/
export JAVA_HOME

Guárdelo y luego gedit la idea.sh. (La ubicación de su script puede ser diferente)

gedit /home/USER/Downloads/idea/bin/idea.sh

En la parte inferior del guión, reemplace las líneas en la instrucción While Do en la parte inferior con estas dos líneas:

eval "/usr/lib/jvm/jdk-8u5-tuxjdk-b08/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
test $? -ne 88 && break

Guárdelo y luego abra IntelliJ, las fuentes deberían funcionar y utilizará Oracle JDK 8 para el desarrollo. Es probable que tenga que editar la Configuración del proyecto y configurar su JDK nuevamente, pero asegúrese de usar el JDK real y no la fuente fija.

Esta solución también funciona con CLion, Android Studio y [PyCharm.

Estas instrucciones asumen que la versión JDK era 1.8.0_25, los nombres de archivo / ruta cambiarán para futuras versiones.


fuente
¿Tendrías una idea de cómo hacer que esto funcione con PhpStorm? La parte inferior del archivo tiene este aspecto: LD_LIBRARY_PATH = "$ IDE_BIN_HOME: $ LD_LIBRARY_PATH" "$ JDK / bin / java" \ $ AGENT \ "-Xbootclasspath / a: $ IDE_HOME / lib / boot.jar" \ -classpath "$ CLASSPATH "\ $ VM_OPTIONS" -Djb.vmOptionsFile = $ VM_OPTIONS_FILES_USED "\" -XX: ErrorFile = $ HOME / java_error_in_WEBIDE_% p.log "\ -Djb.restart.code = 88 -Didea.paths.selector = WebIde90 \ WebIde90 \ \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? test $ EC -ne 88 && salir $ EC #test $? -ne 88 && break exec "$ 0" "$ @"
MichaelHindley
0

Puede instalar Oracle JDK-8. Probado en ubuntu 14.04, debería funcionar para más tarde también.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Mira esta versión:

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Tomó desde aquí .

Temak
fuente
0

Así es como se ve con una representación de fuente horrible en ubuntu 16.04:

Así es como se ve con una representación de fuente horrible en ubuntu 16.04

Si está utilizando IntelliJ IDEA 2016.X o posterior sin JDK incluido, puede establecer una variable de entorno "IDEA_JDK" para especificar un tiempo de ejecución específico. La representación de fuentes en ubuntu 16.04 con Android Studio es perfecta, por lo que puede compartir el mismo JRE con Intellij IDEA. IntelliJ busca primero la variable de entorno IDEA_JDK, así que configúrela agregando un archivo:

/etc/profile.d/IDEA_SDK.sh

Agregue esto al archivo:

export IDEA_JDK=/opt/android-studio/jre

Ajuste / opt / android-studio / jre según su instalación. Cerrar sesión y volver a iniciar sesión y disparar su IDE Intellij

Esto es lo que parece después de usar el nuevo JRE:

Esto es lo que parece después de usar el nuevo JRE

Abhisek Padhi
fuente
-1

Me di cuenta de que el suavizado de phpstorm funciona bastante bien usando la configuración predeterminada. La comparación de los dos comandos muestra que la única diferencia es phpstorm usando su propio java (/ usr / share / phpstorm / jre64 / bin / java).

Modifiqué la secuencia de comandos de inicio de idea para hacerla usando java de phpstorm y funcionó y todo es tan bueno como lo hace phpstorm. captura de pantalla

jswh
fuente
¿Que cambios? ¿Necesita instalar phpstorm para ello?
Journeyman Geek