Quote
How many colors should be assigned? How should they be assigned to the different nicks?

Depending on the background color, there can be different number of different colors you'd want to use. If your background is black, you could use 3-green 4-red 8-yellow 9-neon-green 11-sky-blue. But 2-blue would be bad. On the other hand, with a white background, 8/9/11 are bad, but 2 and 12 are good. Other colors start to become marginal, so how to decide when enough is enough.

Should the color be calculated based on the 'nick'? or their address so they stay the same color when they change nick?

I tested several different algorithms that measure relative perceived luminance, contrast, etc. to determine if a foreground color is readable on a particular background color. It's not clear-cut but I found some algorithms that work reasonably well. The acceptability threshold has to be set high enough to disqualify unusable foreground colors for a specific background color, which unfortunately disqualifies a small number of usable foreground colors as well. But the overall result is acceptable.

To test this out, I made a small change to the nick color list feature so that if you add an item that has no color, it chooses a random color for the nickname. This seems like the easiest way of adding this feature, considering that there is no point in adding a no color item. It works as expected... all nicknames in the channel nick list are assigned random colors (based on a hash of their nickname) from the usable foreground colors list. You can then place this item in the order you want in the nick color list and it will only be applied if there are no other matches before it.

This could be made a default setting for newly installed versions of mIRC to improve readibility.

This will be in the next beta.

Update: It just occurs to me that there is a reason you would add a no color item... you could use it to block matching nicks from being colored by items further down the list. Hmm...

Last edited by Khaled; 19/10/19 10:57 PM.