Como corrigir o anti-aliasing de fonte no IntelliJ IDEA ao usar alto DPI?

79

Uso uma configuração de DPI mais alta que faz com que o IntelliJ (na verdade, o Android Studio) tenha realmente estragado as fontes .

Eu uso o MacType, que renderiza minhas fontes lindamente em outros lugares, mas acho que o Java VM de alguma forma o intercepta ou algo assim, está me matando.

Cara, sujeito
fonte

Respostas:

112

Estou em uma tela de alta resolução e consegui trabalhar com uma renderização de fonte perfeita, para conseguir isso, você precisa:

  • (No Linux) Instale e use o Oracle JDK (estou usando o 1.7) e não o OpenJDK (também o patch com fontfix foi inútil para mim). Veja como fazer isso .

  • Edite o arquivo de configuração .vmoptions encontrado na pasta de instalação da Bin (por exemplo, studio.vmoptions e para 64bit studio64.vmoptions , ou WebStorm.exe.vmoptions etc. de acordo com a versão do IDE que você instalou) adicionando estas linhas:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Remova as informações de dicas da fonte que você deseja usar e selecione a nova fonte nas preferências do IntelliJ IDEA (Configuração -> Editor -> Fonte);
    Se você não sabe como fazer isso, instale o FontForge :

    1. Abra sua fonte no FontForge
    2. Selecione todos os glifos Ctrl+Ae apague todas as dicas (Dicas -> Limpar dicas)
    3. Selecione os glifos novamente e use Dicas -> Limpar instrução
    4. Salve a fonte com nome diferente (Arquivo -> Gerar fontes)
    5. Instale a nova fonte, selecione-a no IDEA

Se você seguiu as dicas acima e está com lags ao rolar rapidamente o código (isso às vezes pode acontecer nas distribuições Linux com um driver gpu não otimizado), tente remover a linha
-Dsun.java2d.xrender=true
do arquivo .vmoptions .

Finalmente, aqui está uma captura de tela do resultado:

Captura de tela do IDE


(as fontes usadas aqui são LucidaMAC para o IDE principal e o Ubuntu Mono com informações de dicas removidas para o editor de código)

guari
fonte
4
Impressionante! Funciona no Windows também :)) obrigado: *
Bloke
1
Eu tentei o acima na minha máquina Windows com oi dpi (3200x1800) Eu ajustei o studio.vmoptions conforme mencionado, mas tudo ainda está embaçado. Por favor, informe se possível, eu realmente gostaria que isso funcionasse?
Pace
10
@Pace Para remover fontes borradas, você precisa desativar a escala de exibição para esse aplicativo (clique com o botão direito do mouse no ícone, selecione Properties, vá para a Compatibilityguia e verifique os Disable DPI scaling on high DPI settingsaplicativos x64 no Win8 - você deve editar o sinalizador da chave de registro relacionada: abra o Regedit. exe, vá para HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layerse adicione um valor de seqüência de caracteres REG_SZ cujo nome é o caminho completo para o aplicativo executável e cujo valor é HIGHDPIAWARE );)
guari
3
não posso dicas e instruções claras sobre fontes na forja da fonte ... Há erros quando eu tentar salvá-los depois disso ... O que estou fazendo de errado
Mario Zderic
2
Uau. Ainda é útil um ano depois. O JetBrains precisa tornar isso o padrão ou, pelo menos, executar alguma detecção automática. O embaçamento sem essas configurações faz com que o IntelliJ pareça terrível e inutilizável.
Andrew T Finnell
4

Eu escrevi um pequeno manual de como corrigir isso.

   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 o Intellij Idea

* observe apenas que é necessário alterar a localização de IDEA_HOME para o seu caminho de ideia

#!/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 "$@"

Mais informações e capturas de tela de fontes melhores: http://urshulyak.com/?p=478

Yaroslav Urshulyak
fonte
Adicionando -Dsun.java2d.xrender=truea bin/webstorm64.vmoptionsno diretório do WebStorm era suficiente para mim.
Alicia
1
o link para download está quebrado. Por favor, corrija
jackode
Esta resposta assume arquitetura de 64 bits, o que pode não ser o caso
Anwar
Isso basicamente está executando código arbitrário, conforme recomendado pela raiz.
Thorbjørn Ravn Andersen
2

