Sublime uses system-specific methods for working with fonts; for Linux is uses
fontconfig, which is the standard way for Linux programs to work with and catalog fonts.
This is entirely a
fontconfig thing and Sublime doesn’t care. In particular, it’s
fontconfig's job to find, catalog and match fonts and all Sublime does is ask it for the appropriate font.
This is why for example different distributions of Linux may seem to use a different interface font in Sublime; it just asks
fontconfig for a font named
Sans by default, and whatever font the distribution (or you) has decided to map that to is the one that gets used.
fontconfig searches recursively through the font folders it’s configured with, so you can use whatever layout you like in your fonts directory (i.e. the above in your question is fine).
fontconfig can handle many types of fonts;
woff to name just the ones I happen to have currently installed. Sublime works with all of those font types. Presumably it would also work with bitmapped fonts as well, though I’ve never tried that myself.
The bit where you are potentially going wrong here is that the name of the file that stores the font and the name of the font itself can be radically different; you could install
My Cool Font from a file named
zzz.ttf and it would still work as expected. The name of the font comes from metadata inside of the font file itself.
The easiest way to look something like this up is to use the
fc-list. See the documentation on that if you’re interested in the gory details, but simplistically you want to do something like this in your terminal:
tmartin:dart:~> fc-list : family
Standard Symbols PS
Iosevka Term SS09,Iosevka Term SS09 Medium Oblique
Iosevka Term SS09,Iosevka Term SS09 Extralight Oblique
Iosevka Term SS09,Iosevka Term SS09 Semibold
Century Schoolbook L
DejaVu Math TeX Gyre
Serto Jerusalem Outline
This will list every font that your system knows by name. This is probably overwhelming, so you may want to send it through
less to page it or, if you know something about the name of the font you want you can
grep it out; this doesn’t require a full name, just something you think is probably in there:
tmartin:dart:~> fc-list : family | grep -i jetbrains
JetBrains Mono,JetBrains Mono Semi Light
JetBrains Mono,JetBrains Mono Medium
JetBrains Mono,JetBrains Mono Extra Bold
JetBrains Mono,JetBrains Mono ExtraLight
JetBrains Mono,JetBrains Mono Light
All of the items are font names; some will have a comma in them if there are multiple styles. You can include any one you like. So for example any of the following are valid:
"font_face": "JetBrains Mono",
"font_face": "JetBrains Mono Light",
"font_face": "JetBrains Mono Extra Bold"
If you’re not a terminal guy, your Linux disto/window manager likely has some sort of font viewer or configuration tool that would give you the names of fonts that you could use to discover the name as well. There is also other software such as font-manager that can provide this information, though I’ve personally never used any.