2

In gvim, :set guifont=* brings up a GUI panel from which one can choose a font family, weight, slant, and size. Where does gVim find these fonts?

I'm using Cygwin's X-windows. While the scheme for making fonts available to X-window clients has always come across as complicated to me, I wonder if the fonts of which gVim are aware are the same as those made available by X-windows to all clients?

I found this question posted before, but no answer.

1 Answer 1

0

This is a speculative answer only.

I suspect that gvim has its own set of fonts. Here are the unbolded, unslanted monospace fonts, manually transcribed from the selection list from :set guifont=*:

Consolas Regular
DejaVu Sans Mono Book
Inconsolata Medium
Liberation Mono Regular
Lucida Console Regular
Monospace Regular
Source Code Pro Regular
Source Code Pro Medium

The following are the X-windows fonts. There is very little overlap. So unless there is some aliasing, the set of font families seem to be different:

xlsfonts | sed -e 's/-.*//' | sort -u

10x20
12x24
12x24kana
12x24romankana
5x7
5x8
6x10
6x12
6x13
6x13bold
6x9
7x13
7x13bold
7x13euro
7x13eurobold
7x14
7x14bold
8x13
8x13bold
8x16
8x16kana
8x16romankana
9x15
9x15bold
a14
cursor
decw$cursor
decw$session
fixed
hanzigb16fs
hanzigb16st
hanzigb24st
heb6x13
heb8x13
k14
kana14
kanji16
kanji24
lucidasans
lucidasanstypewriter
micro
nil2
olcursor
olglyph
r14
r16
r24
rk14
rk16
rk24
variable

The very odd thing is that /usr/share/fonts contains folders with names that correspond to font families:

adobe-source-code-pro/  dejavu/       liberation/  terminus/
adobe-source-sans-pro/  inconsolata/  microsoft/   urw-base35/

While they resemble the gvim font names more than the X11 font names, none of the folders contain a file that looks like any variation of lucida. Lucida appears in both gvim and X11 lists of fonts above. There is no file with a name containing the string alias in any of these folders.

Additional information from searching for X11 fonts

In a Cygwin package for font aliases, I found that the usual alias files are obsolete. The entire package has been replaced by xorg-x11-fonts-misc, along with many other font packages. Package xorg-x11-fonts-misc contains "X11 core fonts" in folder tree /usr/share/X11/fonts, binned into the following categories:

100dpi/  75dpi/  encodings/  misc/  Type1/

The misc folder in particular seems to contain the font family names for many of the above families from xlsfonts, e.g., a series of files 10x20-ISO8859-*.pcf.gz, where * seems to be merely a file sequencing number rather than an xfontsel parameter. From find * -type f | grep -i luc, none of the gzipped font files in the /use/share/X11/fonts tree seem to have a name containing the string luc (for Lucida). I tried peering in the gunzipped *.pcf files, but they are binary.

Using cygcheck -lv and searching for (i) /usr/share/fonts and/or (ii) /use/share/X11/fonts, it becomes obvious that the fonts in these two directories come from different packages. I am now floundering in the X-windows font scheme documentation to find a way to make fonts in folder (i) available to X-windows (e.g., as .Xresources fonts for xterm). Currently, xfontsel does not show the fonts available to gvim, at least not by their gvim names. The reason for consolidating the two sets of fonts is that, after spending a lot of time finding a good set of fonts for gvim, I would like to be able to just use those fonts for xterm rather than searching through an entirely new (and seemingly bigger) pool of X11 fonts.

As it turns out, some of the font category folders in /use/share/X11/fonts contain alias definitions that match the font family names from xlsfonts:

head $(find * -name '*alias*')

==> 100dpi/fonts.alias <==
lucidasans-bolditalic-8 -b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-1
lucidasans-bolditalic-10 -b&h-lucida-bold-i-normal-sans-14-100-100-100-p-90-iso8859-1
lucidasans-bolditalic-12 -b&h-lucida-bold-i-normal-sans-17-120-100-100-p-108-iso8859-1
lucidasans-bolditalic-14 -b&h-lucida-bold-i-normal-sans-20-140-100-100-p-127-iso8859-1
lucidasans-bolditalic-18 -b&h-lucida-bold-i-normal-sans-25-180-100-100-p-159-iso8859-1
lucidasans-bolditalic-24 -b&h-lucida-bold-i-normal-sans-34-240-100-100-p-215-iso8859-1
lucidasans-bold-8 -b&h-lucida-bold-r-normal-sans-11-80-100-100-p-70-iso8859-1
lucidasans-bold-10 -b&h-lucida-bold-r-normal-sans-14-100-100-100-p-89-iso8859-1
lucidasans-bold-12 -b&h-lucida-bold-r-normal-sans-17-120-100-100-p-108-iso8859-1
lucidasans-bold-14 -b&h-lucida-bold-r-normal-sans-20-140-100-100-p-127-iso8859-1

==> 75dpi/fonts.alias <==
lucidasans-bolditalic-8 -b&h-lucida-bold-i-normal-sans-8-80-75-75-p-49-iso8859-1
lucidasans-bolditalic-10 -b&h-lucida-bold-i-normal-sans-10-100-75-75-p-67-iso8859-1
lucidasans-bolditalic-12 -b&h-lucida-bold-i-normal-sans-12-120-75-75-p-79-iso8859-1
lucidasans-bolditalic-14 -b&h-lucida-bold-i-normal-sans-14-140-75-75-p-92-iso8859-1
lucidasans-bolditalic-18 -b&h-lucida-bold-i-normal-sans-18-180-75-75-p-119-iso8859-1
lucidasans-bolditalic-24 -b&h-lucida-bold-i-normal-sans-24-240-75-75-p-151-iso8859-1
lucidasans-bold-8 -b&h-lucida-bold-r-normal-sans-8-80-75-75-p-50-iso8859-1
lucidasans-bold-10 -b&h-lucida-bold-r-normal-sans-10-100-75-75-p-66-iso8859-1
lucidasans-bold-12 -b&h-lucida-bold-r-normal-sans-12-120-75-75-p-79-iso8859-1
lucidasans-bold-14 -b&h-lucida-bold-r-normal-sans-14-140-75-75-p-92-iso8859-1

==> misc/fonts.alias <==
! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $
fixed        -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
variable     -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
5x7          -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1
5x8          -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso8859-1
6x9          -misc-fixed-medium-r-normal--9-90-75-75-c-60-iso8859-1
6x10         -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1
6x12         -misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1
6x13         -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
6x13bold     -misc-fixed-bold-r-semicondensed--13-120-75-75-c-60-iso8859-1

This fills in the picture a bit more about where xlsfonts gets its fonts, but not how the fonts in /usr/share/fonts (where gvim likely gets its fonts) can be "registered" for use by other X-windows clients.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.