Primer commit: subida inicial del proyecto
This commit is contained in:
153
README.md
Normal file
153
README.md
Normal file
@ -0,0 +1,153 @@
|
||||
# Gestor de Sesiones TMUX
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
Script interactivo para gestionar sesiones de **tmux** con opciones predefinidas y personalizadas.
|
||||
|
||||
## 📌 Tabla de Contenidos
|
||||
- [CaracterÃsticas](#-caracterÃsticas)
|
||||
- [Requisitos](#-requisitos)
|
||||
- [Instalación](#-instalación)
|
||||
- [Uso](#-uso)
|
||||
- [Opciones](#-opciones)
|
||||
- [Ejemplos](#-ejemplos)
|
||||
- [Capturas](#-capturas)
|
||||
- [Solución de Problemas](#-solución-de-problemas)
|
||||
- [Contribuciones](#-contribuciones)
|
||||
- [Licencia](#-licencia)
|
||||
|
||||
## 🌟 CaracterÃsticas
|
||||
- Menú interactivo fácil de usar.
|
||||
- Opciones predefinidas (**Gemini Nahuel**, **Nahuel**).
|
||||
- Opción para nombres personalizados.
|
||||
- Selección de ruta de trabajo para sesiones especÃficas.
|
||||
- Verificación automática de existencia de sesiones.
|
||||
- Manejo de errores con mensajes claros.
|
||||
|
||||
## 📋 Requisitos
|
||||
- **Bash** (v4.0+)
|
||||
- **TMUX** (v3.0+)
|
||||
- Sistemas basados en Unix (Linux, macOS)
|
||||
|
||||
### Instalación de tmux
|
||||
```bash
|
||||
# Debian/Ubuntu
|
||||
sudo apt install tmux
|
||||
|
||||
# RedHat/CentOS
|
||||
sudo yum install tmux
|
||||
```
|
||||
|
||||
## 🔧 Instalación
|
||||
1. Descarga el script:
|
||||
```bash
|
||||
wget https://ejemplo.com/remoto.sh
|
||||
```
|
||||
2. Hazlo ejecutable:
|
||||
```bash
|
||||
chmod +x remoto.sh
|
||||
```
|
||||
3. (Opcional) Mueve a tu PATH:
|
||||
```bash
|
||||
sudo mv remoto.sh /usr/local/bin/remoto
|
||||
```
|
||||
|
||||
## 🚀 Uso
|
||||
Ejecutar directamente:
|
||||
```bash
|
||||
./remoto.sh
|
||||
```
|
||||
Si lo moviste a tu PATH:
|
||||
```bash
|
||||
remoto
|
||||
```
|
||||
|
||||
## âš™ï¸ Opciones
|
||||
El script presenta un menú interactivo con:
|
||||
|
||||
- **Iniciar sesión**
|
||||
- Gemini Nahuel (con selector de ruta)
|
||||
- Nahuel
|
||||
- Personalizado
|
||||
- **Reanudar sesión**
|
||||
- Mismas opciones que iniciar
|
||||
- **Salir**
|
||||
|
||||
## 📖 Ejemplos
|
||||
Iniciar sesión Gemini Nahuel en una ruta:
|
||||
```
|
||||
> 1 (Iniciar)
|
||||
> 1 (Gemini Nahuel)
|
||||
> ~/proyectos
|
||||
```
|
||||
|
||||
Reanudar sesión Nahuel:
|
||||
```
|
||||
> 2 (Reanudar)
|
||||
> 2 (Nahuel)
|
||||
```
|
||||
|
||||
### Uso Avanzado
|
||||
Ejecución con parámetros (modo no interactivo):
|
||||
|
||||
```bash
|
||||
# Iniciar sesión directamente
|
||||
./remoto.sh --new Gemini-Nahuel --path ~/docs
|
||||
|
||||
# Reanudar sesión
|
||||
./remoto.sh --attach Nahuel
|
||||
```
|
||||
|
||||
Ver todas las sesiones disponibles:
|
||||
```bash
|
||||
tmux ls
|
||||
```
|
||||
|
||||
Eliminar una sesión:
|
||||
```bash
|
||||
tmux kill-session -t nombre-sesion
|
||||
```
|
||||
|
||||
### Atajos útiles en tmux
|
||||
- `Ctrl+b d` → Desconectar sesión
|
||||
- `Ctrl+b $` → Renombrar sesión
|
||||
|
||||
📌 Para rutas con espacios, usa comillas:
|
||||
```bash
|
||||
"/ruta/con espacios/en/el/nombre"
|
||||
```
|
||||
|
||||
📌 Puedes combinar con SSH:
|
||||
```bash
|
||||
ssh usuario@servidor -t "remoto"
|
||||
```
|
||||
|
||||
## 📸 Capturas
|
||||
```
|
||||
----------------------------------------
|
||||
GESTOR DE SESIONES TMUX - BY NAHUEL
|
||||
----------------------------------------
|
||||
|
||||
1) Iniciar sesión
|
||||
2) Reanudar sesión
|
||||
3) Salir
|
||||
|
||||
Elige una opción (1-3):
|
||||
```
|
||||
|
||||
## ðŸ› ï¸ Solución de Problemas
|
||||
|
||||
| Error | Solución |
|
||||
|------------------------------|----------|
|
||||
| Permiso denegado | Ejecuta `chmod +x tmux_session_manager.sh` |
|
||||
| Ruta no existe | Verifica la ruta con `ls` |
|
||||
| Sesión no existe | Crea una nueva sesión |
|
||||
| Comando tmux no encontrado | Instala tmux: `sudo apt install tmux` |
|
||||
|
||||
## 🤠Contribuciones
|
||||
¡Las contribuciones son bienvenidas! Puedes abrir un **issue** o enviar un **pull request**.
|
||||
|
||||
## 📜 Licencia
|
||||
Este proyecto está bajo la licencia [MIT](LICENSE).
|
109
remoto.sh
Normal file
109
remoto.sh
Normal file
@ -0,0 +1,109 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Función para iniciar una nueva sesión de tmux con ruta personalizada
|
||||
start_session() {
|
||||
local session_name="$1"
|
||||
local working_dir="$2"
|
||||
|
||||
# Si se especificó una ruta, usarla; de lo contrario, ir al HOME
|
||||
if [ -n "$working_dir" ]; then
|
||||
if [ -d "$working_dir" ]; then
|
||||
tmux new-session -d -s "$session_name" -c "$working_dir"
|
||||
echo "✅ Sesión '$session_name' creada en ruta: $working_dir"
|
||||
else
|
||||
echo "❌ La ruta '$working_dir' no existe. Usando HOME (~) por defecto."
|
||||
tmux new-session -d -s "$session_name"
|
||||
fi
|
||||
else
|
||||
tmux new-session -d -s "$session_name"
|
||||
fi
|
||||
|
||||
tmux attach-session -t "$session_name"
|
||||
}
|
||||
|
||||
# Función para reanudar una sesión existente
|
||||
resume_session() {
|
||||
local session_name="$1"
|
||||
if tmux has-session -t "$session_name" 2>/dev/null; then
|
||||
echo "🔵 Reanudando sesión '$session_name'..."
|
||||
tmux attach-session -t "$session_name"
|
||||
else
|
||||
echo "❌ La sesión '$session_name' no existe. ¿Quieres crearla? (s/n)"
|
||||
read -r response
|
||||
if [[ "$response" =~ ^[Ss]$ ]]; then
|
||||
# Solo pregunta por ruta si es Gemini Nahuel
|
||||
if [ "$session_name" == "Gemini-Nahuel" ]; then
|
||||
read -p "📁 Ingresa la ruta de trabajo (deja vacío para HOME): " custom_dir
|
||||
start_session "$session_name" "$custom_dir"
|
||||
else
|
||||
start_session "$session_name"
|
||||
fi
|
||||
else
|
||||
echo "Operación cancelada."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Menú principal
|
||||
echo "----------------------------------------"
|
||||
echo " GESTOR DE SESIONES TMUX - BY NAHUEL "
|
||||
echo "----------------------------------------"
|
||||
echo ""
|
||||
echo "1) Iniciar sesión"
|
||||
echo "2) Reanudar sesión"
|
||||
echo "3) Salir"
|
||||
echo ""
|
||||
read -p "Elige una opción (1-3): " main_choice
|
||||
|
||||
case "$main_choice" in
|
||||
1)
|
||||
echo ""
|
||||
echo "Opciones de sesión:"
|
||||
echo "1) Gemini Nahuel"
|
||||
echo "2) Nahuel"
|
||||
echo "3) Otro"
|
||||
echo ""
|
||||
read -p "Elige un nombre de sesión (1-3): " session_choice
|
||||
|
||||
case "$session_choice" in
|
||||
1)
|
||||
read -p "📁 Ingresa la ruta de trabajo (deja vacío para HOME): " custom_dir
|
||||
start_session "Gemini-Nahuel" "$custom_dir"
|
||||
;;
|
||||
2) start_session "Nahuel" ;;
|
||||
3)
|
||||
read -p "Introduce el nombre de la sesión: " custom_name
|
||||
start_session "$custom_name"
|
||||
;;
|
||||
*) echo "❌ Opción inválida." ;;
|
||||
esac
|
||||
;;
|
||||
2)
|
||||
echo ""
|
||||
echo "Opciones de sesión:"
|
||||
echo "1) Gemini Nahuel"
|
||||
echo "2) Nahuel"
|
||||
echo "3) Otro"
|
||||
echo ""
|
||||
read -p "Elige un nombre de sesión (1-3): " session_choice
|
||||
|
||||
case "$session_choice" in
|
||||
1) resume_session "Gemini-Nahuel" ;;
|
||||
2) resume_session "Nahuel" ;;
|
||||
3)
|
||||
read -p "Introduce el nombre de la sesión: " custom_name
|
||||
resume_session "$custom_name"
|
||||
;;
|
||||
*) echo "❌ Opción inválida." ;;
|
||||
esac
|
||||
;;
|
||||
3)
|
||||
echo "👋 ¡Hasta luego!"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "❌ Opción inválida."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
Reference in New Issue
Block a user