Files
2025-07-15 21:10:37 -04:00

60 lines
1.4 KiB
Plaintext

# enable bash-like extended expansion
set --brace-expand
# enable completion of hidden files
set --dot-glob
# enable recursive pathname expansion
set --extended-glob
# don't implicitly expand non-existent variables to empty strings
set --no-unset
# don't save commands starting with a space in history
set --hist-space
# emacs bindings
set --emacs
# Load aliases
[ -f "$HOME/.config/yash/aliasrc" ] && . "$HOME/.config/yash/aliasrc"
# define some basic variables if missing
SHELL=$(command -v yash)
: ${PAGER:=less} ${EDITOR:=nvim}
: ${LOGNAME:=$(logname)} ${HOSTNAME:=$(uname -n)}
# variables needed for command history
if ! [ "${HISTFILE-}" ]; then
HISTFILE=$HOME/.local/state/yash/history
fi
# create HISTFILE parent directory if missing
! [ -d "${HISTFILE%/*}" ] && mkdir -p "${HISTFILE%/*}"
HISTSIZE=5000
# initialize event handlers
COMMAND_NOT_FOUND_HANDLER=()
PROMPT_COMMAND=()
POST_PROMPT_COMMAND=()
YASH_AFTER_CD=()
YASH_PS1='\fg.$(whoami)\fc. ${PWD/#$HOME/\~} \fD.\$ '
# when a directory name is entered as a command, treat as "cd"
_autocd()
if [ -d "$1" ]; then
HANDLED=true
cd -- "$@"
break -i
fi
COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_autocd "$@"')
# print file type when executing non-executable files
_file_type()
if [ -e "$1" ] && ! [ -d "$1" ]; then
file -- "$1"
fi
COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_file_type "$@"')