vim/colorschemes: Request For Comments

73 views
Skip to first unread message

Romain Lafourcade

unread,
Feb 12, 2022, 7:26:36 AM2/12/22
to vim_use

Hello,

SUMMARY: All the remakes of the built-in color schemes we have been working on at  vim/colorschemes are ready to be tested/included into the Vim distribution. Feedback welcome.

We started the vim/colorschemes [1] project in May 2020 in the wake of two threads focusing on expanding the built-in color schemes roster [2][3].

The initial push for introducing popular color schemes was met with enthusiasm but it was pretty obvious a) that such a move couldn't happen overnight and b) that it would come with lots of challenges:

- many popular color schemes need documentation and hacks,

- many popular color schemes generate large amount of support request (linked to the previous point),

- many popular color schemes are pretty much unmaintained anyway so they don't support new features,

- each popular color scheme is written in a different way than the others,

- the two threads mentioned above were not the ideal place for that process,

- etc.

Additionally, adding more "modern" color schemes to the roster would only emphasize the problems exhibited by the old guard:

- they have been unmaintained for years/decades, which means that they don't support "recent" features,

- they are very inconsistent, both internally and between themselves,

- consequently, they have all been pretty much broken in one way or another for a long time, some of them being borderline unusable outside of a (possibly) very specific context.

Looking at the situation closely, it is quite clear that the whole thing required a rethinking. We created vim/colorschemes in the hope that it would help move the whole question of built-in color schemes forward, mainly along three axes:

- modernizing the existing built-in color schemes,

- adding new color schemes created by members of the community,

- providing better documentation and tooling to color scheme authors.

The project is still a work in progress, of course, but we are happy to announce that, thanks to the hard work of a small but motivated team, a first milestone is finally within reach: as of today, we (the vim/colorschemes team) consider the modernized versions of all the built-in colorschemes (except "default") to be in a shippable state and we would like the community to play with them and report any issue to the team.

As of now, all of the "remakes", as we call them, are usable in 0 colors, 16 colors, and 256 colors terminal emulators, as well as GUIs, with the usual caveats regarding terminal capabilities.

Of note:

- they are all identical in monochrome environments (&t_co == 0 for example),

- diff colors are the same for every color scheme,

- whenever possible, the colors are derived from the most high-definition source available,

- conversion from one color space to the other was done without software assistance,

- due to the _many_ inconsistencies plaguing the originals, we generally favored the _spirit_ to the _letter_ so the peachpuff remake (to really pick a random example) _is not the original peachpuff_; it still retains much of what made peachpuff peachpuff but in a much more usable and up-to-date package.

Or so we think, hence this request for comments.

If you want to participate in this effort, feel free to install vim/colorschemes alongside your other plugins and use our issue tracker [4] to report problems or suggest improvements. If that's not asking too much, we would also like to get some community input regarding the remaining topics:

- documentation,

- tooling,

- and how to select the new colorschemes.


Thank you, the vim/colorschemes team.


[1] https://github.com/vim/colorschemes

[2] https://github.com/vim/vim/issues/1665

[3] https://github.com/vim/vim/issues/4996

[4] https://github.com/vim/colorschemes/issues

Lifepillar

unread,
Feb 13, 2022, 3:29:44 PM2/13/22
to vim...@googlegroups.com, vim...@googlegroups.com
On 2022-02-12, Romain Lafourcade <romainla...@gmail.com> wrote:
> thanks to the hard work of a small but motivated team, a
> first milestone is finally within reach

As a mostly passive observer of the development of this project, I feel
compelled to thank you for undertaking this time-consuming task with
invincible passion! I can testify that it was no mean feat.

> - due to the _many_ inconsistencies plaguing the originals, we generally
> favored the _spirit_ to the _letter_ so the peachpuff remake (to really
> pick a random example) _is not the original peachpuff_; it still retains
> much of what made peachpuff peachpuff but in a much more usable and
> up-to-date package.

Compatibility (with terminal and GUI environments, and with Vim's own
highlighting definitions) has been greatly improved. This makes the user
experience so much better: to pick a random example, peachpuff used only
0-15 colors in terminals, so activating it in 256-color capable
terminals would leave the user wondering why it didn't look like
peachpuff (or worse, why it looked completely different in different
terminals). But the number of improvements is really huge.

