help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: proper setting of default font (and string-handling in elisp?)


From: Xah Lee
Subject: Re: proper setting of default font (and string-handling in elisp?)
Date: Tue, 25 Aug 2009 22:13:26 -0700 (PDT)
User-agent: G2/1.0

On Aug 25, 7:11 pm, Tom Roche <Tom_Ro...@pobox.com> wrote:
> summary:
>
> I'm running an emacs-23 and am wanting to set my default font for
> every frame in init.el. How to do so properly?
>
> details:
>
> This morning I was happily running an up-to-date ubuntu 9.04 (jaunty)
> and its stock emacs=22.2.1 when installing the Sun JRE somehow broke
> my default emacs font. After much googling and twiddling of emacs=22,
> some posts convinced me to go to emacs=23 for
>
> mainmenu>Options>Set Default Font...
>
> So I installed emacs-snapshot-gtk, and it indeed works as advertised.
> Unfortunately
>
> 0 I want to set the default font automagically on each start of emacs.
>   Putting
>
> (setq tlr-default-font "Courier 10 Pitch-9")
> (if (>= emacs-major-version 23)
>   (progn
>     (set-frame-font tlr-default-font)))
>
>   in my init.el sorta fixes that, except ...
>
> 1 I would like emacs to come up showing the default font I set. If
>   it's possible to make that happen via init.el (rather than, e.g.,
>   `emacs --font=...`) I'd like to know. However this is not as
>   important to me as the next item ...
>
> 2 I also want every new frame I open (with e.g. C-x 5 b) to use my
>   default font. From googling, my impression is that I should do
>   something like
>
> (setq tlr-default-font "Courier 10 Pitch-9")
> (if (>= emacs-major-version 23)
>   (progn
>     (set-frame-font tlr-default-font)
> ;    (add-to-list 'default-frame-alist '(font . tlr-default-font))
> ;    (add-to-list 'default-frame-alist '(font . 'tlr-default-font))
> ))
>
>   but the commented lines fail. Is this solely an elisp problem (which
>   I'd like to know how to fix anyway)? Or is there also a better way
>   to set the default font for every frame I open?

yeah, there's a better way.

pull the menu “Options‣Set Default Font”. Choose a font. Then pull
“Options‣Save Options”. That should do it. However, on Windows, i
noticed there's a bug that doesn't save the font. A work around is
that, once you did the above, then type M-x customize. Then randomly
choose something to customize. Then press Save for Future Sessions.
That should save the font you've choosen. In particular, you should
add something like the following in your emacs init file:

(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 (:inherit nil :stipple nil :background
"honeydew" :foreground "SystemWindowText" :inverse-video nil :box
nil :strike-through nil :overline nil :underline nil :slant
normal :weight normal :height 98 :width normal :foundry
"outline" :family "Lucida Sans Unicode"))))
 '(completions-common-part ((t (:inherit default :foreground "red"))))
 '(pp^L-highlight ((((type x w32 mac graphic) (class color))
(:underline "maroon"))))
 '(show-paren-match ((((class color) (background light)) (:background
"azure2")))))

I am also interested in the raw elisp code to save the font or other
face related things, without the custom-set-faces.

Given a (custome-set-faces ...) code, how do i pull things out and
create the equivalent elisp code? setq certainly won't work.

  Xah
∑ http://xahlee.org/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]