On Wed, Aug 13, 2025 at 03:42:47PM -0400, Thomas Dickey wrote:
> On Wed, Aug 13, 2025 at 12:51:33PM +0100, Chris Green wrote:
> > I've been revisiting my "what font to use for xvile on a 4k screen"
> > issue and, as a result, I have a question.
> > 
> > Among the fonts listed by xlsfonts there are the following bitstream
> > terminal ones:-
> > 
> >     -bitstream-terminal-bold-r-normal--0-0-100-100-c-0-dec-dectech
> >     -bitstream-terminal-bold-r-normal--0-0-100-100-c-0-iso8859-1
> >     -bitstream-terminal-bold-r-normal--18-140-100-100-c-110-dec-dectech
> >     -bitstream-terminal-bold-r-normal--18-140-100-100-c-110-iso8859-1
> >     -bitstream-terminal-medium-r-normal--0-0-100-100-c-0-dec-dectech
> >     -bitstream-terminal-medium-r-normal--0-0-100-100-c-0-iso8859-1
> >     -bitstream-terminal-medium-r-normal--18-140-100-100-c-110-dec-dectech
> >     -bitstream-terminal-medium-r-normal--18-140-100-100-c-110-iso8859-1
> > 
> > On my laptop 
> > -bitstream-terminal-medium-r-normal--18-140-100-100-c-110-iso8859-1
> > works very nicely, however it's just a bit too small for my aging eyes
> > on the 4k screen.
> > 
> > Do those -bitstream-terminal-medium-r-normal--0-0-100-100-c-0-iso8859-1 
> > type entries allow generation of different sizes somehow?  If not then
> > what are they exactly as they don't have any sort of size specified do
> > they?
> 
> I recall seeing some comment that those are used to denote
> bitmap fonts which X (or fontconfig?) will (try to) scale.
> 
> Looking to check my recollection, I don't see a connection with fontconfig.
> 
> The X(7) manpage mentions the 0's:
> 
>        The xlsfonts program can be used to list all of the fonts that match  a
>        given  pattern.  With no arguments, it lists all available fonts.  This
>        will usually list the same font at many different sizes.  To  see  just
>        the base scalable font names, try using one of the following patterns:
> 
>            -*-*-*-*-*-*-0-0-0-0-*-0-*-*
>            -*-*-*-*-*-*-0-0-75-75-*-0-*-*
>            -*-*-*-*-*-*-0-0-100-100-*-0-*-*
> 
>        To  convert  one of the resulting names into a font at a specific size,
>        replace one of the first two zeros with a  nonzero  value.   The  field
>        containing the first zero is for the pixel size; replace it with a spe‐
>        cific height in pixels to name a font at that size.  Alternatively, the
>        field containing the second zero is for the point size; replace it with
>        a specific size in decipoints (there are 722.7 decipoints to the  inch)
>        to  name a font at that size.  The last zero is an average width field,
>        measured in tenths of pixels; some servers will anamorphically scale if
>        this value is specified.
> 
> and has one other mention of scalable fonts:
> 
>        Fonts come in various sizes.  The X  server  supports  scalable  fonts,
>        meaning it is possible to create a font of arbitrary size from a single
>        source for the font.  The server supports scaling  from  outline  fonts
>        and bitmap fonts.  Scaling from outline fonts usually produces signifi‐
>        cantly better results than scaling from bitmap fonts.
> 
> https://tronche.com/wiki/Howto_specify_X_scalable_fonts_from_the_command_line
> 
> goes into more detail, explaining how to configure:
> 
> Looking for "x server scalable fonts" finds 
> 
> https://packages.debian.org/sid/fonts/xfonts-scalable
> 
> https://wiki.archlinux.org/title/X_Logical_Font_Description
> 
> but in a quick check, the bitstream fonts look grainy.  I don't see the
> "bitstream-terminal" in
> 
>       /etc/X11/fonts/Type1/xfonts-scalable.scale
> 
> but trying some of the patterns in that file, the result looks less grainy
> (but also less weight - ymmv)
> 
Yes, thanks Thomas, I've been digging around this a bit too.  They do
appear to be fonts that X can scale somehow.  To use them with xvile
you can do something like:-

    xvile -fn -bitstream-terminal-medium-r-normal--24-0-100-100-c-0-iso8859-1

and something in X will produce a 24pt font.  If you happen to put 18
for the point size then you'll get the ready made font as it matches:-

    -bitstream-terminal-medium-r-normal--18-140-100-100-c-110-iso8859-1

The scaled fonts are a bit clunky but sometimes better than nothing. :-)

As it is -bitstream-terminal-medium-r-normal--18-140-100-100-c-110-iso8859-1
is about the best font I can find for xvile on my 4k screen. There
just aren't any ready made bitmap fonts in larger sizes that I can
find.  Well, there's a few, like the terminus fonts in Debian but
these are very 'thin' and don't work well as dark text on a light
background which is what I prefer.


Roll on xvile having support for truetype/opentype fonts! :-)

-- 
Chris Green

Reply via email to