Thanks again for setting the path forward and raising the bar for color
schemes: hopefully, it will become now easier to add new ones, finally
pushing forward https://github.com/vim/vim/issues/1665. Personally, I'd
like to see a joint effort to produce an original and fresh color scheme
created specifically for Vim (9?), in the same way as some other editors
have "their own" branding color scheme. But maybe this is wishful
thinking...

Life.


Walter Cazzola

unread,
Feb 14, 2022, 5:03:34 AM2/14/22
to vim...@googlegroups.com, vim...@googlegroups.com
Uhm, what should I notice? I'm using murphy in gvim and still I've to use
CSApprox to have it behaving closely in a terminal. Maybe I'm doing something
wrong. I used vundle to install it.

Walter
--
Walter Cazzola, PhD, Associate Professor, Computer Science, Univ. of Milano
caz...@di.unimi.it @w_cazzola Ph: +39 02 503 16300 HP: cazzola.di.unimi.it
· · · ---------------------------- · · · ---------------------------- · · ·
... recursive: adjective, see recursive ...
· · · ---------------------------- · · · ---------------------------- · · ·

Romain Lafourcade

unread,
Feb 14, 2022, 5:42:02 AM2/14/22
to vim_use
@Walter Cazzola, could you do

:verbose hi Normal

and report back with the exact output?

Maxim Kim

unread,
Feb 14, 2022, 5:42:30 AM2/14/22
to vim_use
Hi Walter,

It should be identical in gvim and tui vim with t_Co=256:

2022-02-14_13-40-35.png

понедельник, 14 февраля 2022 г. в 13:03:34 UTC+3, Walter Cazzola:

Walter Cazzola

unread,
Feb 14, 2022, 5:28:25 PM2/14/22
to vim_use
Hi

On Mon, 14 Feb 2022, Romain Lafourcade wrote:

> @Walter Cazzola, could you do
>
> :verbose hi Normal
>
> and report back with the exact output?

I get this:
:verbose hi Normal
Normal xxx ctermfg=121 ctermbg=0 guifg=lightgreen guibg=Black font=DejaVu Sans Mono 10
Last set from /usr/share/vim/vim82/colors/murphy.vim line 14

Walter

Walter Cazzola

unread,
Feb 14, 2022, 5:33:02 PM2/14/22
to vim_use
Hi

On Mon, 14 Feb 2022, Maxim Kim wrote:

> Hi Walter,
>
> It should be identical in gvim and tui vim with t_Co=256:
>
> [image: 2022-02-14_13-40-35.png]

How I should set/check for this? I do not have t_Co neither as an environment
variable nor in vim.

Walter

Charles Campbell

unread,
Feb 14, 2022, 10:43:12 PM2/14/22
to vim...@googlegroups.com, Walter Cazzola
Walter Cazzola wrote:
> Hi
>
> On Mon, 14 Feb 2022, Maxim Kim wrote:
>
>> Hi Walter,
>>
>> It should be identical in gvim and tui vim with t_Co=256:
>>
>> [image: 2022-02-14_13-40-35.png]
>
> How I should set/check for this? I do not have t_Co neither as an
> environment
> variable nor in vim.
>
> Walter
Bring up vim; then type  :echo &t_Co

Chip Campbell

Maxim Kim

unread,
Feb 15, 2022, 1:46:17 AM2/15/22
to vim_use
Hi Walter, looks like your vim/colorscheme installation is not "correct".

Your `:verbose hi Normal` command shows that original murphy was used, not the one from vim/colorschemes.

I can't tell anything about vundle as I don't use it, but the simplest way to install a "plugin" from github is to clone it into your `~/.vim/pack/bundle/start` directory ("bundle" is an arbitrary name here):

git clone g...@github.com:vim/colorschemes.git ~/.vim/pack/bundle/start/

вторник, 15 февраля 2022 г. в 01:28:25 UTC+3, Walter Cazzola:

Romain Lafourcade

