-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for solaire-mode #50
Comments
I've been looking at this as well. It's pretty interesting. However, I'm not sure what the best faces would be. I've tried brightening up the minibuffer and I've tried the main window, but I'm not sure I like anything I've come up with yet. PRs would be welcome! |
Oh, I'm glad it's not just me! I tried briefly yesterday but couldn't make it satisfactory. I'll submit a PR if make something I'm happy with. |
I've been working to get this to a satisfactory point for me, but I'm having trouble wrapping my head around how to create the faces outside of the theme itself (so I can test the colors out before I modify |
@bbenne10 I've got a use-package block in my dotfiles which sort of gives away how I do local dev: https://github.com/belak/dotfiles/blob/master/emacs.d/README.org#base16-theme The general idea is that I clone all packages I work on to ~/.emacs.d/site-lisp then add those dirs to the load-path and then require them, along with any other tweaks which need to be done. One of the oddities is that all of the theme files are in the |
No progress, but mostly because I've forgotten. I might have some time this weekend to get around to it :P |
No rush. Thanks for following up! I've been a bit busy myself as well, so I can understand. |
After 6 months of nothing, I have gotten frustrated enough with another color scheme that I wanted to come back to this problem. (I would also be lying to say that its not bugging me simply because this is "assigned to me" but I've not done anything about it) To simplify the below discussion, I will assume we're always discussing modifying the colors for non-file-backed buffers only. Base16's concepts are pretty strict and I would say that this applies to "editors", which traditionally means "editors editing files" so I feel this is a decent assumption. I see a few complications for implementing this in such a way as to not look like crap. Base16's general scheme is REALLY narrowly defined. Solaire somewhat requires a bit of...tinting to make the non-file based buffers stand out from file-backed ones but at the same time not burn your retinas out. This is difficult to do when you're limited to 16 colors. This is further complicated by the fact that the global base16 colorscheme uses the bottom-most color as the "background" which means that there's no way to go "darker" (or "lighter" in light themes). (there's no "base-01" to fall back to, essentially). What I might propose is a way of slightly darkening a provided hex color (such a function can sort of be found here, though this operates at point and replaces the contents rather than evaluating to the color in question. but the basic functionality is there). For instance, I have hacked solaire support onto the zerodark theme. It looks like this (ignore that I'm an idiot and mis-hit my dmenu-bind and so am searching for a project :P) I feel this looks pretty decent and would port pretty well into base16 if we could add the additional colors to support it. A remaining question would then be "Is darkening like this the right answer for light themes?". I have no idea (I despise light themes in general, so it'd be hard for me to judge), but it's a good place to start. HOWEVER, one might argue that this attacks the very idea of base16 (and can't REALLY be done portably between implementations of the base16 schemes, since using this at a shell without truecolor support would essentially be impossible). In that case, I don't think solaire-mode's goals are in line with the base16 project, and I don't think there's really a resolution to that problem. So what does this mean practically? If there's no objection, I'll probably implement a basic "darken by 10%" function that takes a color and returns a darkened version and use that globally until someone comes along and complains. Once that happens, we can have a discussion about a more nuanced solution. Anyone have thoughts here? |
That seems reasonable to me. I think stuff like that is fine as long as it's used sparingly and there's a good reason for it, both of which seem to fit this situation. The other option is a function to mix colors, which might be more flexible (if that's too complicated don't worry too much). Your proposed solution could also provide a better option for diff colors. A few things to note: it's a little hard to put function calls into the theme itself so they might go well where we handle settings... And I'm not sure how to handle darkening when in the terminal... Might have to only enable it if you're using >= 256 colors. I'd be happy to help with the plumbing for that if you need it. |
Okay! I've finally (FINALLY) found a day to sit down and work on this! My first approach was to add solaire-mode faces that make some sense into Another solution is to simply offer a function that can be called to MODIFY the already specified theme. In this case, we can fix the terminal colorscheme problem by lifting the issue to the user space (require 'base16-theme)
(load-theme base16-gruvbox-dark-medium)
(if 'display-graphic-p
(base16-inject-solaire-faces) ;; or something
) This is, however, not in line with the rest of the customizations offered by this theme group already. In this second approach, we simply use |
Just an update: So I have a basic implementation of the color modification (i've yet to build the faces, but that's not going to be difficult, so I'm leaving it till last). I had, however, forgotten the case where the source color isn't a hexadecimal color but rather a built-in color name. There's a path forward for these cases ( I'm implementing a regex based solution that should fix this issue, but it's taking a while...I'm definitely feeling the fact that elisp was born in 1985. I should have something to show this evening after dinner. |
One thing I've been thinking about - and I don't know why I didn't think of this before - you can call |
Oh! I didn't recognize that |
solaire-mode
looks pretty cool, but requires a specific set of faces to be defined:The text was updated successfully, but these errors were encountered: