vim / colorschemes

colorschemes for Vim
274 stars 23 forks source link

Update elflord 8 color variant to restore legacy colors. #256

Closed pyrote closed 5 months ago

pyrote commented 5 months ago

Restore the legacy colors for anyone that just uses terminal defaults.

neutaaaaan commented 5 months ago

The current version of elflord is based on the gui version, which was better implemented. We assume the original author used a heavily customized terminal palette as well.

pyrote commented 5 months ago

Yes, it has new gui support but you changed the default 8 color scheme that has existed for 20+ years. When I upgraded to Vim 9.0 the elflord colors I see are not what they used to be. I don't use the gui or termguicolors.

lifepillar commented 5 months ago

It is true that the color palette for 8/16 colors does not seem to match the original values (for those few groups that elford defines). I believe there's some reason for that, as a lot of work went into these updated color schemes, but it might be something to double-check.

But see :help new-colorschemes-vim9: what is recommended if you want to retain the old experience forever is to grab the old eldford and put it into your own ~/.vim/colors directory.

neutaaaaan commented 5 months ago

It's on purpose, and is definitely not a regression

The gui version (which is at least 20 years old as well) does define these groups properly. Ron and elflord were written by the same person, and we had good reasons to assume the gui colors matched their custom terminal palette.

romainl commented 5 months ago

Yes, the changes we made were made on purpose.

When you create a colorscheme, you must deal with different levels of definition, from the lowest (no colors) to the highest (so-called "true colors"). At the highest level (GUI or TUI with termguicolors), you basically get to use literally any color you want. That is the level at which you can express your creativity to its fullest. Going down one level (256c) forces you to do a lot of compromises but you still have a fixed 256 colors palette to play with, which is still relatively usable. At 16c, things actually get really hard because of two things: the reduced palette (16 colors is really not a lot) and the inescapable fact that you can't assume anything about the user's palette. You may say "darkcyan" in your colorscheme but, if the user's "darkcyan" is actually some kind of tan or whatever, then you and your user are going to have wildly different experiences. At 8c, you get 8 fewer colors (yikes!) and the same lack of control on the user's terminal palette.

When possible, we based the changes we made on the highest definition information available, because that information gave us a good idea of the author's intent, not on the lowest definitions. In the case of Elflord, the author specified GUI colors so that is where we started from, and the lower definitions are deduced from that highest definition.

The main problem with Elflord and Ron, was that the author rather obviously had a customized terminal palette and he designed his colorschemes around that palette. That strategy "works" in GVim, where the colors are exactly those envisioned by the author, but it can only really "work" in the author's terminal emulator, because it is the only one with the right color palette.

Basically, it means that your Elflord wasn't my Elflord… and definitely not the author's Elflord. After the remake, your Elford and mine are closer to his in a reasonably standard terminal emulator, which was one of our goals. The inescapable consequence is that the new Elflord, while being very "true to the original" in GUI, is pretty different in 8c. FWIW, here is a screenshot of the new Elflord in a 8c xterm on the left and the original elflord in GUI on the right:

new and old

That downward/upward consistency is what we aimed at and I am very happy with the result.

The issue, here, is that the original colorschemes were all pretty badly designed to begin with and, because the situation stagnated for many years, some people got used to their broken experience (see Peachpuff for an extreme example). The remakes improve overall consistency by a huge margin but they are bound to make users that are too used to the old situation unhappy. For those users, there are solutions: the help section mentioned above or this plugin that I have packaged specifically for this use case.

pyrote commented 5 months ago

Yes, the changes we made were made on purpose. ...

I understand now. The 8c colors I have seen forever aren't accurate compared to the gui colors. Thanks for the explanation. I'll manage my own color file from now on.