Skip to content

Instantly share code, notes, and snippets.

@schalkburger
Last active June 3, 2023 18:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save schalkburger/d0a13bcd477ac3e0c79f9fd1a071acdd to your computer and use it in GitHub Desktop.
Save schalkburger/d0a13bcd477ac3e0c79f9fd1a071acdd to your computer and use it in GitHub Desktop.
Counter-Strike: Global Offensive fonts.conf file
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Choose an OS Rendering Style. This will determine B/W, grayscale,
or subpixel antialising and slight, full or no hinting and replacements (if set in next option) -->
<!-- Style should also be set in the infinality-settings.sh file, ususally in /etc/profile.d/ -->
<!-- Choose one of these options:
Infinality - subpixel AA, minimal replacements/tweaks, sans=MY_FONT
Windows 7 - subpixel AA, sans=MY_FONT
Windows XP - subpixel AA, sans=MY_FONT
Windows 98 - B/W full hinting on TT fonts, grayscale AA for others, sans=MY_FONT
OSX - Slight hinting, subpixel AA, sans=Helvetica Neue
OSX2 - No hinting, subpixel AA, sans=Helvetica Neue
Linux - subpixel AA, sans=DejaVu Sans
=== Recommended Setup ===
Run ./infctl.sh script located in the current directory to set the style.
# ./infctl.sh setstyle
=== Manual Setup ===
See the infinality/styles.conf.avail/ directory for all options. To enable
a different style, remove the symlink "conf.d" and link to another style:
# rm conf.d
# ln -s styles.conf.avail/win7 conf.d
-->
<dir>WINDOWSFONTDIR</dir>
<dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- A fontpattern is a font file name, not a font name. Be aware of filenames across all platforms! -->
<fontpattern>MY_FONT</fontpattern>
<fontpattern>.vfont</fontpattern>
<fontpattern>notosans</fontpattern>
<fontpattern>notoserif</fontpattern>
<fontpattern>notomono-regular</fontpattern>
<cachedir>WINDOWSTEMPDIR_FONTCONFIG_CACHE</cachedir>
<cachedir>~/.fontconfig</cachedir>
<!-- Uncomment this to reject all bitmap fonts -->
<!-- Make sure to run this as root if having problems: fc-cache -f -->
<!--
<selectfont>
<rejectfont>
<pattern>
<patelt name="scalable" >
<bool>false</bool>
</patelt>
</pattern>
</rejectfont>
</selectfont>
-->
<!-- The Stratum2 Monodigit fonts just supply the monospaced digits -->
<!-- All other characters should come from ordinary Stratum2 -->
<match>
<test name="family">
<string>Stratum2 Bold Monodigit</string>
</test>
<edit name="family" mode="append" binding="strong">
<string>MY_FONT</string>
</edit>
</match>
<match>
<test name="family">
<string>Stratum2 Regular Monodigit</string>
</test>
<edit name="family" mode="append" binding="strong">
<string>MY_FONT</string>
</edit>
</match>
<!-- Stratum2 only contains a subset of the Vietnamese alphabet. -->
<!-- So when language is set to Vietnamese, replace Stratum with Noto. -->
<!-- Adjust size due to the Ascent value for Noto being significantly larger than Stratum.. -->
<match>
<test name="lang">
<string>vi-vn</string>
</test>
<test name="family">
<string>Stratum2</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>notosans</string>
</edit>
<edit name="pixelsize" mode="assign">
<times>
<name>pixelsize</name>
<double>0.9</double>
</times>
</edit>
</match>
<!-- More Vietnamese... -->
<!-- In some cases (hud health, ammo, money) we want to force Stratum to be used. -->
<match>
<test name="lang">
<string>vi-vn</string>
</test>
<test name="family">
<string>ForceStratum2</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Stratum2</string>
</edit>
</match>
<!-- Fallback font sizes. -->
<!-- If we request Stratum, but end up with MY_FONT, reduce the pixelsize because MY_FONT glyphs are larger than Stratum. -->
<match target="font">
<test name="family" target="pattern" compare="contains">
<string>Stratum2</string>
</test>
<test name="family" target="font" compare="contains">
<string>MY_FONT</string>
</test>
<edit name="pixelsize" mode="assign">
<times>
<name>pixelsize</name>
<double>0.9</double>
</times>
</edit>
</match>
<!-- If we request Stratum, but end up with Noto, reduce the pixelsize. -->
<!-- This fixes alignment issues due to the Ascent value for Noto being significantly larger than Stratum. -->
<match target="font">
<test name="family" target="pattern" compare="contains">
<string>Stratum2</string>
</test>
<test name="family" target="font" compare="contains">
<string>Noto</string>
</test>
<edit name="pixelsize" mode="assign">
<times>
<name>pixelsize</name>
<double>0.9</double>
</times>
</edit>
</match>
<!-- Stratum contains a set of arrow symbols in place of certain greek/mathematical characters - presumably for some historical reason, possibly used by VGUI somewhere?. -->
<!-- For panorama these Stratum characters should be ignored and picked up from a fallback font instead. -->
<match target="scan">
<test name="family">
<string>Stratum2</string>
</test>
<edit name="charset" mode="assign">
<minus>
<name>charset</name>
<charset>
<int>0x03A9</int> <!-- greek omega -->
<int>0x03C0</int> <!-- greek pi -->
<int>0x2202</int> <!-- partial diff -->
<int>0x2206</int> <!-- delta -->
<int>0x220F</int> <!-- product -->
<int>0x2211</int> <!-- sum -->
<int>0x2212</int> <!-- minus -->
<int>0x221A</int> <!-- square root -->
<int>0x221E</int> <!-- infinity -->
<int>0x222B</int> <!-- integral -->
<int>0x2248</int> <!-- approxequal -->
<int>0x2260</int> <!-- notequal -->
<int>0x2264</int> <!-- lessequal -->
<int>0x2265</int> <!-- greaterequal -->
<int>0x25CA</int> <!-- lozenge -->
</charset>
</minus>
</edit>
</match>
<!-- Ban Type-1 fonts because they render poorly -->
<!-- Comment this out to allow all Type 1 fonts -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="fontformat" >
<string>Type 1</string>
</patelt>
</pattern>
</rejectfont>
</selectfont>
<!-- Globally use embedded bitmaps in fonts like Calibri? -->
<match target="font" >
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
<!-- Substitute truetype fonts in place of bitmap ones? -->
<match target="pattern" >
<edit name="prefer_outline" mode="assign">
<bool>true</bool>
</edit>
</match>
<!-- Do font substitutions for the set style? -->
<!-- NOTE: Custom substitutions in 42-repl-global.conf will still be done -->
<!-- NOTE: Corrective substitutions will still be done -->
<match target="pattern" >
<edit name="do_substitutions" mode="assign">
<bool>true</bool>
</edit>
</match>
<!-- Make (some) monospace/coding TTF fonts render as bitmaps? -->
<!-- courier new, andale mono, monaco, etc. -->
<match target="pattern" >
<edit name="bitmap_monospace" mode="assign">
<bool>false</bool>
</edit>
</match>
<!-- Force autohint always -->
<!-- Useful for debugging and for free software purists -->
<match target="font">
<edit name="force_autohint" mode="assign">
<bool>false</bool>
</edit>
</match>
<!-- Set DPI. dpi should be set in ~/.Xresources to 96 -->
<!-- Setting to 72 here makes the px to pt conversions work better (Chrome) -->
<!-- Some may need to set this to 96 though -->
<match target="pattern">
<edit name="dpi" mode="assign">
<double>96</double>
</edit>
</match>
<!-- Use Qt subpixel positioning on autohinted fonts? -->
<!-- This only applies to Qt and autohinted fonts. Qt determines subpixel positioning based on hintslight vs. hintfull, -->
<!-- however infinality patches force slight hinting inside freetype, so this essentially just fakes out Qt. -->
<!-- Should only be set to true if you are not doing any stem alignment or fitting in environment variables -->
<match target="pattern" >
<edit name="qt_use_subpixel_positioning" mode="assign">
<bool>false</bool>
</edit>
</match>
<!-- Run infctl.sh or change the symlink in current directory instead of modifying this -->
<include>conf.d</include>
</fontconfig>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment