ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.21k stars 174 forks source link

Steam client doesn't look in $HOME/.local/share/fonts to find fonts #2307

Open justinmayhew opened 11 years ago

justinmayhew commented 11 years ago

I have Arial installed under ~/.local/share/fonts but the Steam client doesn't pick it up.

It appears as if the Steam client is only looking at ~/.fonts, because If I symlink ~/.fonts to ~/.local/share/fonts it does indeed render the client using Arial.

As far as I understand, ~/.fonts is the old, deprecated place to store fonts in a users home directory. The GNOME Font Viewer application installs fonts into the new location, and applications like Chromium and Firefox are indeed looking in the new location for fonts.

It's a minor issue - the Steam client is still usable using the Liberation fonts.

Processor Information:
Vendor:  GenuineIntel
Speed: 2331 Mhz
2 logical processors
2 physical processors
HyperThreading:  Unsupported
FCMOV:  Supported
SSE2:  Supported
SSE3:  Supported
SSSE3:  Supported
SSE4a:  Unsupported
SSE41:  Unsupported
SSE42:  Unsupported

Network Information:
Network Speed:  

Operating System Version:
Linux (64 bit)
Kernel Name:  Linux
Kernel Version:  3.8.6-1-ARCH
X Server Vendor:  The X.Org Foundation
X Server Release:  11400000
X Window Manager:  GNOME Shell
Steam Runtime Version:  steam-runtime-release-i386_2013-03-25

Video Card:
Driver:  NVIDIA Corporation GeForce 9800 GT/PCIe/SSE2

Driver Version:  3.3.0 NVIDIA 313.30
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 60 Hz
VendorID:  0x10de
DeviceID:  0x614
Number of Monitors:  1
Number of Logical Video Cards:  1
Primary Display Resolution:  1920 x 1080
Desktop Resolution: 1920 x 1080
Primary Display Size: 20.04" x 11.26"  (22.95" diag)
                                        50.9cm x 28.6cm  (58.3cm diag)
Primary Bus: PCI Express 16x
Primary VRAM: 1024 MB
Supported MSAA Modes:  2x 4x 8x 16x 

Sound card:
Audio device: Analog Devices AD1988

Memory:
RAM:  2005 Mb

Miscellaneous:
UI Language:  English
LANG:  en_US.utf8
Microphone:  Not set
Total Hard Disk Space Available:  112069 Mb
Largest Free Hard Disk Block:  93016 Mb

Installed software:

Recent Failure Reports:
johndrinkwater commented 11 years ago

Is ~/.local/share/fonts a thing? Could you share your /etc/fonts/fonts.conf and /etc/fonts/local.conf (local.conf might be inside /etc/fonts/conf.d/) files please.

http://wiki.debian.org/Fonts + https://wiki.ubuntu.com/Fonts + http://en.gentoo-wiki.com/wiki/X.Org/Fonts#User_Fonts + https://wiki.archlinux.org/index.php/Font_Configuration have nothing on it.

justinmayhew commented 11 years ago

I'm not sure if it's a thing or not, but the GNOME Font Viewer 3.8.0 on Arch Linux seems to think so. It would be weird for Chromium and Firefox to be looking in that directory if it wasn't a proper place for fonts.

/etc/fonts/fonts.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>

<!--
    DO NOT EDIT THIS FILE.
    IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
    LOCAL CHANGES BELONG IN 'local.conf'.

    The intent of this standard configuration file is to be adequate for
    most environments.  If you have a reasonably normal environment and
    have found problems with this configuration, they are probably
    things that others will also want fixed.  Please submit any
    problems to the fontconfig bugzilla system located at fontconfig.org

    Note that the normal 'make install' procedure for fontconfig is to
    replace any existing fonts.conf file with the new version.  Place
    any local customizations in local.conf which this file references.

    Keith Packard
-->

<!-- Font directory list -->

    <dir>/usr/share/fonts</dir>
    <dir>/usr/share/fonts</dir>
    <dir prefix="xdg">fonts</dir>
    <!-- the following element will be removed in the future -->
    <dir>~/.fonts</dir>

<!--
  Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>mono</string>
        </test>
        <edit name="family" mode="assign" binding="same">
            <string>monospace</string>
        </edit>
    </match>

<!--
  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>sans serif</string>
        </test>
        <edit name="family" mode="assign" binding="same">
            <string>sans-serif</string>
        </edit>
    </match>

<!--
  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
-->
    <match target="pattern">
        <test qual="any" name="family">
            <string>sans</string>
        </test>
        <edit name="family" mode="assign" binding="same">
            <string>sans-serif</string>
        </edit>
    </match>

<!--
  Load local system customization file
-->
    <include ignore_missing="yes">/etc/fonts/conf.d</include>

<!-- Font cache directory list -->

    <cachedir>/var/cache/fontconfig</cachedir>
    <cachedir prefix="xdg">fontconfig</cachedir>
    <!-- the following element will be removed in the future -->
    <cachedir>~/.fontconfig</cachedir>

    <config>
<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
 -->
        <blank>
            <int>0x0020</int>   <!-- SPACE -->
            <int>0x00A0</int>   <!-- NO-BREAK SPACE -->
            <int>0x00AD</int>   <!-- SOFT HYPHEN -->
            <int>0x034F</int>   <!-- COMBINING GRAPHEME JOINER -->
            <int>0x0600</int>   <!-- ARABIC NUMBER SIGN -->
            <int>0x0601</int>   <!-- ARABIC SIGN SANAH -->
            <int>0x0602</int>   <!-- ARABIC FOOTNOTE MARKER -->
            <int>0x0603</int>   <!-- ARABIC SIGN SAFHA -->
            <int>0x06DD</int>   <!-- ARABIC END OF AYAH -->
            <int>0x070F</int>   <!-- SYRIAC ABBREVIATION MARK -->
            <int>0x115F</int>   <!-- HANGUL CHOSEONG FILLER -->
            <int>0x1160</int>   <!-- HANGUL JUNGSEONG FILLER -->
            <int>0x1680</int>   <!-- OGHAM SPACE MARK -->
            <int>0x17B4</int>   <!-- KHMER VOWEL INHERENT AQ -->
            <int>0x17B5</int>   <!-- KHMER VOWEL INHERENT AA -->
            <int>0x180E</int>   <!-- MONGOLIAN VOWEL SEPARATOR -->
            <int>0x2000</int>   <!-- EN QUAD -->
            <int>0x2001</int>   <!-- EM QUAD -->
            <int>0x2002</int>   <!-- EN SPACE -->
            <int>0x2003</int>   <!-- EM SPACE -->
            <int>0x2004</int>   <!-- THREE-PER-EM SPACE -->
            <int>0x2005</int>   <!-- FOUR-PER-EM SPACE -->
            <int>0x2006</int>   <!-- SIX-PER-EM SPACE -->
            <int>0x2007</int>   <!-- FIGURE SPACE -->
            <int>0x2008</int>   <!-- PUNCTUATION SPACE -->
            <int>0x2009</int>   <!-- THIN SPACE -->
            <int>0x200A</int>   <!-- HAIR SPACE -->
            <int>0x200B</int>   <!-- ZERO WIDTH SPACE -->
            <int>0x200C</int>   <!-- ZERO WIDTH NON-JOINER -->
            <int>0x200D</int>   <!-- ZERO WIDTH JOINER -->
            <int>0x200E</int>   <!-- LEFT-TO-RIGHT MARK -->
            <int>0x200F</int>   <!-- RIGHT-TO-LEFT MARK -->
            <int>0x2028</int>   <!-- LINE SEPARATOR -->
            <int>0x2029</int>   <!-- PARAGRAPH SEPARATOR -->
            <int>0x202A</int>   <!-- LEFT-TO-RIGHT EMBEDDING -->
            <int>0x202B</int>   <!-- RIGHT-TO-LEFT EMBEDDING -->
            <int>0x202C</int>   <!-- POP DIRECTIONAL FORMATTING -->
            <int>0x202D</int>   <!-- LEFT-TO-RIGHT OVERRIDE -->
            <int>0x202E</int>   <!-- RIGHT-TO-LEFT OVERRIDE -->
            <int>0x202F</int>   <!-- NARROW NO-BREAK SPACE -->
            <int>0x205F</int>   <!-- MEDIUM MATHEMATICAL SPACE -->
            <int>0x2060</int>   <!-- WORD JOINER -->
            <int>0x2061</int>   <!-- FUNCTION APPLICATION -->
            <int>0x2062</int>   <!-- INVISIBLE TIMES -->
            <int>0x2063</int>   <!-- INVISIBLE SEPARATOR -->
            <int>0x206A</int>   <!-- INHIBIT SYMMETRIC SWAPPING -->
            <int>0x206B</int>   <!-- ACTIVATE SYMMETRIC SWAPPING -->
            <int>0x206C</int>   <!-- INHIBIT ARABIC FORM SHAPING -->
            <int>0x206D</int>   <!-- ACTIVATE ARABIC FORM SHAPING -->
            <int>0x206E</int>   <!-- NATIONAL DIGIT SHAPES -->
            <int>0x206F</int>   <!-- NOMINAL DIGIT SHAPES -->
            <int>0x2800</int>   <!-- BRAILLE PATTERN BLANK -->
            <int>0x3000</int>   <!-- IDEOGRAPHIC SPACE -->
            <int>0x3164</int>   <!-- HANGUL FILLER -->
            <int>0xFEFF</int>   <!-- ZERO WIDTH NO-BREAK SPACE -->
            <int>0xFFA0</int>   <!-- HALFWIDTH HANGUL FILLER -->
            <int>0xFFF9</int>   <!-- INTERLINEAR ANNOTATION ANCHOR -->
            <int>0xFFFA</int>   <!-- INTERLINEAR ANNOTATION SEPARATOR -->
            <int>0xFFFB</int>   <!-- INTERLINEAR ANNOTATION TERMINATOR -->
        </blank>
<!--
  Rescan configuration every 30 seconds when FcFontSetList is called
 -->
        <rescan>
            <int>30</int>
        </rescan>
    </config>

</fontconfig>

/etc/fonts/conf.d/51-local.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <!-- Load local system customization file -->
    <include ignore_missing="yes">local.conf</include>
</fontconfig>
johndrinkwater commented 11 years ago

Just getting information :) <dir prefix="xdg">fonts</dir> is setting this for fontconfig, so Steam should be able to pick up fonts in that location. If you run this in a terminal fc-match :family=Arial could you provide the output.

justinmayhew commented 11 years ago
% fc-match :family=Arial
Arial.ttf: "Arial" "Normal"
gdrewb-valve commented 11 years ago

Steam just uses fontconfig and freetype2 and doesn't do any direct font file lookups, so it's not clear why it's not working for you, particularly if fc-match is working. Steam should be getting the same results as fc-match since it's using fontconfig.

The behavior you're seeing is that Steam is using Liberation instead of Arial but is otherwise working? That seems like Steam was given a different font by fontconfig. Do you have any custom skins or anything else?

justinmayhew commented 11 years ago

Yeah, Liberation instead of Arial but everything works fine.

I've tested it multiple times by symlinking ~/.fonts to ~/.local/share/fonts. When the symlink is there, the client renders using Arial. When it's not there, it renders with Liberation.

I'm using a default steam client, no skins.

gdrewb-valve commented 11 years ago

Strange. I don't have any immediate suggestions; we'll see if we can repro here.

elizagamedev commented 8 years ago

For what it's worth, I can reproduce this issue on Arch Linux too. Doesn't work without ~/.fonts symlink, works with it. I am using a skin (Air for Steam).

Processor Information:
    Vendor:  GenuineIntel
    CPU Family:  0x6
    CPU Model:  0x3c
    CPU Stepping:  0x3
    CPU Type:  0x0
    Speed:  3900 Mhz
    8 logical processors
    4 physical processors
    HyperThreading:  Supported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Supported
    SSE4a:  Unsupported
    SSE41:  Supported
    SSE42:  Supported

Network Information:
    Network Speed:  

Operating System Version:
    "Arch Linux" (64 bit)
    Kernel Name:  Linux
    Kernel Version:  4.2.5-1-ARCH
    X Server Vendor:  The X.Org Foundation
    X Server Release:  11800000
    X Window Manager:  i3
    Steam Runtime Version:  steam-runtime-release_2015-06-12

Video Card:
    Driver:  Intel Open Source Technology Center Mesa DRI Intel(R) Haswell Desktop x86/MMX/SSE2

    Driver Version:  3.0 Mesa 11.0.6
    OpenGL Version: 3.0
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 60 Hz
    VendorID:  0x10de
    DeviceID:  0x1187
    Number of Monitors:  2
    Number of Logical Video Cards:  2
    Primary Display Resolution:  1920 x 1080
    Desktop Resolution: 3360 x 1080
    Primary Display Size: 23.54" x 13.23"  (26.97" diag)
                                            59.8cm x 33.6cm  (68.5cm diag)
    Primary VRAM Not Detected

Sound card:
    Audio device: 

Memory:
    RAM:  16027 Mb

Miscellaneous:
    UI Language:  English
    LANG:  en_US.utf8
    Microphone:  Not set
    Total Hard Disk Space Available:  1490114 Mb
    Largest Free Hard Disk Block:  163474 Mb

Installed software:

Recent Failure Reports:
Grief commented 5 years ago

I confirm the issue. ~/.fonts is actually deprecated in many distros: https://lists.freedesktop.org/archives/fontconfig/2014-July/005269.html

dearlygparted commented 5 years ago

I'm on Arch with Gnome as well and I don't have any ~/.fonts or .local/share/fonts directory, but I do have /usr/share/fonts and /etc/fonts