This whole theming story is not nice. One good thing about Pharo is that one can make the environment one's own. But most of the time, this starts with the colors, and one hits a brick wall. I just can't help thinking about pieces of software like WinAmp where one could do theming easily, adding plugins with ease etc. A lot of editors these days do it all with CSS and similar tech, blowing us out of the water on that front. Generally speaking, with the new Pharo (like 4.x, 5,x, 6,x), I face a more difficult system to get into (despite all the cool things Spotter allows). Somedays, I am wondering if we aren't actively keeping people out. Phil On Mon, Aug 1, 2016 at 11:13 AM, Esteban Lorenzano <estebanlm@gmail.com> wrote:
Hi,
For one of my side-projects, I made a new theme for Pharo (still no name, I was planing to call it âDark Metalâ or something like that. Is a variation on the Dark Theme but âourâ dark theme is more brown and this one is more blue (see attached)⦠I wanted to publish it to push it but then I arrived to an unexpected problem: For Spotter and GTTools in general, theming is not done following current theming approach. Instead, they made a full hierarchy of objects.
IMO this is plain bad. I understand the attempt to decouple, but now that means if I want to create a new theme, I need to create my theme object with colors I want and then also I need to create an undetermined number of classes (at least one for each tool, but there is also a hierarchy of things there)⦠anyway, this DOES NOT scale. Because each tool will have to have a âtheme classâ for each existing theme⦠How themes (skins, bah) work in all word is to have a color palette and then tools takes them (they can âplayâ a bit with this palette, but need to always respect the palette).
Then, I will commit a SLICE modifying the âthemerâ classes to take colors from the current theme (instead of have them hardcoded). But of course, how theme work now is not good because they mix âthemeâ (how they display) and âskinâ (color palette). I will also extract the palette to where should have always been (some kind of a style sheet object)⦠who also should have been editable in settings so people can tweak their configuration.
I didnât wanted to touch this before, because this will supposedly change with brick, but honestly this will not be ready for Pharo 6 and this is annoying (also, I want to publish my theme and I do not want to add overrides all around :P)
cheers, Esteban