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
Para o fedora 16 que atualmente está em beta ou alguma versão alpha
Após habilitar o repositório instale o pacote 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
E adicione o seguinte conteúdo no final do arquivo
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
Após executar o script basta reiniciar o X ou fazer logoff =)!
Não funciounou! :/
[Responder comentário]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 ...
...
Olá Daniel,
[Responder comentário]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.