unread,
Feb 15, 2022, 1:50:51 AM2/15/22
to vim_use
@Walter, your murphy is still the built-in one so I suspect either a flawed installation of the vim/colorscheme package or a bug in your plugin manager.

Could you try the :help package method instead?

1. Create this directory hierarchy:

       $ mkdir -p ~/.vim/pack/colors/start/

2. Get the project in there:

       $ cd ~/.vim/pack/colors/start

3. This should give you this:

       ~/.vim/pack/colors/start/colorschemes

   which should put the remade colorscheme before the original one in runtimepath.

Walter Cazzola

unread,
Feb 15, 2022, 5:24:34 AM2/15/22
to Charles Campbell, vim...@googlegroups.com
On Mon, 14 Feb 2022, Charles Campbell wrote:

> Walter Cazzola wrote:

>> On Mon, 14 Feb 2022, Maxim Kim wrote:

>>> It should be identical in gvim and tui vim with t_Co=256:

>>> [image: 2022-02-14_13-40-35.png]

>> How I should set/check for this? I do not have t_Co neither as an
>> environment variable nor in vim.

> Bring up vim; then type  :echo &t_Co

Ok, it says: 256 in the terminal and 16777216 in gvim

Walter

--

Walter Cazzola

unread,
Feb 15, 2022, 5:43:09 AM2/15/22
to vim_use
Hi
On Mon, 14 Feb 2022, Romain Lafourcade wrote:

> @Walter, your murphy is still the built-in one so I suspect either a flawed
> installation of the vim/colorscheme package or a bug in your plugin manager.
>
> Could you try the :help package method instead?
>
> 1. Create this directory hierarchy:
>
> $ mkdir -p ~/.vim/pack/colors/start/
>
> 2. Get the project in there:
>
> $ cd ~/.vim/pack/colors/start
> $ git clone https://github.com/vim/colorschemes.git
>
> 3. This should give you this:
>
> ~/.vim/pack/colors/start/colorschemes
>
> which should put the remade colorscheme before the original one in
> runtimepath.
>
> Le mardi 15 février 2022 à 04:43:12 UTC+1, Charles Campbell a écrit :

I installed it as you suggest. Now in my .vim I have:

pack
└── colors
└── start
└── colorschemes
├── colors
│   ├── blue.vim
│   ├── darkblue.vim
│   ├── delek.vim
│   ├── desert.vim
│   ├── elflord.vim
│   ├── evening.vim
│   ├── industry.vim
│   ├── koehler.vim
│   ├── morning.vim
│   ├── murphy.vim
│   ├── pablo.vim
│   ├── peachpuff.vim
│   ├── README.txt
│   ├── ron.vim
│   ├── shine.vim
│   ├── slate.vim
│   ├── tools
│   │   ├── check_colors.vim
│   │   ├── sample_base.vim
│   │   ├── sample_diff.vim
│   │   ├── sample_messages.vim
│   │   └── sample_popupmenu.vim
│   ├── torte.vim
│   └── zellner.vim
├── colortemplate
│   ├── blue.colortemplate
│   ├── darkblue.colortemplate
│   ├── delek.colortemplate
│   ├── desert.colortemplate
│   ├── _diff
│   ├── elflord.colortemplate
│   ├── evening.colortemplate
│   ├── industry.colortemplate
│   ├── koehler.colortemplate
│   ├── morning.colortemplate
│   ├── murphy.colortemplate
│   ├── pablo.colortemplate
│   ├── peachpuff.colortemplate
│   ├── ron.colortemplate
│   ├── shine.colortemplate
│   ├── slate.colortemplate
│   ├── _tcozero
│   ├── torte.colortemplate
│   └── zellner.colortemplate
└── README.md

that it is exactly what I had before under bundle (it is where vundle puts the
installed packages).

Anyway nothing has changed and I still see the style rendered differently in
the GUI and in the terminal.

The value read by : verbose didn't change:

:verbose hi Normal
Normal xxx ctermfg=121 ctermbg=0 guifg=lightgreen guibg=Black
Last set from /usr/share/vim/vim82/colors/murphy.vim line 14

So the issue is not bound to vundle.

Walter

--

Walter Cazzola

unread,
Feb 15, 2022, 5:44:16 AM2/15/22
to vim_use
As replied to Romain, also the manual installation fails.

