Skip to content
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

Move to Tinted Theming future maintenance and dev? #85

Open
JamyGolden opened this issue Jan 22, 2024 · 2 comments
Open

Move to Tinted Theming future maintenance and dev? #85

JamyGolden opened this issue Jan 22, 2024 · 2 comments

Comments

@JamyGolden
Copy link

JamyGolden commented Jan 22, 2024

Hey @Misterio77 :)

base16-shell has a very basic manager (it has hooks and supports switching to themes of fzf, tmux, sublime-merge, vim, etc). I build and maintain it and as I've been expanding I've decided to write it in something that's not bash 😅 I've been very interested in rust for a while and thought it was a good time to learn it. So I've been building base16-shell-manager. It's still in early repo phases and I don't have a readme setup yet, but it's in a working state with hooks set up.

If I were to continue building base16-shell-manager I think it would turn into something quite close to flavours. So that got me thinking, why not just continue with flavours dev under tinted-theming since you've mentioned that your focus is now on nix-colors and the nix world. If this did happen it would still be good to get your input on some of my ideas and input on the first few pull-requests to make sure I'm understanding things properly.

What are your thoughts?

@Misterio77
Copy link
Owner

Misterio77 commented Feb 13, 2024

Hey Jamy, hope you're well! Sorry for taking too long to respond!

I love your idea and I'm super happy with you building an alternative.

I'd be happy to hand flavours over, but I think building on top of it is not worth it at all: the code is not in a very good state, but that is fixable; the main issue is I accepted contributions very liberally, did not write any regression tests, and now there's way too much specific (and undocumented) behaviour that make significant changes to flavours very, very hard to do without breaking someone's workflow. I blame this on Chris' messy approach to base16; the fragmentation was insane and very hard to deal with, specially if you realize that most people want to customize templates but not schemes (thus they being co-located is terrible). Tinted theming fixed this very nicely, but, as mentioned, porting flavours to it is very, very hard (see #79 (comment)). Band-aiding over these fundamental design problems is not fun at all (really, takes away most of my motivation of working on flavours), and I would rather you focus on making the best design instead!

I think the only way forward is a rewrite with breaking changes, but ideally this would be done all at once and with an easy migration path, which is, unsurprisngly, very hard to do.

Would you be interested perhaps in developing yours as flavours' successor, and, when it's ready for prime time and handles most of flavours use cases, we can perhaps deprecate flavours and point users to it? This way, you won't have to build your solution with backwards compat holding you back.

@JamyGolden
Copy link
Author

JamyGolden commented Feb 19, 2024

Thanks for detailed response! 😄 It makes sense how things can get a bit out of control with contributions added uncritically.

I've been building things up with Tinty (new name) since I sent the initial message to you and I think it's pretty close in terms of features:

  • flavours apply mocha -> tinty apply base16-mocha
  • flavours info mocha -> tinty info base16-mocha
  • flavours current -> tinty current
  • flavours update -> tinty setup
  • flavours --config -> tinty --config
  • flavours --directory -> tinty --data-dir
  • Very similar config.toml structure including [[items]] tables with hook properties

There are two distinct differences between tinty and flavours and I'm not sure if you feel this is too big of a difference to be a successor of Flavours.

Outside of initial goals of a simple (base16 and now base24) manager, my general intention is to keep it simple and expand on functionality when there is a use case that can't currently be easily achieved and it makes sense for the tool to do. (The hook being run makes it quite extensible)

No builder and therefore no image scheme generation

I don't currently have a builder in Tinty, but I do plan on adding one in future. I've spoken to the maintainer of base16_color_scheme (rust crate used to build in flavours) and they said they would update it to adhere to the latest builder spec. Until then I won't have a building functionality included in tinty.

Tinty currently clones templates set in config.toml in the [[items]] with tinty setup and when tinty set base16-mocha is executed, it runs through the [[items]] tables and copies the relevant theme file from the template repo to the local data dir. So all template repos provided must have the theme files already generated; Most base16 template repos have them already generated and all tinted-theming template repos are synced with the latest schemes weekly.

Theme generation based on and image is a really nice feature of Flavours, but I would first need to have a builder integrated before I could look at this feature.


I just wanted to mention these differences so you were fully aware before making the decision to deprecate and link to Tinty. I've updated the readme so things are a lot more clear than they were before. I've also added a Migration from Flavours section describing a little of the above as well as giving examples of converting config files across.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants