##
## .zshrc es referenciado en los intérpretes interactivos
## Debe contener los comandos para configurar los alias, las funciones,
## opciones, asociaciones de teclas (atajos), etcétera.
##---------------------------------------------------------------------
###==================SECCION DE CONFIGURACION DE TERMINAL==============
## Esto informa al Shell qué tipo terminal está usando o emulando.
## Tilde suporta muchas terminales y puede de hecho soportar mas. 
## Para mayor información diríjase a /usr/lib/terminfo. 
## La TTY por defecto es tipicamente una DEC vt100. 
## La terminal xterm es un emulador de terminal capaz de presentar
## colores.
#TERM=vt100
#TERM=xterm
TERM=xterm-utf8
#TERM=xterm-256color

## Esto mantiene los procesos en 2do plano a velocidad completa.
#setopt NOBGNICE

## reinicia los procesos en ejecución al salir
#setopt HUP

##Agrega la dirección en la barra de la ventana de teminral
## de xterm u otros emuladores de terminal compatibles.
printf "\e]0;${USER}@${HOST}\a"

### ------- Comportamiento de la Campana de Terminal --------
## Descomente lo siguiente para desactivar la campana de terminal.
#unsetopt beep

## Descomente lo siguiente para no usar
## nunca jamás la campana de terminal
#setopt NO_BEEP

## Descomente esto para activar el uso
## de la campana de terminal
setopt beep

###==============SECCION DE HISTORIOA==========================
#setopt APPEND_HISTORY
## Descomente para compartir historia entre procesos Zsh
#setopt INC_APPEND_HISTORY
#setopt SHARE_HISTORY
###---Fin de sección Historia ---------------------------------

###============== * * * SECCION DEL ATOCOMPLETADO * * * ========
## Autocompletado básico de Zsh con Tab:
autoload -U compinit
## permite el completado con Tab en el medio de una palabra
setopt COMPLETE_IN_WORD
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
###------------------ fin de los keybindings -------------------

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

## decide automáticamente cuándo paginar una lista de completado
#LISTMAX=0

## desactiva la revisión de correo electrónico
#MAILCHECK=0

###|||||||||||||||||| FIN DE LA CONFIGURACIÓN BÁSICA |||||||||||||||||||

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

# 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 elección de prompt--------------

# ========== 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"

# 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

#servidor de noticias
NNTPSERVER=news.tilde.club

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

### |||||||||||||| FIN DEL ARRANQUE ||||||||||||||||||||||||

### A continuación se ejecutará lo normal cuando se inicie el
### intérprete de comandos Zoom Shell (Zsh).

###------- configuración de la campana--------------
## Suena un campanazo de terminal para avisar que está
## en línea incluso si no hay video:
echo -ne '\007'
####----------fin de configuración personalizada---------------

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