nashamri / spacemacs-theme

Light and dark theme for spacemacs that supports GUI and terminal
GNU General Public License v3.0
600 stars 113 forks source link

Cannot use spacemacs-theme-custom colors with variables #139

Closed cyruseuros closed 5 years ago

cyruseuros commented 5 years ago

Regardless of whether I use custom-set-variables or setq custom colors are only applied if I explicitly quote an alist. I cannot pass in a variable that contains an alist.

cyruseuros commented 5 years ago

I just discover that the issue has nothing to do with variable passing. If I assign the value before a call to load-file (currently developing a wal-based theming engine that can be used without spacemacs theme, but meshes well with it) it works, but if I call it after it fails.

cyruseuros commented 5 years ago

For the the record, I'm using wal-theme-load-spacemacs-theme-colors from this package: https://gitlab.com/jjzmajic/wal-theme.el, which I am loading with load-file for now. Interestingly enough, the variable does get set, it just seems it doesn't get set in time to change spacemacs-theme.

noctuid commented 5 years ago

I was trying out ewal and ran into this. The current definition of dyn-let makes it so that spacemacs-theme-custom-colors has to be set before loading spacemacs-theme because the value is computed at macro expansion time instead of when the expansion runs. I think it would be better to remove dyn-let entirely and just do something like this inside a let with the default values:

(cl-loop for (var . val) in spacemacs-theme-custom-colors
               do (set var val))

This would fix the issue here and make it possible to later change the custom colors and (re)generate a theme.

cyruseuros commented 5 years ago

Amazing! Should I make the changes in a PR branch to test them out or do you prefer to make the chnages? Also what do you think of ewal?

noctuid commented 5 years ago

Amazing! Should I make the changes in a PR branch to test them out or do you prefer to make the chnages?

Feel free to make a PR. I won't be able to get around to it immediately.

Also what do you think of ewal?

It looks really good for some of the themes I've tried, and it looks better than the Xresources theme for the colors I've tried (often a lot better). It's also nice that it's easy to change the theme on the fly when using the daemon (e.g. emacsclient --eval '(my-func-to-regenerate-spacemacs-theme)'). There seem to be less colors/text differentation overall compared with most themes; part of that may be because sometimes pywal colors can end up being really similar. I don't know if I mind or not yet; I just started using an ewal theme yesterday. I'll open issues with any concrete suggestions I have.

cyruseuros commented 5 years ago

The fewer colors thing is intentional for a more modern look, but you bring up a fair point in that it shouldn't be forced on the user. What do you think about making two functions? One modern/minimal, and the other with all the bells and whistles? If you wanna see all the available colors use describe-variable on ewal-extended-palette and turn on rainbow-mode. Adding more shades is a single parameter in the function, so if you would like more please let me know