hilpers


  hilpers > comp.divers.* > comp.applications.emacs

 #1  
16/01/2017, 16h02
Lucas Levrel
Bonjour,

Je voudrais que la taille de la /default face/ soit lue dans une variable
d'environnement. Actuellement dans .emacs j'ai :

(custom-set-faces
'(default ((t (:inherit nil :stipple nil :background "grey80" :foreground
"black" :inverse-video nil :box nil :strike-through nil :overline nil
:underline nil :slant normal :weight normal :height 110 :width normal
:foundry "unknown" :family "Droid Sans Mono"))))
....

Et je voudrais donc que le 110 soit remplacé par la valeur de
EMACS_FACESIZE. Il y a quelques années, pour lire la taille de la fenêtre
dans une variable, on m'avait donné ici ce bout de code (qu'« on » soit à
nouveau remercié, d'ailleurs) :

'(default-frame-alist (cons (cons (quote height) (string-to-int (getenv
"EMACS_HEIGHT"))) (quote ((menu-bar-lines . 1) (tool-bar-lines . 0) (width
.. 82)))))

J'ai essayé de l'adapter mais comme je n'y connais rien en Lisp je n'y
arrive pas. Le plus proche auquel j'arrive c'est [en coupant des bouts
pour le test] :
(cons ':inherit (cons nil (cons ':weight (cons 'normal (cons ':height
(cons (string-to-int (getenv "EMACS_HEIGHT")) '(:foundry "unknown")))))))
Je suppose qu'il y a moyen avec moins de parenthèses !

 #2  
24/01/2017, 13h12
Lucas Levrel
Bonjour,

Le 16 janvier 2017, à 16:02, Lucas Levrel a écrit :
> Je voudrais que la taille de la /default face/ soit lue dans une variable
> d'environnement. Actuellement dans .emacs j'ai :
> (custom-set-faces
> '(default ((t (:inherit nil :stipple nil :background "grey80" :foreground
> "black" :inverse-video nil :box nil :strike-through nil :overline nil
> :underline nil :slant normal :weight normal :height 110 :width normal
> :foundry "unknown" :family "Droid Sans Mono"))))
> ...


J'ai posé la question sur emacs.stackexchange.com
([..])
et l'on m'a proposé ceci :

(custom-set-faces
`(default ((t (:inherit nil [...]
:height ,(string-to-int (getenv "EMACS_FONT_HEIGHT"))
[...] :family "Droid Sans Mono"))))
)

Le gros inconvénient, c'est qu'il n'est plus possible d'utiliser Custom ?
même pour des variables autres que des polices ! ? car il écrase cette
expression par un réglage de la valeur « en dur ».

J'ai essayé de sortir ce réglage de custom-set-faces et de le faire « à
part » avec set-face-attribute mais je n'y arrive pas. Auriez-vous une
solution ?
 #3  
24/01/2017, 15h21
Benoit Izac
Bonjour,

Le 24/01/2017 à 13:12, Lucas Levrel a écrit dans le message
<alpine.LSU.2.20.13.1701241304470.2953> :

[..]
> J'ai essayé de sortir ce réglage de custom-set-faces et de le faire
> « à part » avec set-face-attribute mais je n'y arrive pas. Auriez-vous
> une solution ?


Peut-être que le mieux reste de te faire un thème personnalisé ; voir
« 14.6 Custom Themes » dans le manuel elips ou, par exemple,
<https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el>.
 #4  
16/02/2017, 15h15
Lucas Levrel
Le 24 janvier 2017, à 15:21, Benoit Izac a écrit :

> Peut-être que le mieux reste de te faire un thème personnalisé ; voir
> « 14.6 Custom Themes » dans le manuel elips ou, par exemple,
> <https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el>.


Merci Benoît. Le lien fait plutôt peur vue la faible ampleur des modifs
que j'ai à faire, mais en suivant aussi la doc d'Emacs
[..]
j'y suis parvenu.

J'ai donc maintenant deux micro-thèmes contenant quelque chose comme :
 #5  
14/03/2017, 10h40
Vincent Belaïche
Lucas Levrel <lucas.levrel> writes:

[..]
> (custom-theme-set-faces
> 'toto
> '(default ((t (:height 127)))))
> ---
> et dans mon .emacs j'ai inséré :
> ---
> (if (string-equal "toto" (getenv "PROFIL"))
> (load-theme 'toto t)
> (load-theme 'titi t))
> ---


Dans mon fichier d'init, j'ai le code suivant que j'ai créé il y a
vraiment un bout de temps, et je ne me souviens plus d'où j'ai sorti
cela.

Ce qu'il faut retenir c'est que j'utilise la variable
initial-frame-alist pour régler les paramètres initiaux de la fenêtre
(taille, police, taille de police).

Un petit détail : j'utilise la bibliothèque mathématique calc-ext pour
faire les calculs, mais en fait il y a tout ce qu'il faut en Elisp de
base.

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
;; Plein écran & police
;;-------------------------------------------------------------------
(require 'calc-ext)
(let ((font-size 14)
(h-font-size (math-read-number "11.6"))
(v-font-size (math-read-number "20.5"))
(tool-bar-lines 0)
(menu-bar-lines 1)
calc-command-line)
(setq initial-frame-alist
`(
(font . ,(concat "-*-Lucida Console-*-*-*-*-*-"
(number-to-string (* 10 font-size))
"-*-*-*-*-iso8859-1"))
(top . 1)
(left . 1)
(width . ,(math-fixnum
(calcFunc-round (math-div
(x-display-pixel-width)
h-font-size))))
(height . ,(math-fixnum
(calcFunc-round
(calcFunc-sub (math-div (x-display-pixel-height) v-font-size)
tool-bar-lines menu-bar-lines))))
(tool-bar-lines . ,tool-bar-lines)
(menu-bar-lines . ,menu-bar-lines)
(right-fringe)
(left-fringe);
));
)

;; calcul de la hauteur du cadre, 37 de base, et on ajoute 1
;; s'il y a la barre d'outils, et encore 1 s'il y a la barre
;; de menu.
(let ((height 49))
(dolist (k '(tool-bar-lines menu-bar-lines))
(let ((c (assoc k initial-frame-alist)))
(when (and c (= 0 (cdr c)))
(setq height (1+ height))
)
)
)
(setq initial-frame-alist (cons (cons 'height height) initial-frame-alist))
)
--8<----8<----8<----8<----8<-- end -->8---->8---->8---->8---->8----

Vincent.
 #6  
15/03/2017, 10h36
Lucas Levrel
Le 14 mars 2017, à 10:40, Vincent Belaïche a écrit :

> Dans mon fichier d'init, j'ai le code suivant que j'ai créé (...)


Wow. J'archive ton code, mais pour l'instant je n'utilise que deux écrans
différents donc je reste avec mon choix entre deux réglages trouvés à la
main :-)

Merci.

Discussions similaires
Taille de police

taille de la police

Pb taille de police

Pb de taille de police ds IE


Fuseau horaire GMT +2. Il est actuellement 21h08. | Privacy Policy