Melhorando a Renderização de Fontes no Fedora

Uma das coisas que eu sempre gostei do ubuntu, foi o modo como as fontes são renderizadas, eu sempre tentei configurar distros diferentes para que a renderização de fontes fica-se exatamente como as do ubuntu, porém muitas vezes não tive sucesso pois apesar de existir um vasto material na internet para melhorar a fonte em determinadas distros sempre precisava de muita alteração, compilação e nem sempre dava certo por vezes até quebrando outros aplicativos como leitor de pdf, openoffice etc.

Felizmente no fedora não precisamos compilar, alterar o cairo nem nada disso. Precisamos apenas habilitar o repositório  RPM Fusion, instalar o pacote freetype-freeworld e adicionar algumas linhas no arquivo /etc/X11/Xresources.
Colocarei passo a passo como proceder porém caso deseje poderá utilizar o script que criei no final do post para facilitar a instalação =D.

Primeiramente habilite o repositório do RPM Fusion. 

Para o Fedora 13/14/15  use o comando abaixo e informe a senha de root

 

su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

Para o fedora 16 que atualmente está em beta ou alguma versão alpha

 
su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-rawhide.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-rawhide.noarch.rpm'

Após habilitar o repositório instale o pacote freetype-freeworld


# yum install -y freetype-freeworld


Agora vamos adicionar algumas linhas no arquivo /etc/X11/Xresources , caso deseje em vez de alterar o arquivo Xresources no diretório /etc/X11 você pode simplismente criar um arquivo .Xresources em seu diretório home, porém as fontes só estarão melhores para o seu usuário, por isso recomendo a alteração do arquivo Xresources que fica em /etc/X11

Edite o arquivo
 
# vi /etc/X11/Xresources

E adicione o seguinte conteúdo no final do arquivo

 
Xft.autohint: 0 
Xft.lcdfilter: lcddefault 
Xft.hintstyle: hintfull 
Xft.hinting: 1 
Xft.antialias: 1 
Xft.dpi: 96 
Xft.rgba: rgb

Agora basta Reiniciar o X ou efetue logoff que ao efetuar login no sistema novamente você percebera como a renderização de fontes está melhor e claramente parecidada com a do ubuntu.

Para passar o tempo eu criei um script em python que habilita os repositórios RPM Fusion, instala o pacote e adiciona as linhas no Xresource 


#!/usr/bin/env python
#-*- coding: utf-8 -*-

"""
This script improves font rendering on Fedora, basically it installs the 
package freetype-freeworld and adds a patch on file /etc/X11/Xresources .

"""

import os
import subprocess

def check_login():
    login = subprocess.Popen(["whoami"], shell=True, stdout=subprocess.PIPE)
    login = login.stdout.read().strip("\n")
    if login == "root":
        return True
    return False
    

def verify_packages():
    process = subprocess.Popen(["rpm -qa | grep freetype-freeworld"],
    stdout = subprocess.PIPE, shell=True)
    process = process.stdout.read()
    if len(process) > 0:
        return True
    return False
    
    
def verify_repos():
    process = subprocess.Popen(["ls /etc/yum.repos.d | grep rpmfusion"], 
    shell=True, stdout = subprocess.PIPE)
    process = process.stdout.read()
    if len(process) > 0:
        return True
    return False
    
    
def enable_rpmfusion():
    process = subprocess.Popen(["yum localinstall --nogpgcheck http://download1\
.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://down\
load1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm"\
], shell=True)
    while process.poll() is None:
        pass
        
        
def install_package():
    print("Instalando o Pacote 'freetype-freeworld'")
    process = subprocess.Popen(["yum -y install freetype-freeworld"],
    shell = True)
    while process.poll() is None:
        pass
        
    
def apply_patch():
    os.chdir("/etc/X11")
    os.rename("Xresources", "Xresources"+".backup")
    old_file = open("Xresources.backup", "r")
    new_file = open("Xresources", "w")
    for line in old_file:
        new_file.write(line)
    new_file.write("""
! Patch to Improve Fonts
Xft.autohint: 0
Xft.lcdfilter:  lcddefault
Xft.hintstyle:  hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.dpi: 96
Xft.rgba: rgb
                """)
    old_file.close()
    new_file.close()
    print("Done! Restart X or logoff for the changes take effect!")
    
    
def main():
    if check_login():
        if verify_repos():
            if verify_packages():
                apply_patch()
            else:
                install_package()
                apply_patch()
        else:
            enable_rpmfusion()
            install_package()
            apply_patch()
    else:
        print("Run the script as root!")
                
            
    
if __name__ == "__main__":
    main() 

Caso queira utilizar o script, baixe o mesmo aqui  e execute como root



# python improve_fonts.py

Após executar o script basta reiniciar o X ou fazer logoff =)!

2 Comentário(s) em “Melhorando a Renderização de Fontes no Fedora”

  1. Não funciounou! :/
    Eu executei o script, reiniciei o X  mas ainda continuou no mesmo!
    Olhei o arquivo /etc/X11/Xresources e o conteúdo abaixo já está lá:
    Xft.autohint: 0 

    Xft.lcdfilter: lcddefault ...
    ...

    [Responder comentário]
  2. Olá Daniel, 

    Qual versão do fedora você está utilizando ? pergunto pois a partir da versão 16 o sistema esta ignorando as configurações adicionais no arquivo /etc/X11/Xresources 
    mas você pode criar o arquivo .Xresources (NÂO esqueça o "ponto" no início do nome arquivo) no seu diretório home (/home/usuario/.Xresources) e colocar o conteúdo:

    Xft.autohint: 0 Xft.lcdfilter: lcddefault Xft.hintstyle: hintfull Xft.hinting: 1 Xft.antialias: 1 Xft.dpi: 96 Xft.rgba: rgb

    Dessa forma o sistema irá utilizar a configuração do arquivo em seu diretório home e irá melhorar a renderização das fontes, atualmente utilizo o fedora 16 e desse modo funciona perfeitamente.

    Infelizmente desse modo a melhora na aparência das fontes só funciona para o usuário que tenha o arquivo .Xresources em seu diretório home

    Qualquer dúvida fique a vontade para perguntar.

    [Responder comentário]

Deixe um comentário