Êtes-vous sûr de vouloir dire un thème de couleur et non un thème personnalisé ? Si vous n'utilisez pas le tiers, color-theme.elvous voulez probablement dire un thème personnalisé. Dans ce cas, veuillez modifier votre question en conséquence. Voir Thèmes de couleurs et personnalisés .
Drew
Réponses:
13
Je préfère utiliser custom-theme-set-facespour redéfinir la façon dont le thème affiche un visage particulier, par exemple,
Pour le cas spécifique de zenburn, le thème lui-même définit différentes couleurs et une macro dans laquelle celles-ci sont liées à des noms de variable, vous pouvez donc écrire ce qui suit comme:
où êtes-vous censé écrire ce morceau de code? dans .spacemacs?
ChiseledAbs
1
Aucune idée, désolé; Je n'utilise pas Spacemacs. En principe cependant, tout ce que vous avez à faire est de faire évaluer le code quelque temps après le zenburnchargement du thème.
Par exemple, j'ai les éléments suivants coupés dans dotspacemacs/user-initmon .spacemacspour ajuster la couleur d'arrière-plan et de numéro de lin de la gruvbox et le thème de la lumière solaire:
J'ai ajouté des conseils à la fonction de thème de chargement pour remplacer certains visages - de cette façon, vous pouvez continuer à utiliser le thème de chargement comme d'habitude pour sélectionner un thème et il appliquera automatiquement les remplacements.
(defadvice load-theme (after theme-set-overrides activate)
"Set override faces for different custom themes."
(dolist (theme-settings theme-overrides)
(let ((theme (car theme-settings))
(faces (cadr theme-settings)))
(if (member theme custom-enabled-themes)
(dolist (face faces)
(custom-theme-set-faces theme face))))))
(defcustom theme-overrides nil
"Association list of override faces to set for different custom themes.")
(defun alist-set (alist-symbol key value)
"Set VALUE of a KEY in ALIST-SYMBOL."
(set alist-symbol
(cons (list key value) (assq-delete-all key (eval alist-symbol)))))
; override some settings of the ample-flat theme
(alist-set 'theme-overrides 'ample-flat '(
(default ((t (:background "gray12" :foreground "#bdbdb3"))))
(mode-line ((t (:background "cornsilk4" :foreground "#222" :inherit 'variable-pitch))))
(outline-2 ((t (:inherit font-lock-keyword-face)))) ; blueish
(outline-3 ((t (:inherit font-lock-comment-face)))) ; brownish
(outline-4 ((t (:inherit font-lock-string-face)))) ; orangeish
(org-table ((t (:inherit fixed-pitch :height 0.7 :foreground "#887"))))
(org-formula ((t (:inherit org-table :foreground nil))))
))
Cela fonctionne, et ce serait bien d'avoir une partie de l'interface, mais il est probablement plus simple de simplement créer une fonction pour chaque thème que vous utilisez et d'appeler custom-theme-set-faces après le chargement -
Il vous sera peut-être plus facile de simplement utiliser SPC SPCcustom-theme-visit-theme, rechercher gruvbox, y apporter vos modifications et ensuite simplement le placer (load-file "~/.emacs.d/gruvbox-theme.el")dans votre dotspacemacs/user-configfonction.
color-theme.el
vous voulez probablement dire un thème personnalisé. Dans ce cas, veuillez modifier votre question en conséquence. Voir Thèmes de couleurs et personnalisés .Réponses:
Je préfère utiliser
custom-theme-set-faces
pour redéfinir la façon dont le thème affiche un visage particulier, par exemple,Pour le cas spécifique de
zenburn
, le thème lui-même définit différentes couleurs et une macro dans laquelle celles-ci sont liées à des noms de variable, vous pouvez donc écrire ce qui suit comme:la source
.spacemacs
?zenburn
chargement du thème.Dans spacemacs, installez la couche
theming
, voir https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Bthemes/themingPar exemple, j'ai les éléments suivants coupés dans
dotspacemacs/user-init
mon.spacemacs
pour ajuster la couleur d'arrière-plan et de numéro de lin de la gruvbox et le thème de la lumière solaire:la source
J'ai ajouté des conseils à la fonction de thème de chargement pour remplacer certains visages - de cette façon, vous pouvez continuer à utiliser le thème de chargement comme d'habitude pour sélectionner un thème et il appliquera automatiquement les remplacements.
Cela fonctionne, et ce serait bien d'avoir une partie de l'interface, mais il est probablement plus simple de simplement créer une fonction pour chaque thème que vous utilisez et d'appeler custom-theme-set-faces après le chargement -
la source
Exemple de ce que j'ai fait pour éditer
spacemacs-dark
, en supprimant quelques caractères gras que je n'aime pas:la source
Il vous sera peut-être plus facile de simplement utiliser SPC SPC
custom-theme-visit-theme
, recherchergruvbox
, y apporter vos modifications et ensuite simplement le placer(load-file "~/.emacs.d/gruvbox-theme.el")
dans votredotspacemacs/user-config
fonction.la source