Merge branch 'pre-master' into sysadmin-master
* pre-master: Add debug message to sigil generation. Make sgr builder more portable. Dynamic prompt colors cacheing loop New safe_source logic. All the debugging I could find. More debug prints converted Upgrade some debug printing to debug statements. Add `_debug` primitive Fix shell level hiding Hiding shell level at 1 is the default. Convert color script to portable POSIX shell Overhaul the installation and detection mechanisms No need to hardcode this anymore. Conflicts: startup_hooks/tcshrc tcshrc.prompt.final
This commit is contained in:
+192
-158
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/sh
|
||||||
|
|
||||||
# This script will take an HTML compatible hex colour string and turn it into
|
# This script will take an HTML compatible hex colour string and turn it into
|
||||||
# a terminal sequence for true colour and other formats which best approximate
|
# a terminal sequence for true colour and other formats which best approximate
|
||||||
@@ -13,84 +13,107 @@
|
|||||||
|
|
||||||
debug=0
|
debug=0
|
||||||
|
|
||||||
|
debug_print()
|
||||||
|
{
|
||||||
|
if [ ${debug} -ne 0 ]
|
||||||
|
then
|
||||||
|
echo ${*} >&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# This is the named color map. Just add new entries and they'll be supported...
|
# This is the named color map. Just add new entries and they'll be supported...
|
||||||
|
|
||||||
declare -A map
|
COLOR_TABLE=""
|
||||||
map[white]="FFFFFF"
|
|
||||||
map[silver]="C0C0C0"
|
map()
|
||||||
map[gray]="808080"
|
{
|
||||||
map[grey]="808080"
|
if [ $# -eq 2 ]
|
||||||
map[black]="000000"
|
then
|
||||||
map[red]="FF0000"
|
COLOR_TABLE="${COLOR_TABLE}:${1}=${2}"
|
||||||
map[maroon]="800000"
|
else
|
||||||
map[yellow]="FFFF00"
|
___right="${COLOR_TABLE##*:${1}=}"
|
||||||
map[olive]="808000"
|
echo ${___right%%:*}
|
||||||
map[lime]="00FF00"
|
fi
|
||||||
map[green]="008000"
|
}
|
||||||
map[aqua]="00FFFF"
|
|
||||||
map[teal]="008080"
|
map white "FFFFFF"
|
||||||
map[blue]="0000FF"
|
map silver "C0C0C0"
|
||||||
map[navy]="000080"
|
map gray "808080"
|
||||||
map[fuchsia]="FF00FF"
|
map grey "808080"
|
||||||
map[purple]="800080"
|
map black "000000"
|
||||||
|
map red "FF0000"
|
||||||
|
map maroon "800000"
|
||||||
|
map yellow "FFFF00"
|
||||||
|
map olive "808000"
|
||||||
|
map lime "00FF00"
|
||||||
|
map green "008000"
|
||||||
|
map aqua "00FFFF"
|
||||||
|
map teal "008080"
|
||||||
|
map blue "0000FF"
|
||||||
|
map navy "000080"
|
||||||
|
map fuchsia "FF00FF"
|
||||||
|
map purple "800080"
|
||||||
|
|
||||||
# Some VGA color names can be promoted:
|
# Some VGA color names can be promoted:
|
||||||
map[brown]="aa5500"
|
map brown "aa5500"
|
||||||
map[cyan]="00aaaa"
|
map cyan "00aaaa"
|
||||||
|
|
||||||
|
|
||||||
# The VGA names can be prefixed with "vga-" to explicitly avoid the collisions with HTML names, above...
|
# The VGA names can be prefixed with "vga-" to explicitly avoid the collisions with HTML names, above...
|
||||||
# Based upon wikipedia's article on ANSI. See the table on that page for details.
|
# Based upon wikipedia's article on ANSI. See the table on that page for details.
|
||||||
map[vga-black]="000000"
|
map vga-black "000000"
|
||||||
map[vga-red]="aa0000"
|
map vga-red "aa0000"
|
||||||
map[vga-green]="00aa00"
|
map vga-green "00aa00"
|
||||||
map[vga-brown]="aa5500"
|
map vga-brown "aa5500"
|
||||||
map[vga-yellow]="aa5500"
|
map vga-yellow "aa5500"
|
||||||
map[vga-blue]="0000aa"
|
map vga-blue "0000aa"
|
||||||
map[vga-magenta]="aa00aa"
|
map vga-magenta "aa00aa"
|
||||||
map[vga-cyan]="00aaaa"
|
map vga-cyan "00aaaa"
|
||||||
map[vga-white]="aaaaaa"
|
map vga-white "aaaaaa"
|
||||||
|
|
||||||
map[vga-brightblack]="555555"
|
map vga-brightblack "555555"
|
||||||
map[vga-grey]="555555"
|
map vga-grey "555555"
|
||||||
map[vga-gray]="555555"
|
map vga-gray "555555"
|
||||||
map[vga-brightred]="ff5555"
|
map vga-brightred "ff5555"
|
||||||
map[vga-brightgreen]="55ff55"
|
map vga-brightgreen "55ff55"
|
||||||
map[vga-brightyellow]="ffff55"
|
map vga-brightyellow "ffff55"
|
||||||
map[vga-brightblue]="5555ff"
|
map vga-brightblue "5555ff"
|
||||||
map[vga-brightmagenta]="ff55ff"
|
map vga-brightmagenta "ff55ff"
|
||||||
map[vga-brightcyan]="55ffff"
|
map vga-brightcyan "55ffff"
|
||||||
map[vga-brightwhite]="ffffff"
|
map vga-brightwhite "ffffff"
|
||||||
|
|
||||||
enable_greyscale_cheat=0
|
enable_greyscale_cheat=0
|
||||||
|
|
||||||
nocsi=0
|
nocsi=0
|
||||||
if [[ $1 == "no-csi" ]]
|
if [ "$1" = "no-csi" ]
|
||||||
then
|
then
|
||||||
nocsi=1
|
nocsi=1
|
||||||
shift 1
|
shift 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function dump_colors()
|
dump_colors()
|
||||||
{
|
{
|
||||||
for key in ${!map[@]}
|
all_maps=$(echo ${COLOR_TABLE} | sed -e 's/:/ /g' -e 's/=[0-9a-fA-F]\{6\}//g')
|
||||||
|
debug_print "Going through all these colors ${all_maps} (${COLOR_TABLE})"
|
||||||
|
for key in ${all_maps}
|
||||||
do
|
do
|
||||||
|
debug_print "Processing key ${key}"
|
||||||
case $key in
|
case $key in
|
||||||
*bright*) text_color="000000" ;;
|
*bright*) text_color="000000" ;;
|
||||||
*black*) text_color="ffffff" ;;
|
*black*) text_color="ffffff" ;;
|
||||||
*) text_color="000000" ;;
|
*) text_color="000000" ;;
|
||||||
esac
|
esac
|
||||||
printf "%-24s${map[${key}]} |" ${key}
|
printf "%-24s$(map ${key} ) |" ${key}
|
||||||
printf "`$0 reset reverse bg:${text_color} fg:${key}`native-sample`$0 reset`|"
|
printf "`$0 reset reverse bg:${text_color} fg:${key}`native-sample`$0 reset`|"
|
||||||
if [[ ! -v CSHENV_TERMINAL_COLORS ]] || (( ${CSHENV_TERMINAL_COLORS} >= 256 ))
|
if [ -z "${CSHENV_TERMINAL_COLORS+x}" ] || [ ${CSHENV_TERMINAL_COLORS} -ge 256 ]
|
||||||
then
|
then
|
||||||
printf "`env CSHENV_TERMINAL_COLORS=256 $0 reset reverse bg:${text_color} fg:${key}`8-bit sample`$0 reset`|"
|
printf "`env CSHENV_TERMINAL_COLORS=256 $0 reset reverse bg:${text_color} fg:${key}`8-bit sample`$0 reset`|"
|
||||||
fi
|
fi
|
||||||
if [[ ! -v CSHENV_TERMINAL_COLORS ]] || (( ${CSHENV_TERMINAL_COLORS} >= 16 ))
|
if [ -z "${CSHENV_TERMINAL_COLORS+x}" ] || [ ${CSHENV_TERMINAL_COLORS} -ge 16 ]
|
||||||
then
|
then
|
||||||
printf "`env CSHENV_TERMINAL_COLORS=16 $0 reset reverse bg:${text_color} fg:${key}`4-bit sample`$0 reset`|"
|
printf "`env CSHENV_TERMINAL_COLORS=16 $0 reset reverse bg:${text_color} fg:${key}`4-bit sample`$0 reset`|"
|
||||||
fi
|
fi
|
||||||
if [[ ! -v CSHENV_TERMINAL_COLORS ]] || (( ${CSHENV_TERMINAL_COLORS} >= 8 ))
|
if [ -z "${CSHENV_TERMINAL_COLORS+x}" ] || [ ${CSHENV_TERMINAL_COLORS} -ge 8 ]
|
||||||
then
|
then
|
||||||
printf "`env CSHENV_TERMINAL_COLORS=8 $0 reset reverse bg:${text_color} fg:${key}`3-bit sample`$0 reset`|"
|
printf "`env CSHENV_TERMINAL_COLORS=8 $0 reset reverse bg:${text_color} fg:${key}`3-bit sample`$0 reset`|"
|
||||||
fi
|
fi
|
||||||
@@ -100,19 +123,19 @@ function dump_colors()
|
|||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function cube_row()
|
cube_row()
|
||||||
{
|
{
|
||||||
r_base=${1}
|
r_base=${1}
|
||||||
g=0
|
g=0
|
||||||
while (( g < 6 ))
|
while [ ${g} -lt 6 ]
|
||||||
do
|
do
|
||||||
u=0
|
u=0
|
||||||
while (( u < 3 ))
|
while [ ${u} -lt 3 ]
|
||||||
do
|
do
|
||||||
r=$(( r_base + u ))
|
r=$(( r_base + u ))
|
||||||
|
|
||||||
b=0
|
b=0
|
||||||
while (( b < 6 ))
|
while [ ${b} -lt 6 ]
|
||||||
do
|
do
|
||||||
i=$(( 16 + ( r * 36 ) + ( g * 6 ) + ( b ) ))
|
i=$(( 16 + ( r * 36 ) + ( g * 6 ) + ( b ) ))
|
||||||
|
|
||||||
@@ -135,12 +158,12 @@ function cube_row()
|
|||||||
printf '\n'
|
printf '\n'
|
||||||
}
|
}
|
||||||
|
|
||||||
function greyscale_chart()
|
greyscale_chart()
|
||||||
{
|
{
|
||||||
[ ${i} -ge 244 ] && txt=";30"
|
[ ${i} -ge 244 ] && txt=";30"
|
||||||
|
|
||||||
local k=$(( i + 12 ))
|
local k=$(( i + 12 ))
|
||||||
while (( i < k ))
|
while [ ${i} -lt ${k} ]
|
||||||
do
|
do
|
||||||
printf "[48;5;${i};37;1${txt}m%3i[m " ${i}
|
printf "[48;5;${i};37;1${txt}m%3i[m " ${i}
|
||||||
i=$(( i + 1 ))
|
i=$(( i + 1 ))
|
||||||
@@ -148,12 +171,12 @@ function greyscale_chart()
|
|||||||
printf '\n'
|
printf '\n'
|
||||||
}
|
}
|
||||||
|
|
||||||
function color_chart()
|
color_chart()
|
||||||
{
|
{
|
||||||
i=0
|
i=0
|
||||||
|
|
||||||
# Base 16
|
# Base 16
|
||||||
while (( i < 16 ))
|
while [ ${i} -lt 16 ]
|
||||||
do
|
do
|
||||||
[ ${i} -gt 0 ] && txt=";30"
|
[ ${i} -gt 0 ] && txt=";30"
|
||||||
|
|
||||||
@@ -171,47 +194,47 @@ function color_chart()
|
|||||||
greyscale_chart
|
greyscale_chart
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup_color_depth()
|
setup_color_depth()
|
||||||
{
|
{
|
||||||
use_8_bit=0
|
use_8_bit=0
|
||||||
use_4_bit=0
|
use_4_bit=0
|
||||||
use_3_bit=0
|
use_3_bit=0
|
||||||
|
|
||||||
# Must only be set if terminal colors are reduced...
|
# Must only be set if terminal colors are reduced...
|
||||||
if [[ -v CSHENV_TERMINAL_COLORS ]]
|
if [ "${CSHENV_TERMINAL_COLORS+x}" ]
|
||||||
then
|
then
|
||||||
if (( ${CSHENV_TERMINAL_COLORS} == 256 ))
|
if [ ${CSHENV_TERMINAL_COLORS} -eq 256 ]
|
||||||
then
|
then
|
||||||
use_8_bit=1
|
use_8_bit=1
|
||||||
elif (( ${CSHENV_TERMINAL_COLORS} == 16 ))
|
elif [ ${CSHENV_TERMINAL_COLORS} -eq 16 ]
|
||||||
then
|
then
|
||||||
use_4_bit=1
|
use_4_bit=1
|
||||||
elif (( ${CSHENV_TERMINAL_COLORS} == 8 ))
|
elif [ ${CSHENV_TERMINAL_COLORS} -eq 8 ]
|
||||||
then
|
then
|
||||||
use_3_bit=1
|
use_3_bit=1
|
||||||
else
|
else
|
||||||
echo "ERROR!" 1>&2 ; exit -1
|
echo "ERROR!" 1>&2 ; exit 255
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function render_color()
|
render_color()
|
||||||
{
|
{
|
||||||
command_color=30
|
command_color=30
|
||||||
if (( ${use_3_bit} ))
|
if [ ${use_3_bit} -ne 0 ]
|
||||||
then
|
then
|
||||||
# Underline colours need 8-bit or more
|
# Underline colours need 8-bit or more
|
||||||
if (( ${background} > 1 )) ; then return; fi
|
if [ ${background} -gt 1 ] ; then return; fi
|
||||||
basecolor=$(( ${command_color} + ${background}*10))
|
basecolor=$(( ${command_color} + ${background}*10))
|
||||||
next="$(( ${basecolor} + ${legacy_3_bit} ))"
|
next="$(( ${basecolor} + ${legacy_3_bit} ))"
|
||||||
elif (( ${use_4_bit} ))
|
elif [ ${use_4_bit} -ne 0 ]
|
||||||
then
|
then
|
||||||
# Underline colours need 8-bit or more
|
# Underline colours need 8-bit or more
|
||||||
if (( ${background} > 1 )) ; then return; fi
|
if [ ${background} -gt 1 ] ; then return; fi
|
||||||
command_color=$(( ${command_color} + ${intensity_1_bit} * 60 ))
|
command_color=$(( ${command_color} + ${intensity_1_bit} * 60 ))
|
||||||
basecolor=$(( ${command_color} + ${background}*10 ))
|
basecolor=$(( ${command_color} + ${background}*10 ))
|
||||||
next="$(( ${basecolor} + ${legacy_3_bit} ))"
|
next="$(( ${basecolor} + ${legacy_3_bit} ))"
|
||||||
elif (( ${use_8_bit} ))
|
elif [ ${use_8_bit} -ne 0 ]
|
||||||
then
|
then
|
||||||
basecolor=$(( 8 + ${command_color} + ${background}*10 ))
|
basecolor=$(( 8 + ${command_color} + ${background}*10 ))
|
||||||
next="${basecolor};5;${ext_8_bit}"
|
next="${basecolor};5;${ext_8_bit}"
|
||||||
@@ -223,12 +246,12 @@ function render_color()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
function ansi_color()
|
ansi_color()
|
||||||
{
|
{
|
||||||
if (( ${1} > 15 ))
|
if [ ${1} -gt 15 ]
|
||||||
then
|
then
|
||||||
echo "ERROR!" 1>&2 ; exit -1
|
echo "ERROR!" 1>&2 ; exit 255
|
||||||
elif (( ${1} >= 8 ))
|
elif [ ${1} -ge 8 ]
|
||||||
then
|
then
|
||||||
use_4_bit=1
|
use_4_bit=1
|
||||||
intensity_1_bit=1
|
intensity_1_bit=1
|
||||||
@@ -240,58 +263,65 @@ function ansi_color()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function ext_grey()
|
ext_grey()
|
||||||
{
|
{
|
||||||
use_8_bit=1
|
use_8_bit=1
|
||||||
grey_val=${1}
|
grey_val=${1}
|
||||||
if (( ${grey_val} < 0 || ${grey_val} > 23 ))
|
if [ ${grey_val} -le 0 - ${grey_val} -gt 23 ]
|
||||||
then
|
then
|
||||||
echo "ERROR!" 1>&2 ; exit -1
|
echo "ERROR!" 1>&2 ; exit 255
|
||||||
fi
|
fi
|
||||||
ext_8_bit=$(( 232 + ${grey_val} ))
|
ext_8_bit=$(( 232 + ${grey_val} ))
|
||||||
}
|
}
|
||||||
|
|
||||||
function ext_rgb()
|
ext_rgb()
|
||||||
{
|
{
|
||||||
use_8_bit=1
|
use_8_bit=1
|
||||||
red_ext_val=$((6#${1:0:1}))
|
red_ext_val="${1%??*}"
|
||||||
green_ext_val=$((6#${1:1:1}))
|
tmp="${1#?}"
|
||||||
blue_ext_val=$((6#${1:2:1}))
|
green_ext_val=${tmp%?*}
|
||||||
|
blue_ext_val=${tmp#?*}
|
||||||
ext_8_bit=$(( 16 + 36 * ${red_ext_val} + 6 * ${green_ext_val} + ${blue_ext_val} ))
|
ext_8_bit=$(( 16 + 36 * ${red_ext_val} + 6 * ${green_ext_val} + ${blue_ext_val} ))
|
||||||
}
|
}
|
||||||
|
|
||||||
function ext_color()
|
ext_color()
|
||||||
{
|
{
|
||||||
use_8_bit=1
|
use_8_bit=1
|
||||||
if (( ${1} > 255 ))
|
if [ ${1} -gt 255 ]
|
||||||
then
|
then
|
||||||
echo "ERROR!" 1>&2 ; exit -1
|
echo "ERROR!" 1>&2 ; exit 255
|
||||||
else
|
else
|
||||||
ext_8_bit=${1}
|
ext_8_bit=${1}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function rgb_color()
|
rgb_color()
|
||||||
{
|
{
|
||||||
color=$1
|
color=$1
|
||||||
case $1 in
|
case $1 in
|
||||||
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) color=${1:0:1}${1:0:1}${1:1:1}${1:1:1}${1:2:1}${1:2:1} ;;
|
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])
|
||||||
|
tmp="${color}"
|
||||||
|
color="${tmp%??*}${tmp%??*}"
|
||||||
|
tmp="${tmp#?}"
|
||||||
|
color="${color}${tmp%?*}${tmp%?*}${tmp#?}${tmp#?}"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
# First split off the red, green, and blue components...
|
# First split off the red, green, and blue components...
|
||||||
red_hex=${color:0:2}
|
red_hex="0x${color%????}"
|
||||||
green_hex=${color:2:2}
|
color="${color#??}"
|
||||||
blue_hex=${color:4:2}
|
green_hex="0x${color%??}"
|
||||||
|
blue_hex="0x${color#??}"
|
||||||
|
|
||||||
# Convert to decimal...
|
# Convert to decimal...
|
||||||
red_dec=$((16#${red_hex}))
|
red_dec=$((${red_hex}))
|
||||||
green_dec=$((16#${green_hex}))
|
green_dec=$((${green_hex}))
|
||||||
blue_dec=$((16#${blue_hex}))
|
blue_dec=$((${blue_hex}))
|
||||||
|
|
||||||
if (( ${debug} != 0 ))
|
if [ ${debug} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Red: $red_dec"
|
debug_print "Red: $red_dec"
|
||||||
echo "Green: $green_dec"
|
debug_print "Green: $green_dec"
|
||||||
echo "Blue: $blue_dec"
|
debug_print "Blue: $blue_dec"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Now compute the rest of the stuff...
|
# Now compute the rest of the stuff...
|
||||||
@@ -311,22 +341,22 @@ function rgb_color()
|
|||||||
# If we can support an intensity bit, we'll turn that on too...
|
# If we can support an intensity bit, we'll turn that on too...
|
||||||
# But we're going to stop using bold to set the colour "intense"
|
# But we're going to stop using bold to set the colour "intense"
|
||||||
# We'll use the 9x and 10x forms...
|
# We'll use the 9x and 10x forms...
|
||||||
if (( ${red_dec} >= 192 || ${green_dec} >= 192 || ${blue_dec} >= 192 ))
|
if [ ${red_dec} -ge 192 -o ${green_dec} -ge 192 -o ${blue_dec} -ge 192 ]
|
||||||
then
|
then
|
||||||
intensity_1_bit=1
|
intensity_1_bit=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( ${debug} != 0 ))
|
if [ ${debug} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Red bit: " $red_1_bit
|
debug_print "Red bit: " $red_1_bit
|
||||||
echo "Green bit: " $green_1_bit
|
debug_print "Green bit: " $green_1_bit
|
||||||
echo "Blue bit: " $blue_1_bit
|
debug_print "Blue bit: " $blue_1_bit
|
||||||
echo "Intensity bit: " $intensity_1_bit
|
debug_print "Intensity bit: " $intensity_1_bit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Because grey is tricky, I'm going to special case it:
|
# Because grey is tricky, I'm going to special case it:
|
||||||
if (( 1 && ${red_dec} == ${green_dec} && ${green_dec} == ${blue_dec} && ${red_dec} < 128 && ${red_dec} >= 80 ))
|
if [ ${red_dec} -eq ${green_dec} -a ${green_dec} -eq ${blue_dec} -a ${red_dec} -lt 128 -a ${red_dec} -ge 80 ]
|
||||||
then
|
then
|
||||||
red_1_bit=0
|
red_1_bit=0
|
||||||
green_1_bit=0
|
green_1_bit=0
|
||||||
@@ -335,28 +365,28 @@ function rgb_color()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Because brown is tricky, I'm going to special case it:
|
# Because brown is tricky, I'm going to special case it:
|
||||||
if (( ${red_dec} > 128 && ${green_dec} > 80 && ${blue_dec} < 50 ))
|
if [ ${red_dec} -gt 128 -a ${green_dec} -gt 80 -a ${blue_dec} -lt 50 ]
|
||||||
then
|
then
|
||||||
red_1_bit=1
|
red_1_bit=1
|
||||||
green_1_bit=1
|
green_1_bit=1
|
||||||
blue_1_bit=0
|
blue_1_bit=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( ${debug} != 0 ))
|
if [ ${debug} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Red bit: " $red_1_bit
|
debug_print "Red bit: " $red_1_bit
|
||||||
echo "Green bit: " $green_1_bit
|
debug_print "Green bit: " $green_1_bit
|
||||||
echo "Blue bit: " $blue_1_bit
|
debug_print "Blue bit: " $blue_1_bit
|
||||||
echo "Intensity bit: " $intensity_1_bit
|
debug_print "Intensity bit: " $intensity_1_bit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# This lets us combine them for a legacy colour value in the legacy colour space...
|
# This lets us combine them for a legacy colour value in the legacy colour space...
|
||||||
|
|
||||||
legacy_3_bit=$(( ( ${blue_1_bit} << 2 ) + ( ${green_1_bit} << 1 ) + ( ${red_1_bit} ) ))
|
legacy_3_bit=$(( ( ${blue_1_bit} << 2 ) + ( ${green_1_bit} << 1 ) + ( ${red_1_bit} ) ))
|
||||||
|
|
||||||
if (( ${debug} != 0 ))
|
if [ ${debug} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Legacy colour: " ${legacy_3_bit} " Intensity: " ${intensity_1_bit}
|
debug_print "Legacy colour: " ${legacy_3_bit} " Intensity: " ${intensity_1_bit}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Now compute an extended colour cube placement (216 colours):
|
# Now compute an extended colour cube placement (216 colours):
|
||||||
@@ -365,35 +395,35 @@ function rgb_color()
|
|||||||
green_ext_val=$(( ${green_dec} * 6 / 256 ))
|
green_ext_val=$(( ${green_dec} * 6 / 256 ))
|
||||||
blue_ext_val=$(( ${blue_dec} * 6 / 256 ))
|
blue_ext_val=$(( ${blue_dec} * 6 / 256 ))
|
||||||
|
|
||||||
if (( ${debug} != 0 ))
|
if [ ${debug} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Red ext: " ${red_ext_val}
|
debug_print "Red ext: " ${red_ext_val}
|
||||||
echo "Green ext: " ${green_ext_val}
|
debug_print "Green ext: " ${green_ext_val}
|
||||||
echo "Blue ext: " ${blue_ext_val}
|
debug_print "Blue ext: " ${blue_ext_val}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ext_8_bit=$(( 16 + 36 * ${red_ext_val} + 6 * ${green_ext_val} + ${blue_ext_val} ))
|
ext_8_bit=$(( 16 + 36 * ${red_ext_val} + 6 * ${green_ext_val} + ${blue_ext_val} ))
|
||||||
|
|
||||||
if (( ${debug} ))
|
if [ ${debug} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Computed 216 color cube: " ${ext_8_bit}
|
debug_print "Computed 216 color cube: " ${ext_8_bit}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for precise greyscale, which would replace the above:
|
# Check for precise greyscale, which would replace the above:
|
||||||
# (Note that precise greyscale is implied by a user explicitly making ALL of RGB the
|
# (Note that precise greyscale is implied by a user explicitly making ALL of RGB the
|
||||||
# same value, thus demanding greyscale, rather than a subtle tinting...)
|
# same value, thus demanding greyscale, rather than a subtle tinting...)
|
||||||
|
|
||||||
if (( ${red_dec} == ${green_dec} && ${green_dec} == ${blue_dec} ))
|
if [ ${red_dec} -eq ${green_dec} -a ${green_dec} -eq ${blue_dec} ]
|
||||||
then
|
then
|
||||||
ext_8_bit=$(( 232 + ${red_dec} * 24 / 256 ))
|
ext_8_bit=$(( 232 + ${red_dec} * 24 / 256 ))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( ${debug} ))
|
if [ ${debug} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Computed 256 color choice, after applying greyscale scan: " ${ext_8_bit}
|
debug_print "Computed 256 color choice, after applying greyscale scan: " ${ext_8_bit}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( ${enable_greyscale_cheat} ))
|
if [ ${enable_greyscale_cheat} -ne 0 ]
|
||||||
then
|
then
|
||||||
# Check for SPECIFIC white and black and grey:
|
# Check for SPECIFIC white and black and grey:
|
||||||
# The half-saturation, no saturation, and full saturation values are mapped
|
# The half-saturation, no saturation, and full saturation values are mapped
|
||||||
@@ -403,34 +433,34 @@ function rgb_color()
|
|||||||
# points in the 6x6x6 colour cube.)
|
# points in the 6x6x6 colour cube.)
|
||||||
#
|
#
|
||||||
# TODO: Only map the head and tail of the colour cube.
|
# TODO: Only map the head and tail of the colour cube.
|
||||||
if (( ${red_dec} == ${green_dec} && ${green_dec} == ${blue_dec} ))
|
if [ ${red_dec} -eq ${green_dec} -a ${green_dec} -eq ${blue_dec} ]
|
||||||
then
|
then
|
||||||
if (( ${red_dec} == 0 ))
|
if [ ${red_dec} -eq 0 ]
|
||||||
then
|
then
|
||||||
ext_8_bit=0
|
ext_8_bit=0
|
||||||
elif (( ${red_dec} == 255 ))
|
elif [ ${red_dec} -eq 255 ]
|
||||||
then
|
then
|
||||||
ext_8_bit=15
|
ext_8_bit=15
|
||||||
elif (( ${red_dec} == 128 ))
|
elif [ ${red_dec} -eq 128 ]
|
||||||
then
|
then
|
||||||
ext_8_bit=8
|
ext_8_bit=8
|
||||||
elif (( ${red_dec} == 192 ))
|
elif [ ${red_dec} -eq 192 ]
|
||||||
then
|
then
|
||||||
ext_8_bit=7
|
ext_8_bit=7
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( ${debug} ))
|
if [ ${debug} -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Computed 256 color choice, after applying white and black scan: " ${ext_8_bit}
|
debug_print "Computed 256 color choice, after applying white and black scan: " ${ext_8_bit}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# We do NOT check for the base colours precisely. Since those 16 can be custom mapped by your terminal emulator, you just pass `ansi:0` thru
|
# We do NOT check for the base colours precisely. Since those 16 can be custom mapped by your terminal emulator, you just pass `ansi:0` thru
|
||||||
# `ansi:15` to select them by ID. Or use `ext:0` thru `ext:255` to select a specific extended colour.
|
# `ansi:15` to select them by ID. Or use `ext:0` thru `ext:255` to select a specific extended colour.
|
||||||
}
|
}
|
||||||
|
|
||||||
function make_color()
|
make_color()
|
||||||
{
|
{
|
||||||
setup_color_depth
|
setup_color_depth
|
||||||
background=$1 # $1 is the background bit
|
background=$1 # $1 is the background bit
|
||||||
@@ -438,19 +468,20 @@ function make_color()
|
|||||||
render_color
|
render_color
|
||||||
}
|
}
|
||||||
|
|
||||||
function named_color()
|
named_color()
|
||||||
{
|
{
|
||||||
name=${1,,}
|
name=$( echo ${1} | awk '{print tolower($1)}' )
|
||||||
if [[ ! -v map[$name] ]]
|
mapped=$(map ${name})
|
||||||
|
debug_print "${name} -> ${mapped}"
|
||||||
|
if [ -z "${mapped}" ]
|
||||||
then
|
then
|
||||||
echo "ERROR!" 1>&2 ; exit -1
|
echo "ERROR!" 1>&2 ; exit 255
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mapped=${map[$name]}
|
|
||||||
rgb_color ${mapped}
|
rgb_color ${mapped}
|
||||||
}
|
}
|
||||||
|
|
||||||
function build_sgr_code()
|
build_sgr_code()
|
||||||
{
|
{
|
||||||
case $1 in
|
case $1 in
|
||||||
dump-colors) dump_colors ;;
|
dump-colors) dump_colors ;;
|
||||||
@@ -469,41 +500,43 @@ function build_sgr_code()
|
|||||||
doubleunder) next=21 ;;
|
doubleunder) next=21 ;;
|
||||||
reveal) next=28 ;;
|
reveal) next=28 ;;
|
||||||
|
|
||||||
ansi:*) make_color 0 ansi_color ${1:5} ;;
|
ansi:*) make_color 0 ansi_color ${1#?????} ;;
|
||||||
ext:grey*) make_color 0 ext_grey ${1:8} ;;
|
ext:grey*) make_color 0 ext_grey ${1#????????} ;;
|
||||||
ext:rgb*) make_color 0 ext_rgb ${1:7} ;;
|
ext:rgb*) make_color 0 ext_rgb ${1#???????} ;;
|
||||||
ext:*) make_color 0 ext_color ${1:4} ;;
|
ext:*) make_color 0 ext_color ${1#????} ;;
|
||||||
# 12-bit color also supported
|
# 12-bit color also supported
|
||||||
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color $1 ;;
|
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color $1 ;;
|
||||||
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color $1 ;;
|
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color $1 ;;
|
||||||
|
|
||||||
fg:ansi:*) make_color 0 ansi_color ${1:8} ;;
|
fg:ansi:*) make_color 0 ansi_color ${1#????????} ;;
|
||||||
fg:ext:grey*) make_color 0 ext_grey ${1:11} ;;
|
fg:ext:grey*) make_color 0 ext_grey ${1#???????????} ;;
|
||||||
fg:ext:rgb*) make_color 0 ext_rgb ${1:10} ;;
|
fg:ext:rgb*) make_color 0 ext_rgb ${1#??????????} ;;
|
||||||
fg:ext:*) make_color 0 ext_color ${1:7} ;;
|
fg:ext:*) make_color 0 ext_color ${1#???????} ;;
|
||||||
# 12-bit color also supported
|
# 12-bit color also supported
|
||||||
fg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color ${1:3} ;;
|
fg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color ${1#???} ;;
|
||||||
fg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color ${1:3} ;;
|
fg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 0 rgb_color ${1#???} ;;
|
||||||
|
|
||||||
bg:ansi:*) make_color 1 ansi_color ${1:8} ;;
|
bg:ansi:*) make_color 1 ansi_color ${1#????????} ;;
|
||||||
bg:ext:grey*) make_color 1 ext_grey ${1:11} ;;
|
bg:ext:grey*) make_color 1 ext_grey ${1#???????????} ;;
|
||||||
bg:ext:rgb*) make_color 1 ext_rgb ${1:10} ;;
|
bg:ext:rgb*) make_color 1 ext_rgb ${1#??????????} ;;
|
||||||
bg:ext:*) make_color 1 ext_color ${1:7} ;;
|
bg:ext:*) make_color 1 ext_color ${1#???????} ;;
|
||||||
# 12-bit color also supported
|
# 12-bit color also supported
|
||||||
bg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 1 rgb_color ${1:3} ;;
|
bg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 1 rgb_color ${1#???} ;;
|
||||||
bg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 1 rgb_color ${1:3} ;;
|
bg:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 1 rgb_color ${1#???} ;;
|
||||||
|
|
||||||
ul:ext:*) make_color 2 ext_color ${1:7} ;;
|
ul:ext:grey*) make_color 2 ext_grey ${1#???????????} ;;
|
||||||
|
ul:ext:rgb*) make_color 2 ext_rgb ${1#??????????} ;;
|
||||||
|
ul:ext:*) make_color 2 ext_color ${1#???????} ;;
|
||||||
# 12-bit color also supported
|
# 12-bit color also supported
|
||||||
ul:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 2 rgb_color ${1:3} ;;
|
ul:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 2 rgb_color ${1#???} ;;
|
||||||
ul:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 2 rgb_color ${1:3} ;;
|
ul:[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]) make_color 2 rgb_color ${1#???} ;;
|
||||||
|
|
||||||
fg:*) make_color 0 named_color ${1:3} ;;
|
fg:*) make_color 0 named_color ${1#???} ;;
|
||||||
bg:*) make_color 1 named_color ${1:3} ;;
|
bg:*) make_color 1 named_color ${1#???} ;;
|
||||||
ul:*) make_color 2 named_color ${1:3} ;;
|
ul:*) make_color 2 named_color ${1#???} ;;
|
||||||
*) make_color 0 named_color $1 ;;
|
*) make_color 0 named_color $1 ;;
|
||||||
esac
|
esac
|
||||||
if [[ ! -z ${output} ]]
|
if [ ! -z ${output} ]
|
||||||
then
|
then
|
||||||
output="${output};"
|
output="${output};"
|
||||||
fi
|
fi
|
||||||
@@ -511,17 +544,18 @@ function build_sgr_code()
|
|||||||
}
|
}
|
||||||
|
|
||||||
output=""
|
output=""
|
||||||
while [[ ! -z $1 ]]
|
while [ ! -z $1 ]
|
||||||
do
|
do
|
||||||
build_sgr_code $1
|
build_sgr_code $1
|
||||||
shift 1
|
shift 1
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ ! -z ${output} ]] && (( ! ${nocsi} ))
|
if [ ! -z "${output}" ] && [ ${nocsi} -ne 1 ]
|
||||||
then
|
then
|
||||||
|
#echo "I AM PRINTING WITH CSI! (${nocsi} is nocsi, \`${output}\` is output)">&2
|
||||||
output="[${output}m"
|
output="[${output}m"
|
||||||
fi
|
fi
|
||||||
if [[ ! -z ${output} ]]
|
if [ ! -z "${output}" ]
|
||||||
then
|
then
|
||||||
printf ${output}
|
printf ${output}
|
||||||
fi
|
fi
|
||||||
|
|||||||
+65
-39
@@ -3,47 +3,73 @@
|
|||||||
# Yeah, my CSHENV Install script is written in Bourne shell. This is because
|
# Yeah, my CSHENV Install script is written in Bourne shell. This is because
|
||||||
# CSH isn't a great scripting language, but it is a nice interactive shell.
|
# CSH isn't a great scripting language, but it is a nice interactive shell.
|
||||||
|
|
||||||
export REALPATH=`realpath $0`
|
export HOMEPATH="$(realpath ~)"
|
||||||
export INSTALLER_LOCATION=`dirname ${REALPATH}`
|
export REALPATH=$(realpath ${0})
|
||||||
export CSHENV_LOCATION=`dirname ${INSTALLER_LOCATION}`
|
export INSTALLER_LOCATION_REAL=$(dirname ${REALPATH})
|
||||||
export RELATIVE_CSHENV_LOCATION=`realpath --relative-to=${HOME} ${CSHENV_LOCATION}`
|
export INSTALLER_LOCATION=$(echo ${INSTALLER_LOCATION_REAL} | sed -e 's,'"${HOMEPATH}"',~,')
|
||||||
|
export CSHENV_LOCATION_REAL=$(dirname ${INSTALLER_LOCATION_REAL})
|
||||||
|
export CSHENV_LOCATION=$(echo ${CSHENV_LOCATION_REAL} | sed -e 's,'"${HOMEPATH}"',~,')
|
||||||
|
export RELATIVE_CSHENV_LOCATION=$(echo ${CSHENV_LOCATION} | sed -e 's,~/,,')
|
||||||
|
|
||||||
|
export TMP_BASE=$(realpath ~/.cshenv/installer-backup/)
|
||||||
|
mkdir -p ${TMP_BASE}
|
||||||
|
#mkdir -p ${TMP_BASE}
|
||||||
|
export __TMP=$(mktemp -dp ${TMP_BASE})
|
||||||
|
|
||||||
|
backup_config_file()
|
||||||
|
{
|
||||||
|
__file="${1}"
|
||||||
|
mkdir -p ${__TMP}/ssh
|
||||||
|
|
||||||
|
echo "Checking for ${__file}"
|
||||||
|
if [ -e ${__file} ]
|
||||||
|
then
|
||||||
|
case ${__file} in
|
||||||
|
*ssh/config)
|
||||||
|
echo "Backing up ${__file} to ${__TMP}/ssh"
|
||||||
|
mv ${__file} ${__TMP}/ssh/$(basename ${__file} | sed -e's/\.//')
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Backing up ${__file} to ${__TMP}"
|
||||||
|
mv ${__file} ${__TMP}/$(basename ${__file} | sed -e's/\.//')
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "${__file} does not exist, not backing up anything."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_shell_file()
|
||||||
|
{
|
||||||
|
__file="${1}"
|
||||||
|
|
||||||
|
backup_config_file ${1}
|
||||||
|
|
||||||
|
echo "Installing ${1}"
|
||||||
|
echo "source ${CSHENV_LOCATION}/startup_hooks/$(basename ${1} | sed -e's/\.//') "'!#:1' > ${1}
|
||||||
|
}
|
||||||
|
|
||||||
if [ -v CSHENV_DEBUG_INSTALLER ]
|
if [ -v CSHENV_DEBUG_INSTALLER ]
|
||||||
then
|
then
|
||||||
|
echo HOMEPATH: $HOMEPATH
|
||||||
|
echo REALPATH: $REALPATH
|
||||||
|
echo TMP_BASE: $TMP_BASE
|
||||||
|
echo __TMP: $__TMP
|
||||||
|
echo INSTALLER_LOCATION_REAL: $INSTALLER_LOCATION_REAL
|
||||||
|
echo INSTALLER_LOCATION: $INSTALLER_LOCATION
|
||||||
|
echo CSHENV_LOCATION: $CSHENV_LOCATION
|
||||||
|
echo RELATIVE_CSHENV_LOCATION: $RELATIVE_CSHENV_LOCATION
|
||||||
echo $CSHENV_LOCATION
|
echo $CSHENV_LOCATION
|
||||||
echo $RELATIVE_CSHENV_LOCATION
|
echo $RELATIVE_CSHENV_LOCATION
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Checking for ~/.login"
|
install_shell_file ~/.login
|
||||||
if [ ! -e ~/.login ]
|
|
||||||
then
|
|
||||||
echo "Installing ~/.login"
|
|
||||||
echo "setenv CSHENV_DIR ${CSHENV_LOCATION}" >> ~/.login
|
|
||||||
echo 'source ${CSHENV_DIR}/startup_hooks/login' >> ~/.login
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Checking for ~/.tcshrc"
|
install_shell_file ~/.tcshrc
|
||||||
if [ ! -e ~/.tcshrc ]
|
|
||||||
then
|
|
||||||
echo "Installing ~/.tcshrc"
|
|
||||||
echo "setenv CSHENV_DIR ${CSHENV_LOCATION}" >> ~/.tcshrc
|
|
||||||
echo "setenv CSHENV_HIDE_SHELL_LEVEL_AT_ONE" >> ~/.tcshrc
|
|
||||||
echo 'source ${CSHENV_DIR}/startup_hooks/tcshrc' >> ~/.tcshrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Checking for vim setup"
|
backup_config_file ~/.vimrc
|
||||||
if [ -e ~/.vimrc ]
|
backup_config_file ~/.vim
|
||||||
then
|
|
||||||
echo "Relocating vimrc"
|
|
||||||
mv ~/.vimrc ~/.vim/vimrc.old
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e ~/.vim ]
|
|
||||||
then
|
|
||||||
echo "Relocating vim setup"
|
|
||||||
mv ~/.vim ~/.vim.old
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Installing vim setup"
|
echo "Installing vim setup"
|
||||||
pushd ~ >& /dev/null
|
pushd ~ >& /dev/null
|
||||||
@@ -51,11 +77,7 @@ ln -s `echo ${RELATIVE_CSHENV_LOCATION}`/vim .vim
|
|||||||
ln -s .vim/vimrc .vimrc
|
ln -s .vim/vimrc .vimrc
|
||||||
popd >& /dev/null
|
popd >& /dev/null
|
||||||
|
|
||||||
if [ -e ~/.gitconfig ]
|
backup_config_file ~/.gitconfig
|
||||||
then
|
|
||||||
echo "Relocating git setup"
|
|
||||||
mv ~/.gitconfig ~/.gitconfig-old
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Installing git configuration"
|
echo "Installing git configuration"
|
||||||
|
|
||||||
@@ -73,6 +95,10 @@ echo "" >> ~/.gitconfig
|
|||||||
echo "[commit]" >> ~/.gitconfig
|
echo "[commit]" >> ~/.gitconfig
|
||||||
echo " gpgSign = true" >> ~/.gitconfig
|
echo " gpgSign = true" >> ~/.gitconfig
|
||||||
|
|
||||||
echo "Do not forget to add the following lines at the top and bottom of your ssh config:"
|
backup_config_file ~/.ssh/config
|
||||||
echo "Match all\n Include ${CSHENV_LOCATION}/ssh/config"
|
|
||||||
echo "Match all\n Include ${CSHENV_LOCATION}/ssh/config"
|
echo "Match all" >> ~/.ssh/config
|
||||||
|
echo " Include ${CSHENV_LOCATION}/ssh/prologue" >> ~/.ssh/config
|
||||||
|
|
||||||
|
echo "Match all" >> ~/.ssh/config
|
||||||
|
echo " Include ${CSHENV_LOCATION}/ssh/epilogue" >> ~/.ssh/config
|
||||||
|
|||||||
+22
-13
@@ -1,14 +1,33 @@
|
|||||||
# This file will always be taken in. .login is now
|
# This file will always be taken in. .login is now
|
||||||
# vestigial, and doesn't matter if first or second.
|
# vestigial, and doesn't matter if first or second.
|
||||||
|
|
||||||
# These are the bits that would be in login:
|
# Reset the CSHENV_DIR
|
||||||
|
# (TODO: Downgrade this from environment variable to shell variable)
|
||||||
|
unsetenv CSHENV_DIR
|
||||||
if( ! $?CSHENV_DIR ) then
|
if( ! $?CSHENV_DIR ) then
|
||||||
|
if( $?CSHENV_DEBUG ) then
|
||||||
|
echo "CSHENV_DIR is not set. Guessing it based upon "'${1}'": ${1}"
|
||||||
|
endif
|
||||||
|
# Done twice to strip out the hooks dir and the hook itself.
|
||||||
|
setenv CSHENV_DIR ${1}_
|
||||||
|
setenv CSHENV_DIR `dirname ${CSHENV_DIR}`
|
||||||
|
setenv CSHENV_DIR `dirname ${CSHENV_DIR}`
|
||||||
|
if( $?CSHENV_DEBUG ) then
|
||||||
|
echo "CSHENV_DIR is auto set to ${CSHENV_DIR}"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if( "." == $#CSHENV_DIR ) then
|
||||||
|
if( $?CSHENV_DEBUG ) then
|
||||||
|
echo "CSHENV_DIR is still not set. Using guessed default."
|
||||||
|
endif
|
||||||
|
|
||||||
|
set cshenv_fallback_dir
|
||||||
setenv CSHENV_DIR ~/cshenv
|
setenv CSHENV_DIR ~/cshenv
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
if( $?CSHENV_DEBUG ) then
|
if( $?CSHENV_DEBUG ) then
|
||||||
echo "Set CSHENV_DIR to: " ${CSHENV_DIR}
|
echo "Set (in tcshrc hook) CSHENV_DIR to: " ${CSHENV_DIR}
|
||||||
endif
|
endif
|
||||||
|
|
||||||
alias _debug "eval 'if ( $?CSHENV_DEBUG ) echo \!*'"
|
alias _debug "eval 'if ( $?CSHENV_DEBUG ) echo \!*'"
|
||||||
@@ -27,16 +46,6 @@ set CSHENV_TCSHRC_SOURCED
|
|||||||
|
|
||||||
_debug "Starting tcshrc..."
|
_debug "Starting tcshrc..."
|
||||||
|
|
||||||
#if( -z ${_} ) then
|
|
||||||
#echo $0
|
|
||||||
#setenv CSHENV_TCSHRC_PATH $0
|
|
||||||
#else
|
|
||||||
#echo ${_}
|
|
||||||
#setenv CSHENV_TCSHRC_PATH "${_}"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#echo tcshrc hook lives at: ${CSHENV_TCSHRC_PATH}
|
|
||||||
|
|
||||||
if( -c `tty` ) then
|
if( -c `tty` ) then
|
||||||
_debug "Going to source core tcshrc..."
|
_debug "Going to source core tcshrc..."
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# CSHENV Aliases:
|
# CSHENV Aliases:
|
||||||
|
|
||||||
alias resource source ${CSHENV_DIR}/startup_hooks/tcshrc
|
alias resource 'source ${CSHENV_DIR}/startup_hooks/tcshrc ${CSHENV_DIR}/startup_hooks/tcshrc'
|
||||||
alias relog resource
|
alias relog resource
|
||||||
alias rl relog
|
alias rl relog
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ set referencechars_raw="${referencechars_raw} 2620"
|
|||||||
set prompt_hcolor=0
|
set prompt_hcolor=0
|
||||||
set prompt_hsym=0
|
set prompt_hsym=0
|
||||||
|
|
||||||
|
_debug "Building unicode sigils table...."
|
||||||
if( ! $?CSHENV_NO_UNICODE_PRINTF ) then
|
if( ! $?CSHENV_NO_UNICODE_PRINTF ) then
|
||||||
set referencechars=()
|
set referencechars=()
|
||||||
foreach ch ($referencechars_raw)
|
foreach ch ($referencechars_raw)
|
||||||
@@ -114,6 +115,7 @@ else
|
|||||||
# Safe fallback for when there's no unicode printf
|
# Safe fallback for when there's no unicode printf
|
||||||
set referencechars="A B C D X Y Z"
|
set referencechars="A B C D X Y Z"
|
||||||
endif
|
endif
|
||||||
|
_debug "Done building unicode sigils table"
|
||||||
|
|
||||||
# Rotation
|
# Rotation
|
||||||
alias precmd 'source ${CSHENV_DIR}/tcshrc.prompt.final'
|
alias precmd 'source ${CSHENV_DIR}/tcshrc.prompt.final'
|
||||||
|
|||||||
+4
-6
@@ -139,8 +139,6 @@ if( $?CSHENV_SHOW_BATTERY_LEVEL ) then
|
|||||||
set battery_level=`pmset -g batt | grep -Eo "\d+%" | cut -d% -f1`
|
set battery_level=`pmset -g batt | grep -Eo "\d+%" | cut -d% -f1`
|
||||||
else if( $?CSHENV_BATTERY_DEVICE ) then
|
else if( $?CSHENV_BATTERY_DEVICE ) then
|
||||||
set battery_level=`cat ${CSHENV_BATTERY_DEVICE}`
|
set battery_level=`cat ${CSHENV_BATTERY_DEVICE}`
|
||||||
else
|
|
||||||
set battery_level=`cat /sys/class/power_supply/BAT1/capacity`
|
|
||||||
endif
|
endif
|
||||||
if( ${battery_level} < ${critical_battery_level} ) then
|
if( ${battery_level} < ${critical_battery_level} ) then
|
||||||
set battery_color=${red}${blink}
|
set battery_color=${red}${blink}
|
||||||
@@ -164,7 +162,7 @@ if( $?CSHENV_SHOW_BATTERY_LEVEL ) then
|
|||||||
|
|
||||||
#set battery_prompt="%{${battery_color}%}%{${battery_level}${at_color}\%%}%{${dim}%} "
|
#set battery_prompt="%{${battery_color}%}%{${battery_level}${at_color}\%%}%{${dim}%} "
|
||||||
set battery_prefix="%{${csi}m${csi}28D%}"
|
set battery_prefix="%{${csi}m${csi}28D%}"
|
||||||
set battery_prompt="%{${csi}38;2;128;128;255;3mBattery Level:${sgr_reset} ${battery_color}${battery_level}${percent_color_seq}%${sgr_reset} %}"
|
set battery_prompt="%{${csi}38;2;128;128;255;3mBattery Level:${sgr_reset} ${battery_color}${battery_level}%}${percent_color_seq}%{%${sgr_reset} %}"
|
||||||
else
|
else
|
||||||
set battery_prefix=""
|
set battery_prefix=""
|
||||||
set battery_prompt=""
|
set battery_prompt=""
|
||||||
@@ -251,7 +249,7 @@ if( ! $?CSHENV_DISABLE_PROMPT_NESTING ) then
|
|||||||
set depth_prompt_spacing=" "
|
set depth_prompt_spacing=" "
|
||||||
endif
|
endif
|
||||||
set depth_prompt_view="${depth_color_seq}${depth_prompt_spacing}${depth_prompt}"
|
set depth_prompt_view="${depth_color_seq}${depth_prompt_spacing}${depth_prompt}"
|
||||||
if( $?CSHENV_HIDE_SHELL_LEVEL_AT_ONE ) then
|
if( ! $?CSHENV_SHOW_SHELL_LEVEL_AT_ONE ) then
|
||||||
if( ${shlvl} == 1 ) then
|
if( ${shlvl} == 1 ) then
|
||||||
set depth_prompt_view=""
|
set depth_prompt_view=""
|
||||||
endif
|
endif
|
||||||
@@ -294,10 +292,10 @@ endif
|
|||||||
|
|
||||||
_debug "Up to the time, date, and battery checks..."
|
_debug "Up to the time, date, and battery checks..."
|
||||||
if( ! $?CSHENV_DISABLE_PROMPT_TIME ) then
|
if( ! $?CSHENV_DISABLE_PROMPT_TIME ) then
|
||||||
set time_prompt_view="%{${time_color_seq}%}${time_prompt}%{${sgr_reset}%}"
|
set time_prompt_view="${time_color_seq}${time_prompt}%{${sgr_reset}%}"
|
||||||
endif
|
endif
|
||||||
if( ! $?CSHENV_DISABLE_PROMPT_DATE ) then
|
if( ! $?CSHENV_DISABLE_PROMPT_DATE ) then
|
||||||
set date_prompt_view="%{${date_color_seq}%}${date_prompt}%{${sgr_reset}%}"
|
set date_prompt_view="${date_color_seq}${date_prompt}%{${sgr_reset}%}"
|
||||||
endif
|
endif
|
||||||
if( ! $?CSHENV_DISABLE_PROMPT_BATTERY ) then
|
if( ! $?CSHENV_DISABLE_PROMPT_BATTERY ) then
|
||||||
set battery_prompt_view="${battery_prefix}${battery_prompt}"
|
set battery_prompt_view="${battery_prefix}${battery_prompt}"
|
||||||
|
|||||||
Reference in New Issue
Block a user