46

I can't set Inconsolata as default font in Emacs 24.4 Linux.

  • I changed the font in the menu -> Save options. The font changed but after a restart the font is the same as it was by default.

  • Added this to ~/.Xresources: Emacs.font: Inconsolata LGC

    Then in init.el: (set-default-font "Inconsolata LGC"). Same story.

What I'm doing wrong?

6
  • If the font works when you set it, but is gone again the next time you load emacs, this might be a problem with where your customize settings are (or aren't) getting saved to.
    – nispio
    Commented Oct 23, 2014 at 16:12
  • 1
    I use emacsclient with emacs started as a daemon. I change settings in init.el and after saving restart the daemon.
    – Maglight
    Commented Oct 23, 2014 at 16:33
  • 2
    Is this specific to Emacs 24.4? IOW, do you get different behavior in another build/release? If not, consider removing the reference to 24.4.
    – Drew
    Commented Oct 23, 2014 at 16:39
  • Since you are starting emacs as a daemon, inspect all of the console output from your call to emacs --daemon and make sure that there are no error messages.
    – nispio
    Commented Oct 23, 2014 at 17:38
  • 1
    I have this in my init.el: (set-frame-font "Ubuntu Mono 11")
    – thdox
    Commented May 13, 2015 at 18:53

6 Answers 6

40

I have the following in my .emacs using Emacs for OSX:

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 130 :width normal :family "Inconsolata")))))

Setting the font

It's easiest to set the font using the menus if you're running Emacs in a graphical environment. Use "Options -> Set Default Font..." from the menus.

Now, you're not done because you've only changed the font temporarily. The easiest method that I know of is to use the customization mode.

M-x customize-face RET default RET

Now change the options you wish to change, if any. If you've already changed the font using the menus, you should see your changes here.

Saving to your init file

Save For Future Sessions by either:

  • Click on the State button and choose Save For Future Sessions

or

  • C-x C-s while in the Customization buffer which will should do the same thing but doesn't always work, e.g. after (set-default-font "Inconsolata")

If all else fails...

You may have luck with the Set Fonts page.

32

I use this in my init.el:

;; Set default font
(set-face-attribute 'default nil
                    :family "Source Code Pro"
                    :height 110
                    :weight 'normal
                    :width 'normal)

You could try the same using Inconsolata instead of Source Code Pro.

12
  • Added it in init.el. After restart still font by default.
    – Maglight
    Commented Oct 23, 2014 at 15:56
  • Have you typed "InconsolataLGC" without the blank space between "Inconsolata" and "LGC"? Commented Oct 23, 2014 at 16:01
  • Yes, I also tried to set it to Terminus.
    – Maglight
    Commented Oct 23, 2014 at 16:07
  • 1
    Try running fc-cache -fv from your terminal. Maybe font cache is not up-to-date. I tried setting Anonymous Pro and it works on mine. Commented Oct 23, 2014 at 16:10
  • Thanks, but that didn't help. I can set this font, but Emacs doesn't save it in future sessions.
    – Maglight
    Commented Oct 23, 2014 at 16:15
14

If you changed something in .Xresources file then you need to reread it to see any changes in current session.

  • To keep your old resources settings and apply new one:

    xrdb -merge ~/.Xresources
    
  • To throw away your old resources and apply only settings from .Xresources:

    xrdb ~/.Xresources
    

Adjustments in .Xresources file are better, because they are applied before mapping emacs' X11 window. Customizations in init files (.emacs, .emacs.d/) are re-applied to already created window. You can for example avoid toolbars "flickering" during startup when you add

! UI elements
Emacs.menuBar: 0
Emacs.toolBar: 0
Emacs.verticalScrollBars: off
! Font settings
Emacs.FontBackend: xft,x
Emacs.font: Inconsolata LGC:size=16

to your .Xresources file.

You can check what else is available at https://www.gnu.org/software/emacs/manual/html_node/emacs/X-Resources.html

8

From: https://www.gnu.org/software/emacs/manual/html_node/emacs/Fonts.html#Fonts

Add a line to your init file:

(add-to-list 'default-frame-alist
             '(font . "DejaVu Sans Mono-10"))
7

This always works whenever I want to try other fonts (put it in your init.el or .emacs file):

(push '(font . "Inconsolata") default-frame-alist)

or

(add-to-list 'default-frame-alist '(font . "Inconsolata"))

In this case both expressions are equivalent.

In short, these forms set the font for the current and all future Emacs frames. Since these are saved in your configuration file, the setup is not lost on restart.

1

All I did after setting my font with Options/Set Default Font... was Options/Save Options and it saved it to my .emacs, and it worked.

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.