Autor Tópico: Corrigindo a fonte utilizada no Java e incluindo bordas e sombras em menus  (Lida 3914 vezes)

Offline Sergio Benjamim

  • Usuário Ubuntu
  • *
  • Mensagens: 2.902
    • Ver perfil
Tenho instalado alguns aplicativos java no Ubuntu 12.04, como Arduino, Netbeans, Scilab e Visual Paradigm, e eles naturalmente utilizam o GTK+ look-and-feel (um tema java que faz com que os aplicativos java tenham a mesma aparência parecida com os aplicativos nativos do Ubuntu), mas há uma série de problemas relacionados à esse look-and-feel.

Depois de ter atualizado para o Java 7 (estou usando openjdk7-jre), notei que a fonte dos menus dos aplicativos se encontram em negrito, fazendo com que as palavras ocupem um espaço maior do que o devido. Dei uma procurada, e parece que este problema ocorre somente para quem tem o Wine instalado (ele acaba instalando algumas fontes, que interferem com o Java, não sei como). Tem um saída para isso, basta ir em /usr/share/fonts/truetype/unfonts-core/ e deletar o arquivo UnDotum.ttf (use Alt+F2 e gksu Nautilus para isso). Após isso, os aplicativos vão abrir com uma fonte mais correta (não fica 100% fiel ao resto do sistema).

Outro problema está relacionado à falta de bordas dos menus, que faz com que vc não saiba onde começa e termina o menu em certos casos (fica muito horrível). Achei um link útil à respeito:

Workaround for borderless Java Swing menus on Linux

Lá diz que este problema ocorre em temas como Adwaita, Ambiance (padrão do Ubuntu) e Radiance. É só alterar o arquivo presente em /usr/share/themes/Adwaita/gtk-2.0/gtkrc, /usr/share/themes/Ambiance/gtk-2.0/gtkrc e /usr/share/themes/Radiance/gtk-2.0/gtkrc (não precisa alterar todos, somente o tema que você costuma usar) de modo a substituir o 0 por 1 em xthickness e ythickness, como é mostrado abaixo, no destaque em azul e negrito:

Citar
[...]

style "menu" {
   xthickness = 1
   ythickness = 1

   [...]
}

[...]

style "separator_menu_item" {
   xthickness = 1
   ythickness = 1
        [...]
}

[...]

Vou tentar colocar sombras nos menus ainda, mas parece que não é possível, achei este report de bug: Compiz draw shadows + Java applications
« Última modificação: 03 de Novembro de 2012, 21:42 por Sergio Benjamim »
É novo no Ubuntu? Já leu o Ubuntu – Guia do Iniciante 2.0 ?
Experimente o Xubuntu 14.04 !

Offline Sergio Benjamim

  • Usuário Ubuntu
  • *
  • Mensagens: 2.902
    • Ver perfil
Re: Corrigindo a fonte utilizada no Java e incluindo bordas e sombras em menus
« Resposta #1 Online: 03 de Novembro de 2012, 22:19 »
Alguém tem noção de como eu faço para "pegar" a classe dos menus de qualquer aplicativo? O WindowMatching do Compiz não permite fazer isso, e tentei:

Citar
sleep 4 && xprop WM_CLASS | cut -d\" -f2

e quando abro um menu, e espero o tempo de 4 segundos terminar, dá o seguinte resultado:

Citar
xprop: error: Can't grab the mouse.

É impossível determinar a classe de menus, pop up menus, tooltips e etc... se descobrisse, colocaria na opção "Janelas com sombra" na "Decoração da janela" lá do Compiz o menu de aplicativos java:

Citar
(type = DropDownMenu | PopUpMenu | ToolTip | Menu | Dock ) & !(type = NORMAL)
É novo no Ubuntu? Já leu o Ubuntu – Guia do Iniciante 2.0 ?
Experimente o Xubuntu 14.04 !

Offline Sergio Benjamim

  • Usuário Ubuntu
  • *
  • Mensagens: 2.902
    • Ver perfil
Re: Corrigindo a fonte utilizada no Java e incluindo bordas e sombras em menus
« Resposta #2 Online: 10 de Dezembro de 2012, 22:20 »
Esses dias os meus aplicativos java voltaram a ter os mesmos problemas, provavelmente alguma atualização substituiu os gtkrc que alterei. Uma solução para isso não acontecer é copiar a pasta Ambiance que está em /usr/share/themes/ para a ~/.themes (fica na sua pasta pessoal, aperte Ctrl+H para aparecer as pastas ocultas).

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Há um problema com o openJDK 6 há um tempão, a fonte do menu dos aplicativos simplesmente fica quase da mesma cor do fundo do menu (preto), e fica difícil enxergar. No openJDK 7 isso já foi corrigido, mas se você tiver um programa que usa a versão 6 do java (o Scilab por exemplo, ao instalar ele só usa a versão 6, a menos que você mexa nos arquivos de configuração) terá que fazer o seguinte para contornar o problema:

- copie a pasta Ambiance no seu diretório pessoal, essa pasta está em /usr/share/themes. Copie para ~/.themes, ou seja, /home/seu-usuario/.themes
- entre na pasta Ambiance, entre na gtk2.0 e abra o arquivo gtkrc
- substitua a linha...
     style "menu" {
... por essa linha:
    style "menu" = "dark" {

Pronto! Agora as fontes dos menus dos seus aplicativos Java voltarão a ficar visíveis.
« Última modificação: 10 de Dezembro de 2012, 22:26 por Sergio Benjamim »
É novo no Ubuntu? Já leu o Ubuntu – Guia do Iniciante 2.0 ?
Experimente o Xubuntu 14.04 !