#!/usr/bin/perl
							 | 
						|
								
							 | 
						|
								use strict;
							 | 
						|
								
							 | 
						|
								# taken from: http://www.steike.com/code/xterm-colors/
							 | 
						|
								
							 | 
						|
								# The command line arguments are:
							 | 
						|
								
							 | 
						|
								#   xtfix 004000         set bgcol to greenish
							 | 
						|
								#   xtfix 000000 555555  set bgcol to a random color between the two given values
							 | 
						|
								#   xtfix -r             reset the terminal (useful after 'cat /bin/sh' :-)
							 | 
						|
								#   xtfix -f4            choose font size (3-6 are ok)
							 | 
						|
								
							 | 
						|
								# Default args (subtle random shade, reset, font 4):
							 | 
						|
								
							 | 
						|
								my $args = "@ARGV" || "080808 202020 -r -f4";
							 | 
						|
								
							 | 
						|
								# Basic color map, feel free to edit:
							 | 
						|
								
							 | 
						|
								my @cols = qw(000000 cc6666
							 | 
						|
								          33cc66 cc9933
							 | 
						|
								          3366cc cc33cc
							 | 
						|
								          33cccc cccccc
							 | 
						|
								          666666 ff6666
							 | 
						|
								          66ff66 ffff66
							 | 
						|
								          6699ff ff66ff
							 | 
						|
								          33ffff ffffff);
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								# Full reset
							 | 
						|
								
							 | 
						|
								print "\033c" if $args =~ s/-r//;
							 | 
						|
								
							 | 
						|
								# Select font
							 | 
						|
								
							 | 
						|
								print "\033]50;#$1\007" if $args =~ s/-f(\d)//;
							 | 
						|
								
							 | 
						|
								# Parse the 'black' value
							 | 
						|
								
							 | 
						|
								my @ofs = map hex, $args =~ /([0-9a-f]{2})/gi;
							 | 
						|
								if(@ofs>3) {
							 | 
						|
								    $ofs[$_] = $ofs[$_] + rand($ofs[$_+3]-$ofs[$_])
							 | 
						|
								    for 0..2;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								for my $i(0..15) {
							 | 
						|
								    my $c = $cols[$i];
							 | 
						|
								    my $Z;
							 | 
						|
								    $c =~ s{..}{
							 | 
						|
								    my $a = hex $&;
							 | 
						|
								    my $b = $ofs[$Z++];
							 | 
						|
								    sprintf("%02x", $a + $b - ($a*$b)/255);
							 | 
						|
								    }ge;
							 | 
						|
								    printf "\033[%d;3%dm(%d)", $i/8, $i&7, $i if $args =~ /show/;
							 | 
						|
								    print "\033]4;$i;#$c\007";
							 | 
						|
								    print "\033]11;#$c\007" if !$i;   # 0 is also 'background color'
							 | 
						|
								    print "\033]10;#$c\007" if $i==7; # 7 is also 'plain foreground color'
							 | 
						|
								}
							 |