configurar OhmyZsh el plugin powerlevel10k en nano ~/.zshrc

PHOTO EMBED

Tue Sep 09 2025 14:22:47 GMT+0000 (Coordinated Universal Time)

Saved by @jrg_300i

# ~/.zshrc

# Si vienes de bash, quizás necesites cambiar tu $PATH.
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH

# Path a tu instalación de Oh My Zsh
export ZSH="$HOME/.oh-my-zsh"

# Tema: Powerlevel10k (instalado manualmente en ~/.powerlevel10k)
# ZSH_THEME="robbyrussell"

# Enable Powerlevel10k instant prompt. Debe estar al inicio del archivo
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

# Alias para ani-cli en Zsh
alias ani-es="ani-cli --dub"
alias ani-es-continuar="ani-cli -c --dub"
alias ani-es-calidad="ani-cli --dub --quality-select"

# Lista de plugins - SOLO UNA DEFINICIÓN
plugins=(
  git
  zsh-autosuggestions
  zsh-syntax-highlighting
  sudo
  history-substring-search
  colored-man-pages
  composer
  laravel
  docker
  extract
)

source $ZSH/oh-my-zsh.sh

# Cargar Powerlevel10k (instalado manualmente)
source ~/.powerlevel10k/powerlevel10k.zsh-theme

# Cargar configuración de Powerlevel10k
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

# Tus funciones personalizadas...
function indicadores() {
  cd /var/www/html/jobran/indicadores/ && ls -lt --color=auto
}
function proyectos() {
  cd /var/www/html/jobran/ && ls -lt --color=auto
}

php-server() {
  local framework=$1
  local port=${2:-8000}
  local ruta=$3
  case "$framework" in
    yii2)
      ruta=${ruta:-backend/web}
      php -S localhost:$port -t "$ruta"
      ;;
    laravel)
      ruta=${ruta:-public}
      php -S localhost:$port -t "$ruta"
      ;;
    *)
      echo "⚠️ Framework no reconocido: '$framework'"
      echo "Usa: yii2 o laravel"
      ;;
  esac
}

# Activar globbing avanzado
setopt extendedglob
setopt globdots
setopt nomatch

# Alias Laravel
alias art="php artisan"
alias tinker="php artisan tinker"
alias serve="php artisan serve"
alias migrate="php artisan migrate"
alias seed="php artisan db:seed"
alias fresh="php artisan migrate:fresh --seed"

# Alias para el menú de comandos
alias cmd="comandos"
alias ayuda="comandos"

# Alias Composer
alias cdu="composer dump-autoload"
alias ci="composer install"
alias cu="composer update"

# Alias PostgreSQL
alias psqlc="psql -h localhost -U postgres -W"
alias pgstart="sudo systemctl start postgresql"
alias pgstop="sudo systemctl stop postgresql"
alias pgrestart="sudo systemctl restart postgresql"
alias pgstatus="sudo systemctl status postgresql"
alias psql-iniciar="psql -h localhost -U postgres -W"

# 🔧 ALIAS ÚTILES

# Navegación mejorada
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'

# Seguridad
alias rm='rm -i'           # Confirmar antes de eliminar
alias cp='cp -i'           # Confirmar antes de sobrescribir
alias mv='mv -i'           # Confirmar antes de mover

# Desarrollo (alias adicionales)
alias c='composer'

# Git simplificado
alias gs='git status'
alias ga='git add'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph'

# Sistema
alias update='sudo apt update && sudo apt upgrade -y'
alias reboot='sudo reboot'
alias shutdown='sudo shutdown -h now'
alias ports='sudo netstat -tulpn'

# Crear y entrar a directorio
mkcd() {
    mkdir -p "$1" && cd "$1"
}

# Buscar archivo por contenido
findin() {
    grep -r "$1" . --color=always
}



# ═══════════════════════════════════════════════════════════════
# MENÚ INTERACTIVO DE COMANDOS
# ═══════════════════════════════════════════════════════════════

