geany / geany

A fast and lightweight IDE
https://www.geany.org
GNU General Public License v2.0
3.15k stars 606 forks source link

Idea: distributing all themes from geany-themes together with Geany #4035

Open techee opened 2 weeks ago

techee commented 2 weeks ago

The idea is inspired by #3407 I agree with - some users prefer dark themes and Geany currently doesn't ship with any dark editor theme and cloning and copying themes from geany-themes is an extra step which may discourage less experienced users. One option would be to have one "blessed" dark theme that we'd ship with Geany - I'm just afraid of the amount of discussion it would require to agree on the "right" colors :-) (see #3013, and these were only 4 colors)

So what about taking all the themes from geany-themes and copying them under Geany's data/colorschemes? I think the development github repo of geany-themes could stay as it is, we'd just update the themes in Geany once per release similarly to ctags or Scintilla (in fact, I have been doing the very same thing for the macOS release for many years).

The pros I see are:

  1. Copying the themes is done once by us and doesn't have to be done N times where N is the number of Geany users
  2. Users don't have to discover the geany-themes repo and can try various themes out of the box - especially useful for someone evaluating Geany whether it's a good editor for him/her
  3. Theme files are small so no big problem distributing them in the release tarball
  4. The extra work needed to copy-over all the themes from geany-themes is small so it's not a big maintenance burden (and probably not a big deal if it gets forgotten for some release)

Are there any cons? What do you think?

elextr commented 2 weeks ago

In general agree with the idea, they don't use enough space, but does raise some items:

  1. if all added to data/colorschemes doesn't that make the menu big, or perhaps you could make a alphabetic first level listing to level two, like programs menu #3977
  2. I have heard that there are differing quality, with some missing settings, or other useful settings having default values. Maybe only a well checked few can be listed on the top level (light, dark, solarized, and if it exists one that is usable by colour deficient) and the alphabetic ones are then all in level two under their alphabetic?
  3. sadly the colour schemes are using different licences, GNU Library General Public Licence (and variants and versions, how compatible are they?), MIT, unlicenced, GtkSourceView licence???? and at that point I gave up when I got to G. That has to be addressed, at the moment Geany does not distribute the geany-themes so licenses are ok, if its included in Geany content the licenses have to be properly referenced some how.
techee commented 2 weeks ago

1.if all added to data/colorschemes doesn't that make the menu big, or perhaps you could make a alphabetic first level listing to level two, like programs menu https://github.com/geany/geany/pull/3977

Themes are not shown in a menu but in a scrollable list inside a dialog. So no problem here.

  1. I have heard that there are differing quality, with some missing settings, or other useful settings having default values. Maybe only a well checked few can be listed on the top level (light, dark, solarized, and if it exists one that is usable by colour deficient) and the alphabetic ones are then all in level two under their alphabetic?

I would personally leave the decision whether the theme is good or bad on users - themes are very easy to change and evaluate. When going through the themes, all of them seem to work. I wouldn't pick some of the color combinations myself but that doesn't mean someone else wouldn't like it.

  1. sadly the colour schemes are using different licences, GNU Library General Public Licence (and variants and versions, how compatible are they?), MIT, unlicenced, GtkSourceView licence???? and at that point I gave up when I got to G. That has to be addressed, at the moment Geany does not distribute the geany-themes so licenses are ok, if its included in Geany content the licenses have to be properly referenced some how.

Good point. I went through the licenses and this is the result:

  1. MIT: earthsong, kugel, one-dark, pygments, solarized-dark, solarized-light
  2. Public domain: evg-ega-dark, sleepy-pastel
  3. No explicit license: fluffy, monokai, railcasts2, tango-dark, zenburn
  4. GPL: remaining 22 themes

One option would be to use only the GPL-licensed themes.

Just wondering, what exactly does the license apply to? Is it the combination of colors (I somehow can't imagine it's possible to apply license to that) or the ini file itself? Is GPL or MIT actually applicable here? To me this is more something like our filetype definition config files which I'd say aren't covered by any license.

techee commented 2 weeks ago

Based on

https://en.wikipedia.org/wiki/License_compatibility#GPL_compatibility

we should be able to use (1), (2), and (4) themes and use single GPL license for Geany as a whole.

techee commented 2 weeks ago

To correct myself, group (1) above is MIT+BSD:

  1. MIT: earthsong, one-dark, solarized-dark, solarized-light
  2. 2-clause BSD: kugel, pygments

In any case, both of them should be compatible with GPL.

elextr commented 2 weeks ago

No, many of them are "GNU Library General Public License", which is not GPL, it is different and isn't replaced by Geany's GPL 2+ AFAICT, so I think GNULGPL needs a copy included.

Agree MIT and BSD are small and contain their totals so no problems there.

Things with no license is a problem, basically they are not permitted for anyone to use it.

Anyway I will be unavailable for a bit, so leave it to you.

techee commented 2 weeks ago

No, many of them are "GNU Library General Public License"

OK, you are right, I didn't read the license carefully enough.

so I think GNULGPL needs a copy included.

Would it be enough to have the license inside the colorschemes directory?

Things with no license is a problem, basically they are not permitted for anyone to use it.

These can be dropped then.

eht16 commented 2 weeks ago

I like the idea a lot. We actually already distribute the themes not only with the macOS builds but also with the Windows builds.

I wasn't aware of the licensing issue. I would say let's include those themes where we are sure about license compatibility and then try to relicense more and more themes either under MIT or BSD or GPLv2, so they are compatible. The relicensing process probably will take time and get tedious as previous authors won't respond. Still, I think it's worth a try.

techee commented 2 weeks ago

I would say let's include those themes where we are sure about license compatibility

About those LGPL-licensed themes, I think it's just a matter of adding the LGPL license text file under the colorschemes directory. At least the way I understand https://www.gnu.org/licenses/gpl-faq.en.html#AllCompatibility it's probably the "use library" case (to me, LGPL for text-based themes whose source is always distributed doesn't make much sense).

and then try to relicense more and more themes either under MIT or BSD or GPLv2, so they are compatible.

So it's probably just those themes that have no explicit license. Now the question is what the license covers - is it the color combination (I somehow can't imagine that, it's like licensing quick sort) or the actual "implementation" of the theme, i.e. the conf file? For instance, the Monokai theme was designed by Wimer Hazenberg and the actual Geany conf file created by Thanh Tran. Who of them is the author of the theme to be asked about the license?

mh466lfa commented 4 days ago

I like this idea. Some Linux distributions will pull geany-themes in when you install geany anyway. But this is not the case on Windows. I have to manually download and add a dark color scheme from geany-themes to suit my dark ui theme. This is inconvenient.

eht16 commented 4 days ago

I like this idea. Some Linux distributions will pull geany-themes in when you install geany anyway. But this is not the case on Windows.

How do you install Geany on Windows? The installers from the website do include all colorschemes from geany-themes.

techee commented 4 days ago

Some Linux distributions will pull geany-themes in when you install geany anyway.

But for instance Raspberry Pi OS (where Geany is installed by default) doesn't and the extra setup needed to get a dark theme may discourage first-time users from using it who rather install vscode or other editor that supports it out of the box.