protesilaos / modus-themes

Highly accessible themes for GNU Emacs, conforming with the highest standard for colour contrast between background and foreground values (WCAG AAA).
https://protesilaos.com/emacs/modus-themes
GNU General Public License v3.0
553 stars 30 forks source link

Setting fringe color doesn't change fringe #63

Closed TitusMu closed 1 year ago

TitusMu commented 1 year ago

Dear Prot,

I just tried out your modus-themes, and they are wonderful! I'll use them with delight for my daily emacs work.

I just have one issue: For olivetti mode I used to color the fringes gray, it helps me focus. After I loaded modus-operandi, the fringes disappeared (they now just have the standard background color), and I can set foreground and background of the official fringe-face to what color I want (M-x list-faces-display shows it worked), it still stays like this, no fringe is to be seen.

Using a tricky little function by Drew I checked the space left and right, to find out whether it really is the fringe, and by clicking on it, it says in the minibuffer "left-fringe" and "right-fringe". You have made the variable modus-themes-fringes obsolete. Is there another way now to set the fringe color? And why does the "normal" fringe-face not work? Is it some kind of overlay?

Thank you so much for any help!

Titus

EDIT: Changing the fringe via modus-themes-common-palette-overrides does change the two little bits left and right of the minibuffer, but doesn't change the huge space left and right of the screen in olivetti mode.

I use vanilla Emacs version 28.1.91, Modus-Themes version 4.0.1 and Olivetti version 2.0.4.

protesilaos commented 1 year ago

Hello @TitusMu!

EDIT: Changing the fringe via modus-themes-common-palette-overrides does change the two little bits left and right of the minibuffer, but doesn't change the huge space left and right of the screen in olivetti mode.

I assume you referenced the manual? https://protesilaos.com/emacs/modus-themes#h:c312dcac-36b6-4a1f-b1f5-ab1c9abe27b0

As for Olivetti, something must be wrong because the themes already make the olivetti-fringe invisible by setting the default background for it.

protesilaos commented 1 year ago

Re-reading your message, I misunderstood the original problem. You want to modify the olivetti-fringe so that it is visible.

With no further changes to the palette overrides, this applies the fringe background to the olivetti-fringe:

(custom-set-faces
 '(olivetti-fringe ((t :background unspecified))))

This applies a generic colour:

(custom-set-faces
 '(olivetti-fringe ((t :background "gray50"))))

And this adds a colour from the active theme's palette:

(modus-themes-with-colors
  (custom-set-faces
   `(olivetti-fringe ((,c :background ,bg-inactive)))))

Do you switch between themes? If yes, you will need some extra setup if you plan on using the last example. I can show you how.

EDIT: Add more examples.

TitusMu commented 1 year ago

This was the solution. (Setting the background of olivetti-fringe to "unspecified".) It now works again. Thank you so-so-so much! Am sending a donation right away. Thanks a lot for your great work making Emacs look so much better.

I have not used this variable before, in my setup I had been using the face "fringe" only. Apparently "olivetti-fringe" overrides the "fringe" variable. Strangely that worked for me until today, maybe "olivetti-fringe" was just empty all the time and Modus Themes filled it with a color, then overriding my old "fringe"-setup. So I am learning regular emacs-stuff also by using your theme. Thanks again.

protesilaos commented 1 year ago

This was the solution. (Setting the background of olivetti-fringe to "unspecified".) It now works again. Thank you so-so-so much!

You are welcome!

Am sending a donation right away.

Thank you! Note though that this was not necessary and you don't have to do it next time: if there is a problem, just let me know about it.

I have not used this variable before, in my setup I had been using the face only. Apparently overrides the variable. Strangely that worked for me until today, maybe was just empty all the time and Modus Themes filled it with a color, then overriding my old -setup. So I am learning regular emacs-stuff also by using your theme. Thanks again.

I guess it depends on the version othe themes you were using before. It is only recently that I added support for the olivetti-fringe face.

protesilaos commented 1 year ago

I forgot to close this... Doing it now. Thanks again!