Files
cshenv/tcshrc.prompt.defs
adam 16ba1a5897 Move battery thresholds to static defs.
This reduces per-prompt overhead a bit, as these
never change, so it was just useless string bashing
and parsing.
2026-06-24 02:53:39 -04:00

165 lines
4.8 KiB
Tcsh

##########################
### PROMPT DEFINITIONS ###
##########################
_debug "Sourcing prompt setup and definitions..."
which shuf >& /dev/null
if( $? == 0 ) then
setenv CSHENV_DETECTED_SHUF
endif
if( ! $?unknown_tty ) then
set unknown_tty="?"
_debug "Unknown tty set..."
endif
# R G Y B C M
set reference_colors=( ${csi}91m ${csi}92m ${csi}93m ${csi}38\;5\;33m ${csi}95m ${csi}96m )
# R G Y B M
set reference_colors=( ${csi}91m ${csi}92m ${csi}93m ${csi}38\;5\;33m ${csi}96m )
# Select a set of Unicode codepoints for prompt referencing...
set referencechars_raw=""
# Nuke Symbol
set referencechars_raw="${referencechars_raw} 2622"
# Keyboard Symbol (Didn't look good -- spilled (not pushed) over 1.5 cells)
set keyboard_sym="2328"
set referencechars_raw="${referencechars_raw} ${keyboard_sym}"
# Telephone (Spills over 1 cell.)
set referencechars_raw="${referencechars_raw} 260e"
# Clover
set referencechars_raw="${referencechars_raw} 2618"
# Music notes
#set referencechars_raw="${referencechars_raw} 2669 266a 266b 266c"
# One Single music note,
#set referencechars_raw="${referencechars_raw} 2669"
#set referencechars_raw="${referencechars_raw} 266a"
# One double music note
#set referencechars_raw="${referencechars_raw} 266b"
#set referencechars_raw="${referencechars_raw} 266c"
# Dice
#set referencechars_raw="${referencechars_raw} 2680 2681 2682 2683 2684 2685"
# Card suits
set referencechars_raw="${referencechars_raw} 2660 2663 2665 2666"
# Inner planet symbols (Mercury, Venus, Earth, Mars)
set referencechars_raw="${referencechars_raw} 263f 2640 2641 2642"
# Outer Planet symbols (Jupiter, Saturn, Uranus, Neptune, Pluto)
set referencechars_raw="${referencechars_raw} 2643 2644 2645 2646 2647"
# Hollow Chess pieces
#set referencechars_raw="${referencechars_raw} 2654 2655 2656 2657 2658 2659"
# Filled Chess pieces
#set referencechars_raw="${referencechars_raw} 265a 265b 265c 265d 265e 265f"
# Roman Numerals
#set referencechars_raw="${referencechars_raw} 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 216a 216b"
### More symbols -- Recycling, Biohazard, Peace Sign, Atom, swords, flag, worktools, scales, fleur-de-lis, star, Face
#set referencechars_raw="${referencechars_raw} 267B 2623 262e 269b 2694 2692 2696 269a 2605 263b"
# Recycle
set referencechars_raw="${referencechars_raw} 267B"
# Biohazard
set referencechars_raw="${referencechars_raw} 2623"
# Peace Sign
set referencechars_raw="${referencechars_raw} 262e"
# Atom
#set referencechars_raw="${referencechars_raw} 269b"
# Face
#set referencechars_raw="${referencechars_raw} 263b"
# Wider symbols -- Cedeuceus, Anchor,
#set referencechars_raw="${referencechars_raw} 2624 2693"
# Zodiac symbols
#set referencechars_raw="${referencechars_raw} 2658 2649 264a 264b 264c 264d 264e 264f 2650 2651 2652 2653"
# Misc stuff -- colour? baseball Takes up too many width slots. Throws off alignment.
#set referencechars_raw="${referencechars_raw} 26be"
# Tape drive
set referencechars_raw="${referencechars_raw} 2707"
# skull
set referencechars_raw="${referencechars_raw} 2620"
# Beverage (Fixed color?)
#set referencechars_raw="${referencechars_raw} 2615"
#echo ${referencechars[1]}
set prompt_hcolor=0
set prompt_hsym=0
_debug "Building unicode sigils table...."
if( ! $?CSHENV_NO_UNICODE_PRINTF ) then
set referencechars=()
foreach ch ($referencechars_raw)
set unicode=`printf "\\u${ch}"`
set referencechars=( $referencechars `printf "${unicode}"` )
end
else
# Safe fallback for when there's no unicode printf
set referencechars="A B C D X Y Z"
endif
_debug "Done building unicode sigils table"
# Rotation
alias precmd 'source ${CSHENV_DIR}/tcshrc.prompt.final'
#alias postcmd echo doit
set promptchars='%#'
set prompt_simple="%{${sgr_reset}%}[%n@%m: %c]%# "
# Screens are almost certainly not a million chars wide.
# If they are... oh well, that's a really weird one.
set align_prefix="%{${csi}A${csi}1000000G${csi}18D%}"
set align_suffix="%{${csi}G${csi}1B%}"
#set screen_return="%{8%}"
set date_prompt="%{%Y-%W-%D%}"
set time_prompt="%{%P%}"
#unset edit
_debug "Building Cool prompt"
set depth_prompt="(${shlvl})"
#we "convert" pts/$number entries to ttypK entries?
set line_prompt="`tty | sed -e 's;/dev/tty;;' -e 's;/dev/pts/;p/;' -e 's;/dev/;;' -e 's/not a tty/${unknown_tty}/'`"
#set line_prompt="line"
set user_prompt="%n"
set host_prompt="${CSHENV_HOSTNAME}"
set path_prompt="%c02"
set end_prompt="%#"
# The battery level thresholds are fixed, no need to recompute each prompt.
set critical_battery_level = 10
set low_battery_level = 20
set weak_battery_level = 33
set medium_battery_level = 50
set strong_battery_level = 75
alias oldp 'set prompt="$prompt_simple"; set cshenv_user_prompt_override'
alias newp 'set prompt="$prompt_cool"; unset cshenv_user_prompt_override'
source ${CSHENV_DIR}/tcshrc.prompt.final
###########################
# vim:filetype=tcsh
###########################