Subject: bug#51405: Set default font on Windows to Consolas-11

From: Eli Zaretskii <[email-masked]>
Date: Tue, 26 Oct 2021 15:53:24 +0300

> From: Vince Salvino <[email-masked]>
> Date: Tue, 26 Oct 2021 06:28:16 +0000
> 
> Courier New generally looks terrible on modern screens, as it has been neglected for decades since its original digitization for use with 640x480 CRT screens in the early 90s. Many of the character glyphs are only 1 pixel wide and look like hairlines on an LCD screen.
> 
> To address this, Windows Vista and later ship with Consolas, the default monospaced font used in Notepad, CMD (terminal), and other built-in programs. It is also used by default in nearly every other text/code editor, web browser, and terminal program when requesting a monospace font. Personally speaking, it is magnitudes more legible and easier to read. Consolas looks similar to DejaVu Mono, which is generally the default in GNU systems. 
> 
> This patch changes the default font in MS-Windows to Consolas-11. It will still fall back to the previous default (Courier New-10) on older systems where the font is not available. I want to be clear that this is not a change for the sake of choosing a fashionable font... Consolas has been the default monospace font in Windows for 15 years!

I'm sorry, but this is a non-starter.  Selecting a default font on
Windows that will work reasonably well on all the supported Windows
versions (i.e. Windows 9X to Windows 11) is a delicate and tricky
business.  Courier New, with all its deficiencies, is not a bad font
(I use it on many Windows system, up to and including Windows 10, and
cannot agree that it "looks terrible"), and it satisfies the
non-trivial requirements we have: support for many scripts and
availability on all the Windows versions.  (AFAICT, Consolas still
supports fewer Unicode blocks that Courier new, even on Windows 10.)
Moreover, replacing the default font will inevitably open a Pandora
box of the need to change the settings of some other faces we use in
Emacs (like fixed-pitch and variable-pitch, for example), which need
to be compatible with (i.e. reasonably similar to) the default font,
in order to avoid ugly displays where we mix these two (for example,
in Info buffers).

People who don't like the default font can easily customize their
Emacs to use Consolas (or any other font).  We have several ways of
doing that:

  . Invoke Emacs with "emacs -fn Consolas-11"
  . Put (set-face-font 'default "Consolas-11") in your init file
  . Put "Emacs.font" with the value "Consolas-11" in the Registry,
    under the HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs key

(The latter method emulates the X resources on Posix platforms.)

So, given that it is so easy to customize the default font, and OTOH
given the non-trivial issues that will be caused by changing the
default, I think we should not change the default, not in the
observable future.

In any case, a proposal to change the default font must be accompanied
by suitable changes to the basic faces that request different font
families, and we must also carefully consider the coverage of the
candidate font vs that of Courier new, because any Unicode block
covered by Courier New but not the contender would mean potential
display problems due to font size/pitch mismatches, which usually
results in user complaints.

Thanks.