comandos() {
  local option
  local cmd
  local args
  while true; do
    clear
    echo "╔═══════════════════════════════════════════════════════════╗"
    echo "║           📚 MENÚ DE COMANDOS - ZSHRC                     ║"
    echo "╠═══════════════════════════════════════════════════════════╣"
    echo "║  1.  🎬 Ani-cli (Anime)                                   ║"
    echo "║  2.  🚀 Laravel & Composer                                ║"
    echo "║  3.  📁 Navegación y Archivos                             ║"
    echo "║  4.  🔧 Tmux (Gestión de sesiones)                        ║"
    echo "║  5.  🐘 PostgreSQL                                        ║"
    echo "║  6.  🌐 PHP Server (Yii2/Laravel)                         ║"
    echo "║  7.  🛡️ Sistema y Seguridad                               ║"
    echo "║  8.  📊 Git                                               ║"
    echo "║  9.  📋 Todos los comandos                                ║"
    echo "║  0.  Salir                                                ║"
    echo "╚═══════════════════════════════════════════════════════════╝"
    echo ""
    read "option?Selecciona una opción [0-9]: "

    case $option in
      1)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  🎬 ANI-CLI - Ver Anime                                   ║"
        echo "╠═══════════════════════════════════════════════════════════╣"
        echo "║  1. ani-es              → Ver anime en español latino     ║"
        echo "║  2. ani-es-continuar    → Continuar viendo anime          ║"
        echo "║  3. ani-es-calidad      → Elegir calidad de video         ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        read "cmd?Ejecutar comando [1-3] o Enter para volver: "
        case $cmd in
          1) ani-es ;;
          2) ani-es-continuar ;;
          3) ani-es-calidad ;;
          *) ;;
        esac
        ;;
      2)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  🚀 LARAVEL & COMPOSER                                    ║"
        echo "╠═══════════════════════════════════════════════════════════╣"
        echo "║  1. art                 → php artisan                     ║"
        echo "║  2. tinker              → php artisan tinker              ║"
        echo "║  3. serve               → php artisan serve               ║"
        echo "║  4. migrate             → php artisan migrate             ║"
        echo "║  5. seed                → php artisan db:seed             ║"
        echo "║  6. fresh               → migrate:fresh --seed            ║"
        echo "║  7. cdu                 → composer dump-autoload          ║"
        echo "║  8. ci                  → composer install                ║"
        echo "║  9. cu                  → composer update                 ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        read "cmd?Ejecutar comando [1-9] o Enter para volver: "
        case $cmd in
          1) art ;;
          2) tinker ;;
          3) serve ;;
          4) migrate ;;
          5) seed ;;
          6) fresh ;;
          7) cdu ;;
          8) ci ;;
          9) cu ;;
          *) ;;
        esac
        ;;
      3)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  📁 NAVEGACIÓN Y ARCHIVOS                                 ║"
        echo "╠═══════════════════════════════════════════════════════════╣"
        echo "║  1. ..                  → Subir 1 nivel                   ║"
        echo "║  2. ...                 → Subir 2 niveles                 ║"
        echo "║  3. ....                → Subir 3 niveles                 ║"
        echo "║  4. ll                  → ls -la (lista detallada)        ║"
        echo "║  5. la                  → ls -A (todos menos . y ..)      ║"
        echo "║  6. l                   → ls -CF (formato columnas)       ║"
        echo "║  7. indicadores         → Ir a carpeta indicadores        ║"
        echo "║  8. proyectos           → Ir a carpeta proyectos          ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        read "cmd?Ejecutar comando [1-8] o Enter para volver: "
        case $cmd in
          1) .. ;;
          2) ... ;;
          3) .... ;;
          4) ll ;;
          5) la ;;
          6) l ;;
          7) indicadores ;;
          8) proyectos ;;
          *) ;;
        esac
        ;;
      4)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  🔧 TMUX - GESTIÓN DE SESIONES                            ║"
        echo "╠═══════════════════════════════════════════════════════════╣"
        echo "║  1. tmux-nuevo          → Nueva sesión                    ║"
        echo "║  2. tmux-listar         → Listar sesiones activas         ║"
        echo "║  3. tmux-conectar       → Última sesión                   ║"
        echo "║  4. tmux-dev            → Sesión 'dev'                    ║"
        echo "║  5. tmux-work           → Sesión 'work'                   ║"
        echo "║  6. tmux-prod           → Sesión 'prod'                   ║"
        echo "║  7. tmux-ayuda          → Mostrar ayuda completa          ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        read "cmd?Ejecutar comando [1-7] o Enter para volver: "
        case $cmd in
          1) tmux-nuevo ;;
          2) tmux-listar ;;
          3) tmux-conectar ;;
          4) tmux-dev ;;
          5) tmux-work ;;
          6) tmux-prod ;;
          7) tmux-ayuda ;;
          *) ;;
        esac
        ;;
      5)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  🐘 POSTGRESQL                                            ║"
        echo "╠═══════════════════════════════════════════════════════════╣"
        echo "║  1. psqlc               → Conectar a PostgreSQL           ║"
        echo "║  2. pgstart             → Iniciar servicio                ║"
        echo "║  3. pgstop              → Detener servicio                ║"
        echo "║  4. pgrestart           → Reiniciar servicio              ║"
        echo "║  5. pgstatus            → Ver estado del servicio         ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        read "cmd?Ejecutar comando [1-5] o Enter para volver: "
        case $cmd in
          1) psqlc ;;
          2) pgstart ;;
          3) pgstop ;;
          4) pgrestart ;;
          5) pgstatus ;;
          *) ;;
        esac
        ;;
      6)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  🌐 PHP SERVER - Yii2 / Laravel                           ║"
        echo "╠═══════════════════════════════════════════════════════════╣"
        echo "║  1. php-server laravel                                    ║"
        echo "║  2. php-server laravel [puerto]                           ║"
        echo "║  3. php-server yii2                                       ║"
        echo "║  4. php-server yii2 [puerto]                              ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        read "cmd?Ejecutar comando [1-4] o Enter para volver: "
        case $cmd in
          1) php-server laravel ;;
          2) read "args?Puerto: "; php-server laravel $args ;;
          3) php-server yii2 ;;
          4) read "args?Puerto: "; php-server yii2 $args ;;
          *) ;;
        esac
        ;;
      7)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  🛡️ SISTEMA Y SEGURIDAD                                   ║"
        echo "╠═══════════════════════════════════════════════════════════╣"
        echo "║  1. update              → Actualizar sistema              ║"
        echo "║  2. reboot              → Reiniciar sistema               ║"
        echo "║  3. shutdown            → Apagar sistema                  ║"
        echo "║  4. ports               → Ver puertos abiertos            ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        read "cmd?Ejecutar comando [1-4] o Enter para volver: "
        case $cmd in
          1) update ;;
          2) reboot ;;
          3) shutdown ;;
          4) ports ;;
          *) ;;
        esac
        ;;
      8)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  📊 GIT - CONTROL DE VERSIONES                            ║"
        echo "╠═══════════════════════════════════════════════════════════╣"
        echo "║  1. gs                  → git status                      ║"
        echo "║  2. ga                  → git add                         ║"
        echo "║  3. gc                  → git commit                      ║"
        echo "║  4. gp                  → git push                        ║"
        echo "║  5. gl                  → git log (grafo)                 ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        read "cmd?Ejecutar comando [1-5] o Enter para volver: "
        case $cmd in
          1) gs ;;
          2) ga ;;
          3) read "args?Mensaje: "; gc "$args" ;;
          4) gp ;;
          5) gl ;;
          *) ;;
        esac
        ;;
      9)
        clear
        echo "╔═══════════════════════════════════════════════════════════╗"
        echo "║  📋 TODOS LOS COMANDOS - RESUMEN COMPLETO                 ║"
        echo "╚═══════════════════════════════════════════════════════════╝"
        echo ""
        echo "🎬 ANI-CLI:    ani-es | ani-es-continuar | ani-es-calidad"
        echo "🚀 LARAVEL:    art | tinker | serve | migrate | seed | fresh | cdu | ci | cu"
        echo "📁 NAVEGACIÓN: .. | ... | .... | ll | la | l | mkcd | findin | indicadores | proyectos"
        echo "🔧 TMUX:       tmux-nuevo | tmux-listar | tmux-conectar | tmux-dev | tmux-work"
        echo "🐘 POSTGRESQL: psqlc | pgstart | pgstop | pgrestart | pgstatus"
        echo "🌐 PHP SERVER: php-server laravel|yii2 [puerto] [ruta]"
        echo "🛡️ SISTEMA:    update | reboot | shutdown | ports"
        echo "📊 GIT:        gs | ga | gc | gp | gl"
        echo ""
        read "Presiona Enter para continuar..."
        ;;
      0)
        clear
        return
        ;;
      *)
        echo "Opción no válida. Presiona Enter para intentar..."
        read
        ;;
    esac
  done
}