Eu tenho uma aparência semelhante baixando a fonte Menlo e configurando o Anti-aliasing do editor como 'escala de cinza' em Aparência e comportamento> Aparência

Este é o resultado:

Isto é o que parece

Aqui está uma comparação entre as duas plataformas

insira a descrição da imagem aqui

Estou usando uma resolução mais alta e um hardware melhor no trabalho com o MAC; é por isso que as fontes ficam um pouco mais brilhantes; o resultado varia de acordo com a sua máquina. De qualquer forma vale a pena tentar, as alterações são fáceis de reverter

FRR
fonte
Trabalhou parcialmente para mim! As fontes não são tão nítidas quanto a interface genérica do Mac, mas são nítidas o suficiente para serem viáveis. Eu estou no 13" Mac Pro, Mac OS X 10.11.4
Mayank Jain
por que você está fazendo isso em OSX ?, você deve obter as fontes da direita fora da caixa :)
FRR
2

Nada dessa coisa feia é mais necessária. Faça o download do IntelliJ mais recente (2016.1 em diante) para Linux. Inclui um JRE modificado com o problema de fontes corrigido. Para corrigir o Android Studio, faça também um link simbólico para o IntelliJ jre:

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

Como alternativa, basta abrir o gerenciador de arquivos como root (supondo que seus IDEs estejam instalados no diretório / opt ou em outra pasta do sistema) e criar um atalho para o jre do IntelliJ e movê-lo para a pasta de instalação do Android Studio e renomeá-lo para 'jre'. Isso funciona para o android studio 2.0 mais recente, mas também deve funcionar com versões anteriores.

Aspiring Dev
fonte
Qual versão você quer dizer? Quando eu vá para Ajuda> Sobre, vejo Intellij IDEA 15.0.2eBuild #IU-143.1184
Bloke
O @Bloke basta ir ao site e baixar o IntelliJ mais recente. É 2016.1.1 agora, eu acho. Eles mudaram a maneira como anunciam as novas versões agora e ele tem o formato YEAR.REVISION.UPDATE # agora.
de aspiração Dev
Ah, de fato. Eu apenas tentei. Source Code ProAgora, minha fonte parece um pouco ousada, mas isso é um problema menor. Obrigado!
Bloke
Usar o JRE empacotado com o IntelliJ fez toda a diferença para mim. Inicialmente, baixei o IntelliJ sem o JRE e usei o Oracle JDK local (1.7), que resultou em fontes ruins. HTH.
sengs
2

Em soluções JetBrains mais recentes, o IDE é diferente.

Na pasta de instalação do IDE, apenas renomeie a jre pasta para outra coisa. Por exemplo:

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

As versões mais recentes usam o JRE em pacote, em vez do seu sistema, e essa versão em pacote causa problemas de renderização de fonte .

Funciona bem aqui: WebStorm 2016.3.2 no Kubuntu 16.04 linux.

Captura de tela do WebStorm com fonte fixa

ogram
fonte
Isso está enterrado na parte inferior, mas é o verdadeiro culpado. Todo mundo acima está focado nas fontes do Editor, mas eu já tinha boas fontes de editor. Meu problema foi que várias frases de destaque, dicas de ferramentas e diálogos modais mostraram uma renderização terrível de fonte sem antialiasing. Eu tentei de tudo acima e nada resolveu o problema, mas esconder o jre empacotado fez o truque.
Dan
1

Se você não conseguir limpar as dicas com o FontForge, como o guari explicou em sua resposta . Use Cousine (Licença do Apache v2.00) como fonte do editor e defina o tamanho como 14. Tentei algumas outras fontes monoespaçadas. No entanto, Cousine parece ter uma renderização melhor do que a maioria das outras fontes. Veja a captura de tela no final

  1. Faça o download da fonte: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Crie um novo diretório de família de fontes: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Extraia os arquivos de fonte: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Disponibilize-os para o IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Atualize o cache da fonte: sudo fc-cache -f -v
  6. Reinicie o IntelliJ e escolha Primo como fonte do editor
  7. Não se esqueça de definir as vmoptions como o guari explicou

Captura de tela:

user1185087
fonte
Sua captura de tela não parece estar usando anti-aliasing.
Ztyx
Substituiu a captura de tela por uma menor para impedir a redução da escala. Agora você pode ver que o anti-aliasing é usado
user1185087
1

No Windows 10, tive problemas semelhantes. Verificando as Disable display scaling on high DPI settingsfontes, ficou mais suave, mas muito maior. Veja como fazer isso (de um comentário anterior de outro usuário):

Clique com o botão direito do mouse no ícone, selecione Properties, vá para a Compatibilityguia e verifiqueDisable DPI scaling on high DPI settings

Entrando no Windows Settingse procurando Display Settings, há uma caixa de diálogo com um controle deslizante que diz Change the size of text, apps, and other items. Mudei de 125% para 100% e tive que fazer logoff e logon novamente. As fontes são pequenas E suaves agora:

insira a descrição da imagem aqui

Ainda mais, se eu desmarcar Disable display scaling on high DPI settings, parece que ainda está suave.

Usuário1
fonte
Esta foi a única solução que funcionou para mim! Valeu!
precisa saber é o seguinte
0

A resposta aceita não funcionou para mim, mas consegui tudo funcionando ao fazer isso:

Depois de ler vários tutoriais e mexer com várias correções, encontrei uma maneira que funciona perfeitamente.

Primeiro, faça o download do JDK 8 do Oracle e execute as seguintes linhas no 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/

Agora baixe a correção da fonte JDK (Cortesia de [Urshulyak Yaroslav] [2]) executando o seguinte:

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

Isso extrairá o zip baixado e o moverá para / usr / lib / jvm /. Agora execute o seguinte no terminal:

cd ~
sudo gedit .bashrc

Em seguida, adicione as seguintes linhas na parte inferior do arquivo bashrc.

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

Salve-o e gedit o idea.sh. (O local do seu script pode ser diferente)

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

Na parte inferior do script, substitua as linhas na instrução While Do na parte inferior por estas duas linhas:

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

Salve-o e abra o IntelliJ, as fontes devem funcionar e você usará o Oracle JDK 8 para desenvolvimento. Você provavelmente terá que editar as Configurações do projeto e configurar seu JDK novamente, mas certifique-se de usar o JDK real e não a fonte de correção.

Essa correção também funciona com o CLion, o Android Studio e o [PyCharm.

Essas instruções assumem que a versão do JDK era 1.8.0_25, os nomes de arquivo / caminho serão alterados para versões futuras.


fonte
Você tem uma idéia de como fazer isso funcionar com o PhpStorm? A parte inferior do arquivo fica assim: 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_PáginaIde90TIES \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? teste $ EC -ne 88 && exit $ EC #test $? -ne 88 && break exec "$ 0" "$ @"
MichaelHindley
0

Você pode instalar o Oracle JDK-8. Testado no ubuntu 14.04, deve funcionar para mais tarde também.

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

Verifique a versão:

$ 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)

Tomou daqui .

Temak
fonte
0

É assim que parece com a renderização de fonte horrível no ubuntu 16.04:

É assim que parece com a renderização de fonte horrível no ubuntu 16.04

Se você estiver usando o IntelliJ IDEA 2016.X ou posterior sem o JDK em pacote, poderá definir uma variável de ambiente "IDEA_JDK" para especificar um tempo de execução específico. A renderização de fontes no ubuntu 16.04 com o Android studio é perfeita, para que você possa compartilhar o mesmo JRE com o Intellij IDEA. O IntelliJ procura a variável de ambiente IDEA_JDK primeiro, então configure-a adicionando um arquivo:

/etc/profile.d/IDEA_SDK.sh

Adicione isso ao arquivo:

export IDEA_JDK=/opt/android-studio/jre

Ajuste / opt / android-studio / jre conforme sua instalação. Efetue logout e logon novamente e dispare seu IDE Intellij

É assim que parece depois de usar o novo JRE:

É assim que parece depois de usar o novo JRE

Abhisek Padhi
fonte
-1

Eu percebi que o anti-aliasing do phpstorm funciona muito bem usando a configuração padrão. A comparação dos dois comandos mostra que a única diferença é o phpstorm usando seu próprio java (/ usr / share / phpstorm / jre64 / bin / java).

Modifiquei o script de inicialização da idéia para fazê-lo usando o java do phpstorm e funcionou e tudo é tão bom quanto o phpstorm. captura de tela

jswh
fonte
O que muda? Você precisa instalar o phpstorm para isso?
Journeyman Geek