On 11/3/24 22:04, Bruce Gray wrote:
On Nov 3, 2024, at 22:12, ToddAndMargo via perl6-users <perl6-us...@perl.org>
wrote:
Hi All,
Fedora 41
rakudo-pkg-2024.7.0-01.x86_64
bash-5.2.32-1.fc41.x86_64
I am looking at
https://metacpan.org/pod/Term::ANSIColor
trying to figure out how to print in dark purple.
I have see dnf5 do this, so I know it is possible.
Now one of the hurdles is that purple is not an
actual color. It does not appear on a white
light spectrum break out. Purple is a manifestation
of our brains interpreting a mixture of red and blue.
So how do I mix red and blue to get dark purple?
Many thanks,
-T
Magenta is one of the standard ANSI terminal colors, so that is probably the color you
are seeing in the `dnf` output as "purple".
Simplest example, using module:
raku -e 'use Terminal::ANSIColor; say color("magenta"), "this is in purple(magenta)",
color("reset");'
Just the four purples, in raw ANSI codes:
raku -e 'say "\e\[{.[0]};{.[1]}m {.[0]};{.[1]} \e\[m " for (0,1) X (35,95);'
Full color grid:
raku -e '
my @fg = (31..37) X+ (0,60);
my @bg = (41..47) X+ (0,60);
say " ", @bg.fmt("--%3d--", " ");
for @fg -> $f {
print $f.fmt("%3d:");
for @bg -> $b {
for 0,1 -> $a {
my $z = "$a;$f;$b";
print "\e\[{$z}m $a \e\[m ";
}
}
say "";
}'
For more info:
https://azrael.digipen.edu/~mmead/www/mg/ansicolors/index.html
Hi Bruce,
Are the numbers in the "ANSI Escape Sequences (Details) " of the link,
hexidecimal by chance? "9" an "8" are not octal.
Attributes Foreground Background
color color
00 = normal 31 = red 40 = black
01 = bold 32 = green 41 = red
04 = underlined 33 = orange 42 = green
05 = blinking 34 = blue 43 = orange
07 = reversed 35 = purple 44 = blue
08 = concealed 36 = cyan 45 = purple
37 = grey 46 = cyan
90 = dark grey 47 = grey
91 = light red 100 = dark grey
92 = light green 101 = light red
93 = yellow 102 = light green
94 = light blue 103 = yellow
95 = light purple 104 = light blue
96 = turquoise 105 = light purple
106 = turquoise
This is what I was after:
> print color('bold'), color('52'), "abc", color('reset'), "\n";
abc <shows dark purple>
Questions:
1) why is "color('bold')" = bold, and
"color('01') = normal?
2) why is "color('52')" (34 hex) dark purple and not blue?
Yours in confusion,
-T