LogoopenSUSE Build Service > Projects
Sign Up | Log In

Ubuntu Style Font Rendering

This repo provides Ubuntu style font rendering for OpenSUSE by implementing Ubuntu's version of freetype2 for enhanced font presentation with both subpixel rendering and hinting enabled.

Install as follows:

1) Add one of the following repository links (according to your OS version) using YaST or zypper:

https://download.opensuse.org/repositories/home:/gldickens3:/LEAP/openSUSE_Leap_15.0
https://download.opensuse.org/repositories/home:/gldickens3:/LEAP/openSUSE_Leap_42.3
https://download.opensuse.org/repositories/home:/gldickens3:/SPRE/openSUSE_Tumbleweed

The packages that should be used are: libfreetype6 and libfreetype6-32bit.

The above LEAP repo is based on the current OpenSUSE Leap version of freetype2 whereas the the above SPRE repo is based on the current OpenSUSE factory version which should be used for Tumbleweed.  Both the LEAP and SPRE repos include all applicable OpenSUSE freetype2 patches.

Beginning with Ubuntu 17.10 Artful Aardvark the default freetype2 package used by Ubuntu has changed to include hinting in addition to subpixel rendering and which is implemented in the above repositories. According to your own personal preferences, the font rendering is generally considered to be neither better or worse with hinting but simply different.  Generally speaking, the new font rendering with hinting causes the fonts to appear bolder whereas the older font rendering without hinting appear crisper.  If you prefer the crisper font rendering in earlier versions of Ubuntu (prior to 17.10 with subpixel rendering but without hinting) then add the following to /etc/environment:

FREETYPE_PROPERTIES="truetype:interpreter-version=35 cff:no-stem-darkening=1 \
autofitter:warping=1"
 
This will disable hinting while keeping subpixel rendering and will produce font rendering that is identical to Ubuntu font rendering before Ubuntu 17.10 Artful Aardvark.

2) Switch packages to one of the above repos with either YaST or the command line as follows:

Using YaST:

     Software Management > Repositories > This Repo > Switch system packages > Accept

Using the command line: 

     sudo zypper dup --from <This Repo>

3) Logout/in.

4) Verify that the following content is included in ~/.config/fontconfig/fonts.conf and/or
/etc/fonts/local.conf:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hintstyle">
   <const>hintmedium</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="lcdfilter">
   <const>lcddefault</const>
  </edit>
 </match>
</fontconfig>

Edit the hintstyle in ~/.config/fontconfig/fonts.conf and/or /etc/fonts/local.conf and try each available setting: "hintslight", "hintmedium", "hintfull".  "hintmedium" is the default value and which usually produces the best results.

You should logout/login after changing the font configuration.

Alternatively, you can use your desktop environment's GUI to set the font configuration.  For example, with KDE, go to Font Settings and enable anti-aliasing > Configure > RGB > Slight/Medium/Full.

5) For best results, you should also install a robust font package such as a set of MS truetype fonts. You can install additional fonts from an existing Windows installation in /usr/share/fonts/ or use the OpenSUSE package, fetchmsttfonts, which provides a selection of freely available MS truetype fonts including Ariel, Verdana and Times New Roman.

Comments for home:gldickens3 (13)

Alexandre Silva abatistas1709 wrote about 1 year ago

Works fine! Congrats!

Bengt Frost bfrost wrote about 1 year ago

Just installed updated packages in Leap 42.2, works great!

Martin Torres emtorres wrote 11 months ago

Thanks for your work! Please can you add a build for Leap 42.3?

Gordon Dickens gldickens3 wrote 11 months ago

I have already added a build for Leap 42.3 in my Advanced repo here:

http://download.opensuse.org/repositories/home:/gldickens3:/Advanced/openSUSE_Leap_42.3/

This should work fine, however, I must tell you that I have not yet tested it. So, give it a test drive if you would like and let me know how it goes.

I was planning to test everything for 42.3 soon, however, I have been very busy but I will get around to it within the next few weeks anyway...

Thanks,

Gordon

Martin Torres emtorres wrote 11 months ago

Ok thanks again. I will test the 'Advanced' repo.

Alexandre Silva abatistas1709 wrote 10 months ago

'Advanced' repo tested! Thanks!

Gordon Dickens gldickens3 wrote 10 months ago

Hello abatistas1709, Thanks for testing the repo!... Gordon

jean-christophe baptiste phocean wrote 6 months ago

Excellent work, thank you for sharing.

Bill Fischer billfischer wrote 3 months ago

Thank you very much! This is fantastic. The font rendering is excellent.

Bengt Frost bfrost wrote 3 months ago

Installed and with Georgia, Verdana (fetchmsttfonts) and Source Code Pro fonts. Fontconfig is: Font Antialiasing, hintslight, rgb och lcddefault with KDE system settings (also added lcddefault in ~/.config/fontconfig/fonts.conf) and in YaST settings. Nice, great work!

Bengt Frost bfrost wrote 3 months ago

Instead of add lcddefault in home fonts.conf: echo "Xft.lcdfilter: lcddefault" > ~/.Xresources # If X.org

simon izor simonizor wrote 2 months ago

You should be adding the patches from the main freetype2 repo here for font rendering issues with Electron apps.

Gordon Dickens gldickens3 wrote 2 months ago

Hello simonizor, This repo includes the patches that ubuntu uses. I also maintain another repo named SPRE, with subpixel rendering enabled and hinting disabled, that is based on OpenSUSE factory and that includes all of the OpenSUSE patches here:

https://build.opensuse.org/project/show/home:gldickens3:SPRE

I recommend that you give the SPRE repo a test drive and see if it plays nicely with the Electron apps.

FYI,

Gordon