Commit c1af57ce authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Use `tput` for settings term colours

parent 0ee20b86
Loading
Loading
Loading
Loading
+24 −89
Original line number Diff line number Diff line
. ~/.shell/funcs
. ~/.shell/colours

# Environment variables
export HISTIGNORE="&:ls:[bf]g:d[fu]:exit"
@@ -77,94 +78,28 @@ if [ "x$TERM" != xlinux ]; then
fi

# VT colours
tput initc $COLOUR_BLACK 0 0 0
tput initc $COLOUR_WHITE 933 933 933
tput initc $COLOUR_GRAY 827 843 812
tput initc $COLOUR_DARK_GRAY 333 341 325
tput initc $COLOUR_RED 800 0 0
tput initc $COLOUR_BRIGHT_RED 937 161 161
tput initc $COLOUR_GREEN 306 604 24
tput initc $COLOUR_BRIGHT_GREEN 541 886 204
tput initc $COLOUR_YELLOW 769 627 0
tput initc $COLOUR_BRIGHT_YELLOW 988 914 310
tput initc $COLOUR_BLUE 204 396 643
tput initc $COLOUR_BRIGHT_BLUE 447 624 812
tput initc $COLOUR_MAGENTA 459 314 482
tput initc $COLOUR_BRIGHT_MAGENTA 678 498 659
tput initc $COLOUR_CYAN 24 596 604
tput initc $COLOUR_BRIGHT_CYAN 204 886 886


# Set default colours on linux console
case "$TERM" in
linux|xterm-256color)
	VT_CODE ()
	{
		local BLACK WHITE GRAY DARKGRAY BRIGHT
		local RED GREEN YELLOW BLUE MAGENTA CYAN
		BLACK=0
		RED=1
		GREEN=2
		YELLOW=3
		BLUE=4
		MAGENTA=5
		CYAN=6
		GRAY=7
		DARKGRAY=8
		WHITE=15
		BRIGHT=8
		eval echo \$$1
	}

	setcolour ()
	{
		colour=`VT_CODE $1`
		shift
		if [ $# -ge 4 ]; then
			colour=$((colour+`VT_CODE $1`))
			shift
		fi
		R=$1 G=$2 B=$3
		printf "\e]P%X%02X%02X%02X" $colour $R $G $B
	}

	setdefault ()
	{
		cur=fg
		fg=15
		bg=0
		while [ $# -gt 0 ]; do
			case "$1" in
			-fg)
				fg=0
				cur=fg
				;;
			-bg)
				bg=0
				cur=bg
				;;
			*)
				eval "val=\$((\$$cur + `VT_CODE $1`))"
				[ $cur = fg ] && fg=$val || bg=$val
				;;
			esac
			shift
		done
		
		# FG colour
		colour=$(((fg%8) + 30))
		bold=$((fg/8))
		[ $bold -gt 0 ] && extra=';1' || extra=''
		printf "\e[%s%sm" $colour $extra

		# BG colour
		colour=$(((bg%8) + 40))
		bold=$((bg/8))
		[ $bold -gt 0 ] && extra=';1' || extra=''
		printf "\e[%s%sm" $colour $extra

		printf "\e[8]"
	}

	setcolour BLACK 0 0 0
	setcolour WHITE 238 238 238
	setcolour GRAY 211 215 207
	setcolour DARKGRAY 85 87 83
	setcolour RED 204 0 0
	setcolour BRIGHT RED 239 41 41
	setcolour GREEN 78 154 6
	setcolour BRIGHT GREEN 138 226 52
	setcolour YELLOW 196 160 0
	setcolour BRIGHT YELLOW 252 233 79
	setcolour BLUE 52 101 164
	setcolour BRIGHT BLUE 114 159 207
	setcolour MAGENTA 117 80 123
	setcolour BRIGHT MAGENTA 173 127 168
	setcolour CYAN 6 152 154
	setcolour BRIGHT CYAN 52 226 226

	setdefault -bg BLACK
	setdefault -fg GREEN
	;;
linux)
	tput setaf $COLOUR_GREEN
	tput setab $COLOUR_BLACK
	printf '\e[8]'
esac

.shell/colours

0 → 100644
+19 −0
Original line number Diff line number Diff line
# vim: ft=sh

COLOUR_BLACK=0
COLOUR_RED=1
COLOUR_GREEN=2
COLOUR_YELLOW=3
COLOUR_BLUE=4
COLOUR_MAGENTA=5
COLOUR_CYAN=6
COLOUR_GRAY=7

COLOUR_DARK_GRAY=$((COLOUR_BLACK + 8))
COLOUR_BRIGHT_RED=$((COLOUR_RED + 8))
COLOUR_BRIGHT_GREEN=$((COLOUR_GREEN + 8))
COLOUR_BRIGHT_YELLOW=$((COLOUR_YELLOW + 8))
COLOUR_BRIGHT_BLUE=$((COLOUR_BLUE + 8))
COLOUR_BRIGHT_MAGENTA=$((COLOUR_MAGENTA + 8))
COLOUR_BRIGHT_CYAN=$((COLOUR_CYAN + 8))
COLOUR_WHITE=$((COLOUR_GRAY + 8))