# ═══════════════════════════════════════════════════════════════
# TMUX - Alias con nombres descriptivos
# ═══════════════════════════════════════════════════════════════

# --- GESTIÓN DE SESIONES ---
alias tmux-nuevo='tmux'                              # Nueva sesión (auto-nombrada)
alias tmux-nuevo-sesion='tmux new -s'                # Nueva sesión con nombre (uso: tmux-nuevo-sesion nombre)
alias tmux-conectar='tmux attach'                    # Reconectar a última sesión
alias tmux-conectar-sesion='tmux attach -t'          # Reconectar a sesión específica (uso: tmux-conectar-sesion nombre)
alias tmux-listar='tmux ls'                          # Listar sesiones activas
alias tmux-matar='tmux kill-session -t'              # Matar sesión (uso: tmux-matar nombre)
alias tmux-matar-todas='tmux kill-server'            # Matar todas las sesiones

# --- ATAJOS RÁPIDOS DE SESIONES ---
alias tmux-dev='tmux new -s dev'                     # Sesión de desarrollo
alias tmux-work='tmux new -s work'                   # Sesión de trabajo
alias tmux-prod='tmux attach -t prod 2>/dev/null || tmux new -s prod'  # Sesión de producción (conecta o crea)

# --- FUNCIONES PARA GESTIÓN DE PANELES Y VENTANAS ---
# Dividir pantalla verticalmente (izquierda/derecha)
tmux-split-v() { tmux split-window -h -t "${1:-}"; }
# Dividir pantalla horizontalmente (arriba/abajo)
tmux-split-h() { tmux split-window -v -t "${1:-}"; }
# Moverse entre paneles
tmux-pane-izq() { tmux select-pane -L -t "${1:-}"; }
tmux-pane-der() { tmux select-pane -R -t "${1:-}"; }
tmux-pane-arriba() { tmux select-pane -U -t "${1:-}"; }
tmux-pane-abajo() { tmux select-pane -D -t "${1:-}"; }

