0
votes

I want to change the default colors in the powerline-evil-center-color-theme. I am specifically looking to change the the face colors of the evil-state face such that the background and foreground colors matches my Emacs color theme.

I have tried to look at the readme on powerline-evil, but it doesn't tell me how to configure the colors via my init.el, and I've tried modifying the code in powerline-evil.el to change the colors manually, but it still didn't work.

The following code is taken from my powerline-evil.el:

(defface powerline-evil-base-face
  '((t (:foreground "green" :inherit mode-line)))
  "Base face for powerline evil faces."
  :group 'powerline)

(defface powerline-evil-normal-face
  '((t (:background "#909737" :inherit powerline-evil-base-face)))
  "Powerline face for evil NORMAL state."
  :group 'powerline)

(defface powerline-evil-insert-face
  '((t (:background "blue" :inherit powerline-evil-base-face)))
  "Powerline face for evil INSERT state."
  :group 'powerline)

(defface powerline-evil-visual-face
  '((t (:background "orange" :inherit powerline-evil-base-face)))
  "Powerline face for evil VISUAL state."
  :group 'powerline)

(defface powerline-evil-operator-face
  '((t (:background "cyan" :inherit powerline-evil-operator-face)))
  "Powerline face for evil OPERATOR state."
  :group 'powerline)

(defface powerline-evil-replace-face
  '((t (:background "red" :inherit powerline-evil-base-face)))
  "Powerline face for evil REPLACE state."
  :group 'powerline)

(defface powerline-evil-motion-face
  '((t (:background "magenta" :inherit powerline-evil-base-face)))
  "Powerline face for evil MOTION state."
  :group 'powerline)

Even if I set the foreground to be green, as you can see in the code above, it still displays as white. I don't know what to do. Can anyone help?

EDIT: I actually have another problem now. What @AaronHarris told me works fine for the foreground color, but I cannot change the background color for the other states. My entire mode-line becomes the background color of my theme instead. I have added the following code to my init.el

(custom-theme-set-faces 'jazz '(powerline-evil-base-face
                                  ((t (:foreground "jazz-fg" :inherit mode-line)))
                                  :group 'powerline))

  (custom-theme-set-faces 'jazz '(powerline-evil-insert-face
                                  ((t (:background "jazz-blue" :inherit powerline-evil-base-face)))
                                  :group 'powerline))

The first part works fine for the foreground color, but the second part is doing something bad.

1

1 Answers

0
votes

I think you want to use custom-theme-set-faces to tell your theme what to do with this face, e.g.:

(custom-theme-set-faces 'my-theme '(powerline-evil-base-face
                                    ((t (:foreground "green")))))

My not-very-educated guess on what's happening here is that your theme already knows about this face and its default for it is also white, so anything you do to the original definition will get wiped out by the theme.