Giter Site home page Giter Site logo

freetype-envision's Introduction

About

Carefully tuned adjustments for the font rendering software library FreeType, designed to improve visibility and refine appearance on the Linux platform.

You can find demo images to compare the changes here.

Basic Usage

Install

  1. Download the latest release here and unpack it to any user available location.
  2. Open the terminal in the unpacked directory.
  3. Run the command below, root required:
    $ sudo ./freetype-envision.sh install
  4. Reboot.

Remove

  1. Run the command below, root required:
    $ sudo ./freetype-envision.sh remove
  2. Reboot.

Modes

Currently, there are several configuration presets with different levels of safety. Normal preset is considered least likely to cause visual errors in the user's environment and is therefore used by default, while the Full one tries to maximize the readability of the rendering for all the font drivers and options, at the cost of severe distortions in the rendering of some elements.

  • Configurations in profile.d

    • Stem-darkening (embolden) for drivers

      Normal Full
      autofitter Yes Yes
      type1 Yes Yes
      t1cid Yes Yes
      cff No Yes
    • Stem-darkening enabled for the small font sizes

      Normal Full
      No Yes
  • Configurations in fontconfig

    • Enforce grayscale antialiasing (disable sub-pixel)
      Normal Full
      Yes Yes

Normal mode

Used by default if no second argument provided.

# Install
$ sudo ./freetype-envision.sh install normal

# Remove
$ sudo ./freetype-envision.sh remove normal

Full mode

# Install
$ sudo ./freetype-envision.sh install full

# Remove
$ sudo ./freetype-envision.sh remove full

freetype-envision's People

Contributors

maximilionus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

freetype-envision's Issues

CJK characters rendering issue with sans-serif fonts

About

As stated in the issue title, rendering of some CJK (Chinese/Japanese/Korean) characters with sizes within the stem-darkening range will be partially corrupted with Sans-serif fonts. It is currently unknown what is causing this problem.

Suggestion

This issue can probably be solved by disabling the hinting for all CJK fonts with a special fontconfig entry, but this solution seems a bit hard-coded and would completely disable stem darkening for these fonts. There has to be a better way.

Screenshots

  • Sans-serif issues:
    Screenshot from 2024-03-28 17-35-34

    Replicate:

    pango-view -t 你好 --font 'sans'
  • Serif:
    Screenshot from 2024-03-28 17-40-46

    Replicate:

    pango-view -t 你好 --font 'serif'

hinting of the letter "p" freetype 2.10 vs. freetype 2.12

I also do not like Antialiasing since it was introduced in Windows Vista. Now I am in Linux and do still not like Antialiasing. But I do also not like the grey shadow rendering. In Debian 10 I have made the wohle system free of theses techniques and have used "Arial".

This is what I had in my Debian 10 based System (please click on it and look at it at zoom 100%):
grafik

Now I have changed to Debian 12. So now it has also changed the freetype version. It was version 2.10 in Debian 10 and now it is 2.12 in Debian 12. And now the hinting in Freetype 2.12 has deteriorated. Please pay attention to the small letter "p". This is how it looks now in Debian 12 (please click on it and look at it at zoom 100%):
grafik

This is an ugly "p".

And now enlarged:
Debian 10:
grafik

Debian 12:
grafik

But I also don't like it with shadows (it's blurry):
grafik

Is there a way, to change the hinting of this single pixel of the letter "p"?
Or is this project only concerned with the grey shadows?

Thank you.

Thanks!

Just wanted to say thank you! This works great and makes everything nice and crips!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.