# --- UTILIDADES ---
alias tmux-recargar='tmux source ~/.tmux.conf'             # Recargar configuración
alias tmux-info='tmux info'                                # Información de configuración
alias tmux-debug='tmux list-sessions; echo "---"; tmux list-windows'  # Debug: ver sesiones y ventanas

# --- AYUDA RÁPIDA ---
tmux-ayuda() {
  echo "╔═══════════════════════════════════════════════════════════╗"
  echo "║                    TMUX - COMANDOS                        ║"
  echo "╠═══════════════════════════════════════════════════════════╣"
  echo "║ SESIONES:                                                 ║"
  echo "║   tmux-nuevo           → Nueva sesión                     ║"
  echo "║   tmux-nuevo-sesion X  → Nueva sesión llamada X           ║"
  echo "║   tmux-conectar        → Última sesión                    ║"
  echo "║   tmux-conectar-sesion X → Conectar a sesión X            ║"
  echo "║   tmux-listar          → Listar sesiones                  ║"
  echo "║   tmux-matar X         → Matar sesión X                   ║"
  echo "╠═══════════════════════════════════════════════════════════╣"
  echo "║ ATAJOS:                                                   ║"
  echo "║   tmux-dev             → Sesión 'dev'                     ║"
  echo "║   tmux-work            → Sesión 'work'                    ║"
  echo "║   tmux-prod            → Sesión 'prod'                    ║"
  echo "╠═══════════════════════════════════════════════════════════╣"
  echo "║ DENTRO DE TMUX (Prefijo: Ctrl+b):                         ║"
  echo "║   % → Split vertical  |  \" → Split horizontal            ║"
  echo "║   flechas → Mover paneles  |  z → Maximizar               ║"
  echo "║   c → Nueva ventana  |  n/p → Siguiente/anterior          ║"
  echo "║   d → Desconectar  |  s → Cambiar sesión                  ║"
  echo "║   [ → Scroll  |  ] → Pegar  |  ? → Ayuda                  ║"
  echo "╚═══════════════════════════════════════════════════════════╝"
}

# Mensaje de bienvenida
echo "
╔═══════════════════════════════════════════════════════════╗
║  Bienvenido! Escribe 'cmd' o 'ayuda' para ver el menú     ║
╚═══════════════════════════════════════════════════════════╝
"

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# The next line updates PATH for the Google Cloud SDK.
if [ -f '/home/jdrodriguezg/google-cloud-sdk/path.zsh.inc' ]; then . '/home/jdrodriguezg/google-cloud-sdk/path.zsh.inc'; fi

# The next line enables shell command completion for gcloud.
if [ -f '/home/jdrodriguezg/google-cloud-sdk/completion.zsh.inc' ]; then . '/home/jdrodriguezg/google-cloud-sdk/completion.zsh.inc'; fi
content_copyCOPY