I have set up my system to start up an emacs daemon automatically at system startup, to avoid the several seconds delay when I want to edit a file. The problem is, that setting up fonts does not work when there are no open frames. Moreover, in archlinux, emacs 24.5.1 actually crashes if I do that.
The surprising thing is that setting up fonts via either of the hooks
before-make-frame-hook does not work -
the former does not set them up the first time a frame is opened, and
the second one continues leading to a crash (as one might expect).
I recently stumbled upon this entry in emacswiki,
where someone uses
server-create-window-system-frame for a similar job
(setting up a theme only for frames in the window syste). Now I use the
following code to setup proper looking fonts in emacs, in all situations