Walter

Maxim Kim

unread,
Feb 15, 2022, 6:04:37 AM2/15/22
to vim_use


вторник, 15 февраля 2022 г. в 13:44:16 UTC+3, Walter Cazzola:
As replied to Romain, also the manual installation fails.

The directory structure I see is not what `:h packages` would suggest to have.

In the end it should have smth like:

/home/username/.vim/pack/bundle/start
└── colorschemes
    ├── README.md
    ├── colors
    │·· ├── README.txt
    │·· ├── blue.vim

    │·· ├── darkblue.vim
    │·· ├── delek.vim
    │·· ├── desert.vim
    │·· ├── elflord.vim
    │·· ├── evening.vim
    │·· ├── industry.vim
    │·· ├── koehler.vim
    │·· ├── morning.vim
    │·· ├── murphy.vim
    │·· ├── pablo.vim
    │·· ├── peachpuff.vim
    │·· ├── ron.vim

    │·· ├── shine.vim
    │·· ├── slate.vim
    │·· ├── tools
    │·· │·· ├── check_colors.vim
    │·· │·· ├── sample_base.vim
    │·· │·· ├── sample_diff.vim
    │·· │·· ├── sample_messages.vim
    │·· │·· └── sample_popupmenu.vim
    │·· ├── torte.vim
    │·· └── zellner.vim
    ├── colortemplate
    │·· ├── _diff
    │·· ├── _tcozero
    │·· ├── blue.colortemplate
    │·· ├── darkblue.colortemplate
    │·· ├── delek.colortemplate
    │·· ├── desert.colortemplate
    │·· ├── elflord.colortemplate

    │·· ├── evening.colortemplate
    │·· ├── industry.colortemplate
    │·· ├── koehler.colortemplate
    │·· ├── morning.colortemplate
    │·· ├── murphy.colortemplate
    │·· ├── pablo.colortemplate
    │·· ├── peachpuff.colortemplate
    │·· ├── ron.colortemplate
    │·· ├── shine.colortemplate
    │·· ├── slate.colortemplate
    │·· ├── torte.colortemplate
    │·· └── zellner.colortemplate
    └── tags

Walter Cazzola

unread,
Feb 15, 2022, 6:13:10 AM2/15/22
to vim_use
I have changed the name to those you suggest:

/home/cazzola/.vim/pack/bundle/start
└── colorschemes
├── colors
│   ├── blue.vim
│   ├── darkblue.vim
│   ├── delek.vim
│   ├── desert.vim
│   ├── elflord.vim
│   ├── evening.vim
│   ├── industry.vim
│   ├── koehler.vim
│   ├── morning.vim
│   ├── murphy.vim
│   ├── pablo.vim
│   ├── peachpuff.vim
│   ├── README.txt
│   ├── ron.vim
│   ├── shine.vim
│   ├── slate.vim
│   ├── tools
│   │   ├── check_colors.vim
│   │   ├── sample_base.vim
│   │   ├── sample_diff.vim
│   │   ├── sample_messages.vim
│   │   └── sample_popupmenu.vim
│   ├── torte.vim
│   └── zellner.vim
├── colortemplate
│   ├── blue.colortemplate
│   ├── darkblue.colortemplate
│   ├── delek.colortemplate
│   ├── desert.colortemplate
│   ├── _diff
│   ├── elflord.colortemplate
│   ├── evening.colortemplate
│   ├── industry.colortemplate
│   ├── koehler.colortemplate
│   ├── morning.colortemplate
│   ├── murphy.colortemplate
│   ├── pablo.colortemplate
│   ├── peachpuff.colortemplate
│   ├── ron.colortemplate
│   ├── shine.colortemplate
│   ├── slate.colortemplate
│   ├── _tcozero
│   ├── torte.colortemplate
│   └── zellner.colortemplate
└── README.md

but the final result doesn't change:

:verbose hi Normal
Normal xxx ctermfg=121 ctermbg=0 guifg=lightgreen guibg=Black
Last set from /usr/share/vim/vim82/colors/murphy.vim line 14

Walter

Reply all
Reply to author
Forward
0 new messages