From f98cea83b0bf1deb7ce54abe13d16d7e4fdd91ab Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sun, 23 Oct 2016 07:47:20 +0200 Subject: [PATCH] termcol: exclude monochromatic xcolors palettes --- tools/mktermcol-xcolor | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tools/mktermcol-xcolor b/tools/mktermcol-xcolor index 2d007bc..59c4a25 100755 --- a/tools/mktermcol-xcolor +++ b/tools/mktermcol-xcolor @@ -1,6 +1,8 @@ #!/usr/bin/env perl use 5.010; +use Shiar_Sheet::Colour '1.05'; + say 'use strict;'; say '+{'; my @names; @@ -8,7 +10,6 @@ my @names; for my $path (glob 'data/xcolors/themes/*') { open my $theme, '<', $path; (my $name = $path) =~ s{.*/}{}; # basename - push @names, $name; my @pal; while (readline $theme) { @@ -19,11 +20,26 @@ for my $path (glob 'data/xcolors/themes/*') { $pal[$idx] = $val; } + my $huesum = 0; + for my $hue ( + sort map { $_->hue } + grep { ($_->hsv)[1] > 32 } # ignore unsaturated + map { Shiar_Sheet::Colour->new($_) } + @pal + ) { + state $lasthue; + $huesum += abs($lasthue - $hue) > .02 if defined $lasthue; + $lasthue = $hue; + } + $huesum > 3 or next; # require number of significant hue changes + #TODO tweak to include good-pants, exclude cheesecake-* + say qq("$name" => {); say qq(\ttitle => '$name',); say qq(\tparent => 'cga',); say qq(\tlist => [qw(@pal)],); say qq(},); + push @names, $name; } say 'xcolor => [', join(', ', map {"'$_'"} @names), '],'; -- 2.30.0