Gogh-Co / Gogh

Gogh is a collection of color schemes for various terminal emulators, including Gnome Terminal, Pantheon Terminal, Tilix, and XFCE4 Terminal also compatible with iTerm on macOS.
https://gogh-co.github.io/Gogh/
MIT License
9.16k stars 585 forks source link

consider tinted-theming/schemes as a primary source of themes #459

Closed sergiorussia closed 2 weeks ago

sergiorussia commented 3 weeks ago

hi. i found Gogh to be pretty convenient tool for setting my gnome terminal profile, but later i noticed that some themes diverge from original author's theme colors.

later i found https://github.com/tinted-theming and it seems to be pretty good source of truth for themes' colors.

just an example, Tomorrow Night Eighties theme:

Gogh's Tomorrow Night Eighties gogh

Tinted Themes' Tomorrow Night Eighties tinted-themes

another example is Nord theme

same thing for few other themes like Gruvbox Material etc. and even if this might be the case for some particular themes, it seems that it would be easier to maintain single source of truth for better integration with many other envs wich tinted-theming (base16, base24) brings

current https://github.com/tinted-theming/schemes/tree/spec-0.11/base16 structure seems to be pretty close to https://github.com/Gogh-Co/Gogh/tree/master/themes structure to make easy pull-transform-push process at the beginning (simple bash script ) and to automate it later.

what do you think? eg i could make such script if it sounds good for you

PS: there's another project https://github.com/Base24/base24-gnome-terminal with similar idea to Gogh wich is already integrated with tinted-theming (well, kind of), but not very actively maintained and has just a few contributors. and Gogh has very nice setup script which i like :)

Mgldvd commented 3 weeks ago

Of course, I think it would contribute to improve the project. The idea is always to keep the themes according to how the author created them. Thanks

Mgldvd commented 3 weeks ago

I also see a couple of keys that I think we can incorporate into the yml files

author: "" variant: ""

sergiorussia commented 3 weeks ago

i'm testing the script and it seems that many themes will change drastically, especially light ones. even though they will become (more) consistent with original themes' colors, i'm not sure about such big changes at once. eg current Gogh's Nord Light has imaginary colors which are not present in original palette at all. maybe apply script just for dark themes at first?

i also found strange color assignment of black to base00 here https://github.com/tinted-theming/tinted-shell/blob/main/templates/base16.mustache#L8, which is based on original base16 https://github.com/chriskempson/base16-shell/blob/master/templates/default.mustache#L7 (also note that those scripts assigns +6 more colors). in my testing such black color (which equals to background) leads eg to invisible comment in terminal (ie typing smth like some cmd # comment). that also differs from https://github.com/Base24/base24-gnome-terminal/blob/master/templates/default.mustache#L120 which uses base01 for black. in other words either original base16-shell is somewhat wrong and needs fixing (and maybe it is, trying to be shell-universal) or tinted-shell conflicts with gnome-terminal coloring and should not be used if term-specific coloring is available

# base24-gnome-terminal 0-15 palette with base-24 scheme
base01 base08 base0B base09 base0D base0E base0C base06
base02 base12 base14 base13 base16 base17 base15 base07

# base24-gnome-terminal 0-15 palette with fallback to base-16 scheme
# https://github.com/tinted-theming/tinted-builder-python/blob/master/base24_builder/builder.py#L50-L59
base01 base08 base0B base09 base0D base0E base0C base06
base02 base08 base0B base0A base0D base0E base0C base07

# tinted-shell/base16-shell 0-15 palette
base00 base08 base0B base0A base0D base0E base0C base05
base03 base08 base0B base0A base0D base0E base0C base07

so the main diff is basically in black/white colors and in strange usage of base09 instead of base0A for yellow. i'll check which scheme fits better with few themes' guidelines and then submit a pr

sergiorussia commented 3 weeks ago

i decided to fix some of themes i like before updating Gogh (some of which looks better than tinted's ones), eg Everfores is somewhat broken in tinted

sergiorussia commented 2 weeks ago

@Mgldvd, i was debugging changes that tinted-theming will bring and found that while it's good enough for many themes, it sometimes contradicts with original theme's author coloring.

Gogh's colors are sometimes much closer to original (and sometimes not), sometimes authors contribute to both Gogh and tinted (eg Sparky theme). tinted works ok most of the times, but some themes approach Gogh only if there's base-24 variant.

the other very contradictory thing is the assignment of black, bright black, white and bright white colors. as i mentioned above, base00 vs base01, base02 vs base03, base04 vs base05, base06 vs base07. one or another breaks one theme but fits good another. no clear meaning causes troubles. should (bright)white/black equal to gb/fg? and so on.

so all in all i think it would take too much time to try to fix everything and i'll just fix some of themes i like separately in Gogh and in tinted.

if you wanna see what i mean you can try the script sync-from-tinted-theming-schemes.sh.txt, i've put it in tools dir

sergiorussia commented 2 weeks ago

i think i'll close the issue for now. #464 and #465 are enough for me at the moment. probably i'll fix Gruvbox Material themes too later, but not sure.