With this patch, user can specify some colour and opacity such as cursor, character-selection, etc.
Nice! I'm wondering if the opacity values could be combined with the colour buttons. I suspect using the set_use_alpha method on the gtk.ColorButton would make the opacity settings a little more intuitive. There are a few wrinkles that currently complicate things. It looks like you discovered a few of these:
1) The difference colours can be an arbitrary list of colours... we could just drop the arbitrary list feature and pick a fixed number of colours, perhaps just use the current default which is 3.
2) The character and line differences share the same colour but have different opacity values. Perhaps we should separate them into two distinct colour values.
3) The numerous syntax highlighting colours are not easily accessible.
Any thoughts? Do these suggestions not go far enough?
I have thought using colour button to set alpha value as well. However, the adjustable colour/alpha values in my patch are not one-to-one currently, the users might confuse that some alpha values can be set using colour button but others should be set using spin button. I think using colour button to specify colour and alpha at the same time is great, but it should considered carefully what colour/alpha values should be adjustable for the users.
IMHO the main goal of adjusting colour is to let the users comfortable. If the default colours are comfortable for the users, I believe that only few users will change them. For me, "comfortable" means "clear", because it is a tool to show the difference. If I cannot find the different characters/lines easily, I will feel uncomfortable on the colours. (Actually it is the reason why I made the patch, the default colour is not clear enough in my monitor). Therefore, I suggest that implementing 1) and 2) only when it is useful for
For 3), I think very few people who really want to change the colours of syntax highlighting, especially it is not an editor for coding. It will be cool, but it might be not easy to implement. I don't think it is worth implementation.
Just my two cents.