# Termux

Trucos y configuraciones útiles en Termux: automatización, servidores SSH, personalización de la shell y demás cosas que no quiero volver a buscar en foros.

# Automatizar instalaciones de aplicaciones en Android con Termux

---
Esta guía automatiza la instalación de **Aves**, una galería de imágenes libre y de código abierto, usando Termux en dispositivos Android con acceso root. El proceso se realiza mediante un script shell alojado en Gitea pudiendo ser adaptado a casi cualquier aplicación que no tengamos de manera directa en la Play Store o cualquier otra tienda.

---

### Requisitos

* Dispositivo Android con **acceso root**.
* **Termux** instalado y configurado.
* Conexión a internet activa.

---

### Descarga del script

Puedes consultar y descargar el script directamente desde tu terminal o navegador en el siguiente enlace:

👉 [Check\_Aves.sh en Gitea](https://gitea.jtrapero.eu.org/R4di04kt1v3/Scripts/src/branch/main/Android/Check_Aves.sh)

---

### Ejecución del script

1. Abre Termux.

2. Descarga el script con:

   ```bash
   curl -O https://gitea.jtrapero.eu.org/R4di04kt1v3/Scripts/raw/branch/main/Android/Check_Aves.sh
   ```

3. Dale permisos de ejecución:

   ```bash
   chmod +x Check_Aves.sh
   ```

4. Ejecútalo:

   ```bash
   bash ./Check_Aves.sh
   ```

El script detecta la arquitectura del dispositivo, descarga la última versión de la app desde GitHub y, si se confirma, la instala como root usando `pm install`. Además, elimina el archivo tras una instalación exitosa.

---

### Consideraciones finales

* Este sistema puede adaptarse a cualquier APK hospedado en GitHub modificando la variable del repositorio.
* Si no estás familiarizado con Termux, consulta primero la [guía de configuración SSH en Termux](https://wiki.jtrapero.eu.org/books/android/page/instalacion-y-configuracion-de-un-servidor-ssh-en-termux).
* El script está pensado para uso personal y adaptado a dispositivos `aarch64`.
* Sino, siempre puedes usar [Obtainium](https://github.com/ImranR98/Obtainium), que hace esto de manera mas fácil y accesible.

# Instalación y configuración de un servidor SSH en Termux

---
Con Termux puedes montar un pequeño servidor SSH en Android y controlarlo desde el ordenador, sin tener que escribir comandos largos en una pantalla táctil. Ideal si quieres trabajar más cómodo o automatizar tareas.

---

### Instalación del servidor SSH

1. **Instala Termux:**

   Descárgalo desde [F-Droid](https://f-droid.org/en/packages/com.termux/) o [GitHub](https://github.com/termux/termux-app).

2. **Actualiza los paquetes:**

   ```bash
   pkg update && pkg upgrade
   ```

3. **Instala OpenSSH:**

   ```bash
   pkg install openssh
   ```

4. **Comprueba que se instaló bien:**

   ```bash
   ssh -V
   ```

   Debería devolver la versión de OpenSSH.

---

### Configuración básica

1. **Inicia el servidor SSH:**

   ```bash
   sshd
   ```

2. **Comprueba que está activo:**

   ```bash
   ps aux | grep sshd
   ```

3. **Obtén la IP local del dispositivo:**

   ```bash
   ifconfig
   ```

   Anota la IP (normalmente será algo como `192.168.x.x`).

4. **Establece una contraseña y revisa tu nombre de usuario:**

   ```bash
   whoami
   passwd
   ```

   El usuario suele ser algo como `u0_a289`. Lo necesitarás para conectarte.

5. **Conéctate desde tu PC:**

   ```bash
   ssh usuario@192.168.x.x
   ```

   Sustituye `usuario` por el nombre que te dio `whoami`.

---

### Notas adicionales

* Asegúrate de estar en la misma red local.
* Si prefieres evitar contraseñas, puedes usar autenticación por clave pública.
* Para acceso desde fuera de casa, necesitarás una VPN o túneles SSH.

---

Así puedes manejar Android desde tu PC sin depender del teclado táctil. Más rápido, más cómodo y con menos errores tontos.

# Personalización de la shell en Termux

---
### Introducción
Personalizar la shell en Termux puede mejorar tu experiencia de usuario y hacerla más atractiva y funcional. Instalaremos herramientas útiles como `git`, `zsh`, `fastfetch`, `duf` y `lsd`. También configuraremos `oh-my-zsh` con algunos plugins.

---

### Instalación de herramientas esenciales

Primero, actualizamos los paquetes e instalamos las herramientas necesarias:

```bash
pkg update && pkg upgrade
pkg install zsh git fastfetch duf lsd wget jq
```

---

#### Descripción de las herramientas:
- **zsh**: Shell avanzada y altamente personalizable.
- **git**: Control de versiones.
- **fastfetch**: Similar a `neofetch`, muestra información del sistema.
- **duf**: Visualiza el uso del almacenamiento de manera detallada.
- **lsd**: Alternativa mejorada a `ls` con iconos y colores.

---

### Instalación de Oh My Zsh

Visita la página oficial de [Oh My Zsh](https://ohmyz.sh/) y ejecuta el siguiente comando:

```bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

Si el comando anterior falla, puedes usar esta alternativa con `wget`:

```bash
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O install.sh
sh install.sh
```

Cuando te pregunte si deseas cambiar la shell, escribe `Y`.

---

### Instalación de plugins útiles

Clona los siguientes plugins en la carpeta personalizada de `oh-my-zsh`:

```bash
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
```

Descripción de los plugins:

- zsh-syntax-highlighting: Resalta la sintaxis de los comandos que escribes, similar a un editor de texto.

- zsh-autosuggestions: Sugiere comandos basándose en tu historial mientras escribes.

Para verificar si los plugins están correctamente instalados, puedes listar el contenido del directorio `~/.oh-my-zsh/custom/plugins`:

```bash
ls ~/.oh-my-zsh/custom/plugins
```

---

### Configuración de `.zshrc`

Edita el archivo de configuración:

```bash
nano ~/.zshrc
```

#### Añade los siguientes plugins:

```bash
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
```

### Personalización opcional:

1. **Cambiar el tema**:
   - Busca esta línea:
     ```bash
     ZSH_THEME="robbyrussell"
     ```
   - Cambia `robbyrussell` por otro tema de tu preferencia. Consulta los temas disponibles en el [repositorio de temas de Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes).

2. **Añadir `fastfetch` al inicio**:
   - Al final del archivo `.zshrc`, añade:
     ```bash
     fastfetch
     ```

3. **Comprobación de cambios**:
   - Guarda el archivo y aplica los cambios ejecutando:
     ```bash
     source ~/.zshrc
     ```

Con esta configuración, tu shell será más funcional y visualmente atractiva.