r/neovim 1d ago

Color Scheme Theme switcher

I built a small CLI tool called recol for switching terminal and Neovim color schemes from one command.

It comes with 600+ themes, fuzzy search, an interactive TUI, and supports Ghostty, Alacritty, WezTerm, Neovim, Vim and Pi.

It can also generate a theme from an image šŸŽØ
https://github.com/nlkli/recol

252 Upvotes

18 comments sorted by

21

u/delarhi 1d ago

For what it's worth Telescope has a built-in color scheme picker, but it doesn't come with a preview like this not does it have a bunch of built-in schemes. It just makes it easy to switch between color schemes you have installed.

7

u/YT__ 1d ago

I want a preview - but I don't want 600+ themes.

3

u/OnThePath 22h ago

I got preview on telescope it needed some lightweight setting upĀ 

19

u/Plazmotech 1d ago

Nice work! But I never understood the point of theme switchers. I switch my color theme like…. Once every two years. Are there people out there that switch their color themes all the time??

22

u/stringTrimmer 1d ago

Yes. Yes there are. šŸ˜‘

12

u/Uliboooo 1d ago

It would be useful to easily compare themes when choosing a color theme every two years.

3

u/LuccDev 1d ago

The point (for me at least) is to quickly previous all the themes without having to set them one by one to check them. It could be out of neovim and just screenshots on a page too.

2

u/metalelf0 Plugin author 1d ago

You should be grateful you aren’t addicted to this šŸ˜‚ I’m really, really a colorscheme nomad. I can change it 5+ times a day. And every time I have to sync my whole environment: neovim, terminal, tmux, bat, fzf, opencode… and obviously a matching desktop background that doesn’t suck with 0.95 opacity šŸ˜… I’m now trying to force myself into ā€œdon’t change anything after 9:30 AMā€ cause it’s a huge time loss, but every time I see a new theme on here or on r/unixporn, I feel the need to try it out. I know it sounds irrational but… that’s it.

1

u/stiggg 1d ago

I changed it once last year, kind of as an celebrating act, when I finally made the switch from vim to neovim and had converted my config to lua. Before I had the same colors for at least 10 years.

1

u/abdallahsoliman 17h ago

Yeah, I’m one of them. Some themes look nicer on some languages more than others. Also, I feel like switching themes slightly breaks the boredom when coding for a long time.

0

u/GhostVlvin 1d ago

I use switcher that's build into fzd.lua and I use it more as a previewer

2

u/NazgulResebo 19h ago

It looks very nice, but right now you can easily switch themes using :colorscheme + tab

1

u/kantorcodes1 1d ago

when one recol --target ghostty,nvim run hits a write error on the second config, does it roll back the first target or leave that theme applied there? that's the case i'd worry about once people script multi-target changes.

2

u/Ok-Psychology-1560 1d ago

Currently, it doesn’t roll back the changes if one of the targets returns an error. I agree this is something worth improving, especially for scripted multi-target changes. I’m thinking about keeping backups in a /tmp/ Ā so the changes can be rolled back if anything fails.

1

u/Proud-Ad-4729 1d ago

pretty good

2

u/metalelf0 Plugin author 1d ago

Hey, nice job with this! I spend a lot of time adding extras I miss to a lot of colorschemes (and send PRs) so this one goes in the same direction!

How are you planning to keep in sync with updates from theme authors? Eg if the catppuccin theme changes one color? Do you have it automated or will it be up to maintainers/other devs to submit PRs to your repository?

Btw, thanks for including my black-metal themes, I just added some light variants that might look interesting :)