giuspen / cherrytree

cherrytree
https://www.giuspen.net/cherrytree/
Other
3.42k stars 464 forks source link

[Feature Request] Complete dark-mode #1179

Open ItsIgnacioPortal opened 4 years ago

ItsIgnacioPortal commented 4 years ago

As of Cherry Tree 0.39.4 you can change the colors of the Tree and Rich text sections, but you can't change the colors of the Toolbar, nor the colors of the Divisor beetwen the Tree and the Rich Text section:

2020_09_24_20_27_53_CherryTree_0 39 4

It'd be really cool to be able to have the entirety of Cherry Tree on dark-mode ^^

PS: I love this project! It's been really usefull for keeping rich notes

txe commented 4 years ago

Hi, 0.39 (gtk2) is not supported anymore, you can use 0.99 (gkt3) from https://www.giuspen.com/cherrytree/#testing. To change control colors for gtk3 app, you can either:

ItsIgnacioPortal commented 4 years ago

I should mention that I'm on Windows 10. Do I place the gtk.css file on C:\Program Files\CherryTree\etc\gtk-3.0 ? (Where C:\Program Files\CherryTree\ is the path where CherryTree 99.13 is installed) I'm completely unfamiliar with GTK 😅

txe commented 4 years ago

Well, it is probably there, I'm not sure too. You can try, and if it doesn't work, I will take a look.

ItsIgnacioPortal commented 4 years ago

I went with the shotgun aproach, and placed the gtk.css on every single folder named gtk-3.0 on my system... and it worked! Now time to figure out wich location was the right one ¯\_(ツ)_/¯ Thanks for the quick replies!

I'll edit this comment later to specify the correct location hehe

UPDATE: To change the system-wide GTK theme, place/change the file in: C:\Users\%USERNAME%\AppData\Local\gtk-3.0\gtk.css I don't know how to change cherrytree's specific GTK theme

ItsIgnacioPortal commented 4 years ago

I may have closed this issue prematurely...

Where are the themes stored? (Cobalt, Kate, Oblivion, etc) I'm trying to make everything have a background color of #000000, and there doesn't seem to be an option pick a custom background color for Rich Text

txe commented 4 years ago

mingw64\share\gtksourceview-3.0\styles

giuspen commented 4 years ago

@PinkDev1 go to the preferences dialog, tab themes and for a #000000 background choose "cobalt-darkened" theme

ItsIgnacioPortal commented 4 years ago

I've changed the contents of gtk.css to:

* {
    background-color: #000;
}

But now, the icons don't look good, so I tried to fix it by recursively inverting all of the icons in C:\Program Files\CherryTree\mingw64\share\icons, but nothing has changed. Is there a way to invert the icons in cherrytree manually, or do I have to build it with the modified icons?

temp

It seems CherryTree doesn't need the "Icons" folder to work (I renamed it and launched CT, and it worked perfectly), so maybe we could make future installations lighter by not packing that folder in?

@giuspen there's no "cobalt-darkened" theme on v99.13 themes

BTW I inverted all images recursively using Image Magick ( FOR /R %a IN (*.*) DO magick mogrify -negate "%a" )

giuspen commented 4 years ago

@PinkDev1 that's a bug then, the following 2 themes https://github.com/giuspen/cherrytree/tree/master/styles are not being loaded correctly in the delivered package, I'll have a look

ItsIgnacioPortal commented 4 years ago

My guessing is that the cobalt-darkened, and amy themes weren't placed on the correct folder, becouse while all other styles are stored in CherryTree\mingw64\share\gtksourceview-3.0\styles, cobalt-darkened.xml and amy.xml are stored in CherryTree\mingw64\usr\share\cherrytree\styles\, and therefor CT doesn't read those files when loading the styles list.

UPDATE: Confirmed. After copying the files the the correct location, CT was able to load them. BTW, it seems gtk.css overrides most propierties aplied by themes. The more you know 🌠

giuspen commented 4 years ago

In cherrytree we are extending the folder where to search for styles and syntax highlightings but on windows the path was wrong, I should have fixed in 0.99.14 where hopefully you will not have to mix the cherrytree styles and language-specs with the defaults in the library

txe commented 4 years ago

@PinkDev1, the icons currently are build in the exe file, so you cannot change them. We should probably consider to put them into files instead.

txe commented 4 years ago

@PinkDev1 , instead of changing gtk3.css, you can try custom dark themes from the internet. Read more about that in https://stackoverflow.com/questions/37035936/how-to-get-native-windows-decorations-on-gtk3-on-windows-7-and-msys2#

ItsIgnacioPortal commented 4 years ago

@PinkDev1, the icons currently are build in the exe file, so you cannot change them. We should probably consider to put them into files instead.

That'd be perfect. I could upload the inverted icons as well, so ppl won't have to invert those +100pngs again ^^

Yeah, it's all coming together

txe commented 4 years ago

Hi @PinkDev1, user custom icons will be looked up in .config/cherrytree/icons in the next release. Original icons and their names you can find in https://github.com/giuspen/cherrytree/tree/master/icons

crogonint commented 4 years ago

@PinkDev1 I believe there are new icon sets that DO work with dark themes built in to GTK 3.0. You might want to dig around in what is already there before you go reinventing the wheel. ;) Like almost everything, Linux adopted dark themes first when everybody wanted them, and M$ only added them when people started getting irritated that they couldn't have them.

Personally, I'd rather have cherrytree specific icons with a white or light colored aura around them, if necessary, rather than inverted. Inverted colorful icons look like photo negatives and are harder to identify. Inverted black icons are perfectly fine, of course.

I don't care for flat black backgrounds, either though. I prefer a nice charcoal gray or dark blue. The point of the dark background is to not stress your eyeballs with all of that contrast of black on white. If you switch to white on black, it's basically the same thing. Sort of. ;)

ItsIgnacioPortal commented 4 years ago

Hi @PinkDev1, user custom icons will be looked up in .config/cherrytree/icons in the next release. Original icons and their names you can find in https://github.com/giuspen/cherrytree/tree/master/icons

And where will that path be on Windows?

txe commented 4 years ago

C:\Users\username\AppData\Local\cherrytree\icons