Dica: excelente anti-aliasing no editor e interface do NetBeans no Linux

Olá, faz muito tempo que não visito o fórum.

Pesquisei por muito tempo uma maneira de melhorar o anti-alising das fontes usadas no editor do NetBeans (na verdade, anos). No Linux (no meu caso Kubuntu), o anti-aliasing funciona, mas tem uma qualidade ruim comparada com a qualidade incrível da renderização de fontes do Ubuntu e Kubuntu. Sendo assim, agora que encontrei a solução definitiva neste site http://programster.blogspot.com.br/2012/10/ubuntu-12-make-netbeans-pretty.html, decidi fazer uma adaptação e compartilhar com vocês. Espero que gostem do resultado.

A melhor maneira de configurar o NetBeans e melhorar o anti-aliasing para ficar nativo (isto é, usar o mesmo tipo de anti-aliasing que é usado pelo Ubuntu), é fazer o NetBeans rodar usando o OpenJDK. Assim, vamos instalar o OpenJDK 7, caso ele não esteja instalado e instalar uma correção (openjdk-fontfix) que faz com que as fontes sejam renderizadas com um visual nativo.

sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
sudo apt-get update
sudo apt-get install openjdk-7-jdk

Agora, procuramos o arquivo de configurações do NetBeans (netbeans.conf) e localizamos a linha onde está escrito

netbeans_default_options=

E acrescentamos isto:

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd -J-Dorg.netbeans.editor.aa.extra.hints=true --fontsize 13

Essa última configuração é opcional. Serve para aumentar ou diminuir o tamanho da fonte da interface (menus, etc) e não do editor.

Observação: as opções para -J-Dorg.netbeans.editor.aa.extra.hints são true ou false.
As opções para -J-Dawt.useSystemAAFontSettings são:
off, false ou default - sem anti-aliasing

  • on - Total anti-aliasing
  • gasp - Usa as instruções de hint embutidas na fonte
  • lcd ou lcd_hrgb - Anti-aliasing para vários monitores LCD populares
  • lcd_hbgr - configuração alternativa para monitor LCD
  • lcd_vrgb - configuração alternativa para monitor LCD
  • lcd_vbgr - configuração alternativa para monitor LCD

Brinque com essas opções para ver a que funciona melhor para você. As que mostrei no exemplo acima foram as que deram um resultado perfeito para mim.

Agora, é preciso fazer o NetBeans usar o OpenJDK no lugar do JDK da Oracle:

Default location of JDK:

(set by installer or commented out if launcher should decide)

It can be overridden on command line by using --jdkhome

Be careful when changing jdkhome.

There are two NetBeans launchers for Windows (32-bit and 64-bit) and

installer points to one of those in the NetBeans application shortcut

based on the Java version selected at installation time.

#netbeans_jdkhome="/usr/lib/jvm/java-8-oracle"
netbeans_jdkhome="/usr/lib/jvm/java-7-openjdk-amd64/"

O sistema pode usar várias versões do JDK, como veremos a seguir.
Depois, é só configurar as fontes dentro do próprio NetBeans (Ferramentas --> Opções --> Fontes e Cores).

Agora, faço uma adição ao site anterior. Ao concluir as alterações, o NetBeans passar a reconhecer somente o OpenJDK7. Se você desejar, é fácil adicionar o JDK 8 aos seus projetos, mesmo o NetBeans rodando agora usando o OpenJDK (o que ele faz perfeitamente, aliás). Basta acessar:

Ferramentas → Plataformas Java, clicar no botão ‘Adicionar Plataforma’ e selecionar a pasta onde está o JDK 8 (/usr/lib/jvm/java-8-oracle).

Posteriormente, para mudar a versão do JDK de um projeto específico, basta clicar com o botão direito no projeto e clicar em Propriedades. Acessamos, na árvore a opção Bibliotecas e escolhemos, no menu droop-down ‘Plataformas Java’ a plataforma desejada.

Com essas alterações, o NetBeans pode ficar usando o OpenJDK para rodar com um visual melhor, e o OracleJDK 8, se for necessário, para o seu projeto.
É incrível que, apesar de rodar usando uma versão do OpenJDK, ele possa executar projetos de outra versão, inclusive da Oracle… agora, não sei dizer se há alguma interação ou efeito colateral nisso. Até agora, não vi nenhum.

Fica muito legal! Anexei um screenshot para vocês analisarem.

Até mais.

Bom dia, tudo bem?

Será que seria possível realizar um procedimento parecido no LibreOffice? Estou tendo problema com algo relacionado a anti-aliasing, as descrições dos menus não aparecem como previsto (Problema similar a este da imagem: http://goo.gl/cTGhtz, porém no meu caso, aparecem apenas traços/underline “___” nos menus, não consigo ler praticamente nada. Engraçado é que quando disparo o PrintScreen, os textos aparecem, mas voltam a desaparecer quando manipulo itens/menus). Não consigo resolver de jeito nenhum, não sei mais o que fazer. Até procurei arquivos de configuração na pasta do LibreOffice pra tentar forçar alguma configuração, mas ainda não encontre o ponto certo :S

Numa das opções de menu do LibreOffice é possível usar o recurso Java, mas mesmo ativando ou desativando este recurso, não rola. Então pensei que talvez fosse possível usar a sua dica, rs

Estou usando o Ubuntu 14.04 (Minha placa de vídeo é a Nvidia Fx5200, um pouco problemática em ambiente Linux. Estou usando driver genérico, pois o oficial está desatualizado). Obrigado! Abs