Konsole may support more than 8 colors but if your TERM environment is set wrong then the OS won't know it can. If you bypass the OS and print the color escape sequences directly (as the script is doing, naughtily[1]) then it might just work.
[1] The proper way is to use terminfo to output the escape sequences for you. See http://perldoc.perl.org/Term/Cap.html for how to do this with standard Perl. EDIT: I can't get this to work—Seems Perl has poor terminfo support. :-( "tput setaf 10" is the correct way from sh.
I would recommend my small library Color::ANSI::Util (https://metacpan.org/module/Color::ANSI::Util ) which has ansifg($rgb) and ansibg($rgb) function. They can detect terminal's color depth and output either 24-bit/256-color/16-color ANSI color escape codes.
But I guess the author wants to avoid using non-core dependencies.
Cool script, anyhow! I spent a lot of times looking at this kind of activity graph on Github.
As already submitted to the Github issues, the ability to show activity of multiple git repos as a single graph would be neat, as we tend work across multiple git repos.
> assumes the terminal is 256 colors
Would there be a way to degrade gracefully somehow if not? Perhaps using grayscale?