Channelcolors

Rebase, squash and cleanup of @flukeout's #1608.