Comment puis-je définir différentes tailles de police pour les tampons et pour la ligne de mode?

14

J'ai cette ligne dans mon fichier init.el pour définir la taille de la police dans tous les cadres:

(push '(font . "DejaVu Sans Mono-10") default-frame-alist)

Cela fonctionne mais j'aimerais avoir une police plus grande dans tous les tampons tout en gardant une police plus petite pour la ligne de mode (afin qu'elle puisse contenir plus d'informations et être moins distrayante). L'idée est d'avoir cet ensemble automatiquement sans avoir à changer la taille de la police avec Cx C- + pour chaque tampon ouvert.

J'utilise Emacs 25.0.50.1 compilé à partir de trunk sur un système GNU / Linux.

Edit: vient d'ajouter une réponse montrant comment cela peut être fait.

undostres
la source

Réponses:

14

Essayez de remplacer le code de définition de la taille de police par ceci:

(set-face-attribute 'default nil :font "DejaVu Sans Mono-14")
(set-face-attribute 'mode-line nil :font "DejaVu Sans Mono-10")

Bien sûr, vous voudrez changer les tailles ( 14et 10) en valeurs de votre choix.


Si vous souhaitez personnaliser un visage spécifique sans en connaître le nom, essayez de faire

M-x list-faces-display RET

Cela vous donnera une liste de tous les visages (avec des aperçus) que vous pouvez rechercher pour des mots clés spécifiques.

itsjeyd
la source
1
Merci, c'était tout. La fonction list-faces-display s'avère très utile car il existe 5 faces liées à la ligne de mode qui peuvent être modifiées.
undostres
@undostres Vous êtes les bienvenus :)
itsjeyd
Existe-t-il un moyen de spécifier la police par rapport au thème par défaut? La spécification d'une taille de police spécifique arrête la mise à l'échelle de la police lors de l'utilisation d'augmentation / diminution d'échelle de texte
jr0cket
7

Grâce à la réponse fournie par itsjeyd, j'ai réussi à écrire une courte expression pour changer la taille de tous les visages liés à la ligne de mode pour toutes les images actuelles et futures.

Si vous utilisez d'autres thèmes en plus du thème par défaut (comme zenburn, etc.), le code doit être placé après avoir déclaré le thème; c'est-à-dire, après cette ligne:

(load-theme 'solarized-light t)

En supposant que votre taille de police par défaut est différente de 10, le code serait:

(let ((faces '(mode-line
               mode-line-buffer-id
               mode-line-emphasis
               mode-line-highlight
               mode-line-inactive)))
     (mapc
      (lambda (face) (set-face-attribute face nil :font "DejaVu Sans Mono-10"))
      faces))

Pour une police plus petite, définissez une valeur plus petite ("DejaVu Sans Mono-9"). D'autres polices peuvent être utilisées: inconsolata, etc.

Modifier: a ajouté une capture d'écran montrant les résultats. La taille de police sur la ligne de mode est 10 tandis que le reste (tampons, etc.) est 12.

Police de ligne de mode plus petite

undostres
la source