# =============================================================
# Achivo de configuración para el Zoomer Shell (ZSh) de peron.
# modificado 26-dic-2019
# ÁÉÍÓÚÑñáñé 
#=============================================================
#
# Esto informa al Shell qué tipo terminal está usando o emulando. SDF
# suporta muchas terminales y puede de hecho soportar mas. Para mas
# ideas, fíjese en /usr/lib/terminfo. La TTY por defecto es tipicamente
# una DEC vt100. xterm presenta color.
#TERM=vt100
#TERM=xterm
TERM=xterm-utf8
#TERM=xterm-256color

# Lo siguiente puede usarse para configurar el numero de lineas y de 
# columnas que estamos usando. Los programas mas típicos de PC-COMM usan
# 24 por 79 u 80 columnas. Estas configuraciones (comentadas) son usadas
# usadas tipicamente por TTYs .. experimente configurando las propias
#LINES=24
#COLUMNS=80
#
#stty rows 24 cols 80


# Esto configura la tecla Rectroceder, intente cambiar "erase '^h'" con 
# "erase '^?'". Si eso no funciona, tipee "nksp" o "stty erase" en el 
# prompt y luego presione la tecla Retroceder.
stty erase '^?' echoe
#stty erase '^h' echoe

# Esto dispone los colores en la terminal y los activa:
autoload -U colors && colors

# Esto configura el propmpt [usuario@host:dir~] $ y le da
# colores de la paleta de 16 colores para mayor compatibilidad).
#PS1="%B%{$fg[red]%}[%{$fg[green]%}%n%{$fg[blue]%}@%{$fg[yellow]%}%M%{$fg[red]%}:$fg[blue]%~%{$fg[red]%}]%{$reset_color%}$%b "

# Esto configura el prompt usuario@host:dir~ $ y le da
# colores de la paleta de 16 colores para mayro compatibilidad.
# 
PS1="%B%{$fg[green]%}%n%{$fg[blue]%}@%{$fg[yellow]%}%M%{$fg[red]%}:$fg[blue]%~%{$reset_color%}$%b "


# ----- fin de la configuración básica ------
# Coloca el prompt en la ventana de XTerm u otros emuladores de terminal.
printf "\e]0;${USER}@${HOST}\a"

# * * * SECCION HISTORIA * * * 
# Cuantos comandos de historia guarda en la 
# bitácora de historia, y dónde la guarda.
HISTSIZE=100
SAVEHIST=250
HISTFILE=~/temp/.historia
# Evita poner líneas duplicadas en el archivo de historia. 
# Ver bash(1) para mas opciones
HISTCONTROL=ignoredups:ignorespace
#---Fin de sección Historia ---

# * * * Sección Autocompletado * * *
# Autocompletado básico de Zsh con Tab:
autoload -U compinit
zstyle ':completion:*' menu select
zmodload zsh/complist
compinit
_comp_options+=(globdots)               # Incluye archivos ocultos..
# --- Fin de sección Autocompletado ---

# * * * Sección de Keybinding * * *
# Cambia la forma de cursor para diferentes modos vi.
function zle-keymap-select {
  if [[ ${KEYMAP} == vicmd ]] ||
     [[ $1 = 'block' ]]; then
#printf '%b' '\e]12;yellow\a'
    echo -ne '\e[2 q'
  elif [[ ${KEYMAP} == main ]] ||
       [[ ${KEYMAP} == viins ]] ||
       [[ ${KEYMAP} = '' ]] ||
       [[ $1 = 'beam' ]]; then
#    printf '%b' '\e]12;lime\a'
    echo -ne '\e[1 q'
  fi
}
#zle -N zle-line-init
#printf '%b' '\e]12;lime\a' #usar cursor lima al iniciar.
# preexec() { echo -ne '\e[2 q' ;} # Usa cursor cuadrado parpadeante en cada prompt nuevo.

# * * * Usa lf para cambiar directorios y aosciarlo a Ctrl-o * * *
lfcd () {
    tmp="$(mktemp)"
    lf -last-dir-path="$tmp" "$@"
    if [ -f "$tmp" ]; then
        dir="$(cat "$tmp")"
        rm -f "$tmp"
        [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
    fi
}
bindkey -s '^o' 'lfcd\n'


# Edita línea en Vim con Ctrl+e:
autoload edit-command-line; zle -N edit-command-line
bindkey '^e' edit-command-line

# Carga los alias y los atajos si existen.
[ -f "$HOME/.config/shortcutrc" ] && source "$HOME/.config/shortcutrc"
[ -f "$HOME/.config/aliasrc" ] && source "$HOME/.config/aliasrc"

# ========== Sección de Intérpete en castellano =======
export LANG="es_ES.UTF-8"
export LC_CTYPE="es_ES.UTF-8"
export LC_ALL=es_ES.UTF-8
export TZ="UTC+3"
export LANGUAGE="es:ES_UTF-8"

# Esto configura la variable "MAIL" para localizar sus archivos de
# correo electrónico. Tipicamente el email se manda a /usr/mail con
# el login del usuario (variable de environment LOGNAME) como nombre
# de usuario.
MAIL=/mail/${LOGNAME:?}

# Que editor usar? Esto es estandar y tenemos Vi y, también el Pico.
#EDITOR=/bin/ed
VISUAL=/usr/bin/vim
#EDITOR=/usr/pkg/bin/pico
EDITOR=/usr/pkg/bin/nano

# Ahora continuaremos y activamos las variables de environment!
# Exportemoslas!
export MAIL PS1 TERM EDITOR VISUAL TZ

# ============= Sección que muestra al iniciar ===========
# Muestra 20 lineas del libro de visitas
/usr/pkg/bin/guestbook -l 20
# Muestra el siguiente mensaje de bienvenida:
echo
echo "Sea Bienvenido al Sistema UNIX de Acceso Público SDF-1 (est. 1987).\n"
echo " Para obtener ayuda, tipee 'help'"
echo " Por preguntas y respuestas detalladas, tipee 'faq'"
echo " Por carteleras de discusión, tipee 'bboard'"
echo " Para participar en charlas interactivas, tipee 'com'"
echo " Para configurar su homepage, tipee 'mkhomepg'"
echo " Para crear su URL http://$LOGNAME.freeshell.org, tipee 'mkhomepg -a'\n"
echo "¡Explore y disfrute!\n"
#------- Fin de los mensajes estandarizados de SDF -------------
# Ponga aquí cualquier cosa que quiera hacer luego de loguearse. 
# Normalmente no se hace nada mas.

# Carga zsh-syntax-highlighting. Esta sección debe quedar siempre al 
# final del archivo .zshrc OBLIGATORIAMENTE.
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null