Emacs Init: Setup Font

By Xah Lee. Date: . Last updated: .

This page shows you how to set font for emacs in init file.

Change Font/Size Globally by Menu

Chose the menu:

  1. menu [Options ▸ Set Default Font…]
  2. menu [Options ▸ Save Options].

This changes the default font for all your current session's emacs windows/buffers, and also save it to the Emacs Init File in the custom-set-variables section. [see Emacs: M-x customize Tutorial]

emacs font size menu 2021-03-18
emacs font size menu 2021-03-18
emacs font size dialog 2021-03-18
emacs font size dialog 2021-03-18

Set Default Font and Size in Init File

put this in your Emacs Init File:

;; set default font
(cond
 ((eq system-type 'windows-nt)
  (when (member "Consolas" (font-family-list))
    (set-frame-font "Consolas" t t)))
 ((eq system-type 'darwin) ; macOS
  (when (member "Menlo" (font-family-list))
    (set-frame-font "Menlo" t t)))
 ((eq system-type 'gnu/linux)
  (when (member "DejaVu Sans Mono" (font-family-list))
    (set-frame-font "DejaVu Sans Mono" t t))))

You can add a font size:

(when (member "Consolas" (font-family-list))
  (set-frame-font "Consolas-14" t t))

See also: Emacs Lisp: Determine OS, Emacs Version, Machine Host Name

List available fonts

(print (font-family-list))

[see Evaluate Emacs Lisp Code]

Check if a font exist

;; returns true if Symbola exists
(member "Symbola" (font-family-list))

[see Emacs: Evaluate Elisp Code]

How to install font

Restart emacs. Emacs should see it.

Reference

Emacs Font Setup