Les réponses mentionnant window-system
et display-graphic-p
ne sont pas mauvais, mais ils ne disent pas l'image complète.
En réalité, un seul exemple Emacs peut avoir plusieurs images, dont certaines pourraient être sur un terminal, et d'autres qui pourraient être sur un système de fenêtre. C'est-à-dire, vous pouvez obtenir différentes valeurs de window-system
au sein d'une même Emacs instance.
Par exemple, vous pouvez démarrer une fenêtre-système d'Emacs puis de vous y connecter via emacsclient -t
dans un terminal; le terminal cadre verrez une valeur de nil
pour window-system
. De même, vous pouvez commencer à emacs en mode démon, puis, plus tard, lui demander de créer un cadre graphique.
En conséquence de cela, éviter de mettre de code dans votre .emacs qui dépend window-system
. Au lieu de cela, mettre le code comme votre set-frame-size
exemple dans une fonction de raccordement qui court après une image est créée:
(add-hook 'after-make-frame-functions
(lambda ()
(if window-system
(set-frame-size (selected-frame) 166 100)))))
Notez que l' 'after-make-frame-functions
crochet n'est pas exécuté pour la première image, il est donc souvent nécessaire d'ajouter les images liées au crochet, comme les fonctions que ci-dessus pour 'after-init-hook
.