[English](./README.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Español](./README.es.md)
🏞️ `wallpaper-box` no es solo otro descargador de fondos de pantalla. Es un cliente que hace que tu escritorio cobre vida de verdad: fondos estáticos, fondos de vídeo, fondos web, fondos generados por IA, además de un icono animado en la barra de menús estilo RunCat que reacciona al uso de CPU.
## Características
- [x] Generación de fondos de pantalla con IA a partir de texto
- [x] Explorar y buscar fondos en línea
- [x] Descargar fondos localmente
- [x] Establecer fondos estáticos
- [x] Establecer fondos de vídeo (en macOS la ventana es a pantalla completa pero no cubre toda la pantalla — ¡PRs bienvenidos!)
- [x] Descargar vídeos de YouTube / Bilibili con `yt-dlp` y usarlos directamente como fondos animados
- [x] Establecer fondos web
- [x] Generar fondos con IA mediante prompts de texto
- [x] Soporte tanto de URLs online como de archivos HTML locales como fondos web
- [x] Iconos animados en la barra de menús (estilo RunCat) que cambian de velocidad según el uso de CPU
- [x] Abrir al iniciar sesión
- [x] Soporte de proxy HTTP
## Notas de plataforma
- Los scripts de empaquetado se centran principalmente en macOS.
- Las compilaciones por defecto son `universal` (compatibles con Apple Silicon e Intel).
- También hay comandos para compilar `x64` y `arm64` por separado.
- La versión mínima soportada de macOS es `10.13`.
- La aplicación no está firmada por Apple Developer. Deberás permitirla manualmente la primera vez.
## Uso
### Lista de fondos de pantalla
Los fondos provienen de wallhaven.cc.
- Busca, filtra, previsualiza, descarga y aplica fondos directamente.
- Los fondos estáticos descargados se guardan por defecto en `~/wallpaper-box`.
### Fondos animados (vídeo)
Permite usar archivos de vídeo locales como fondos de escritorio dinámicos. También puedes pegar enlaces de YouTube / Bilibili para descargarlos y usarlos directamente.
- Soporta selección con clic o arrastrar y soltar.
- Pega enlaces de `YouTube / Bilibili` para descargar vídeos.
- Formatos comunes como `MP4`, `MOV`, `WebM` son compatibles.
- En macOS la ventana del fondo animado puede no cubrir toda la pantalla — ¡contribuciones bienvenidas!
Notas:
- Los vídeos descargados se guardan en `~/wallpaper-box/videos`
- El vídeo se establece automáticamente como fondo tras la descarga
- Los paquetes de lanzamiento incluyen `yt-dlp` y `Deno` — no es necesario instalar nada manualmente
- Para vídeos con flujos de audio y vídeo separados, puede que también necesites incluir `ffmpeg` y `ffprobe` en `resources/bin/`
- Usar el binario oficial `yt-dlp_macos` puede elevar el requisito mínimo efectivo de sistema a macOS 10.15+
| Windows: |
macOS: |
 |
 |
### Fondos web
Permite usar cualquier página web como fondo de escritorio. Soporta tanto URLs online como archivos HTML locales.
- **URLs online**: Solo introduce la dirección.
- Ejemplo: `https://wangrongding.github.io/jellyfish/`
- `google.com` o `localhost:3000` añadirán automáticamente el protocolo.
- **Archivos locales**: Selecciona o arrastra archivos locales `HTML/HTM/SVG`.
- Ejemplo macOS/Linux: `/Users/tu-nombre/Coding/jellyfish/index.html`
- Ejemplo Windows: `C:\Users\tu-nombre\Coding\jellyfish\index.html`
### Fondos con IA
Genera fondos de pantalla directamente a partir de texto.
- La configuración de IA está en la página **AI Wallpaper**, no en Ajustes globales.
- Las imágenes generadas se guardan automáticamente en `~/wallpaper-box`.
- Tras generar puedes aplicarla como fondo o abrir su carpeta.
Actualmente soporta dos tipos comunes de API:
- Endpoints compatibles con la API de Imágenes de OpenAI
- Zhipu `glm-image`
Ejemplos de configuración recomendados:
- OpenAI
- `API Base URL`: `https://api.openai.com/v1`
- `Model`: `gpt-image-1`
- Zhipu BigModel
- `API Base URL`: `https://open.bigmodel.cn/api/paas/v4`
- `Model`: `glm-image`
Notas:
- Si usas la URL completa de Zhipu `https://open.bigmodel.cn/api/paas/v4/images/generations`, también funciona.
- `glm-image` permite tamaño personalizado.
- Límites de tamaño personalizado: `512-2048`, y tanto el ancho como el alto deben ser múltiplos de `32`.
Consejos para los prompts:
- Estructura recomendada: `sujeto principal + estilo/textura + iluminación/hora + composición + requisitos del fondo`
- Ejemplo: `ciudad costera futurista, contraluz al atardecer, composición cinematográfica gran angular, espacio negativo limpio, ideal como fondo de escritorio panorámico, sin personas, sin texto, sin marca de agua`
### Iconos animados en la barra de menús
El icono de la barra de menús cambia la velocidad de animación según el uso de CPU en tiempo real. Puedes previsualizar y cambiar temas desde el menú de la bandeja o desde la página dedicada **Iconos Animados**.
 |
 |
Ya no es necesario editar manualmente [electron/tray-list.ts](./electron/tray-list.ts).
- Los iconos integrados se escanean automáticamente de las subcarpetas en [public/icons](./public/icons).
- Los iconos personalizados se pueden importar o eliminar desde la página **Iconos Animados**, o simplemente colocarlos en `~/wallpaper-box/tray-icons//`.
- Los fotogramas de un mismo grupo se reproducen en orden de nombre de archivo (por ejemplo `001.png`, `002.png`...).
### Ajustes
La página de Ajustes globales contiene las opciones generales:
- Abrir al iniciar sesión
- Proxy HTTP
- Prueba de conectividad del proxy
- Ubicación por defecto de almacenamiento de fondos (actualmente `~/wallpaper-box`)
Notas:
- La prueba de proxy intenta alcanzar Google.
- La configuración de la API de IA está en la página **AI Wallpaper**, no aquí.
- La previsualización, cambio e importación de iconos de la bandeja se han movido a la página independiente **Iconos Animados**.
## Desarrollo
### Instalar dependencias
```sh
pnpm install
```
Notas:
- `pnpm install` ejecuta automáticamente `prepare` y descarga `yt-dlp` / `Deno` / `ffmpeg` / `ffprobe` en `resources/bin/`.
- Si los binarios ya existen, se omiten.
- Para forzar la actualización de los binarios: `pnpm prepare:video-downloader`
### Preparar binarios de descarga de vídeo (manual)
```sh
pnpm prepare:video-downloader
```
Este script descarga lo siguiente en `resources/bin/`:
- `yt-dlp_macos`
- `deno-aarch64-apple-darwin`
- `deno-x86_64-apple-darwin`
- `ffmpeg-darwin-arm64`
- `ffprobe-darwin-arm64`
- `ffmpeg-darwin-x64`
- `ffprobe-darwin-x64`
Notas:
- Estos archivos se incluyen en la app mediante `electron-builder.extraResources`.
- `yt-dlp` selecciona automáticamente el `ffmpeg`/`ffprobe` correspondiente a la arquitectura actual cuando hay flujos de audio y vídeo separados.
- En desarrollo se pueden sobrescribir las rutas con variables de entorno: `WALLPAPER_BOX_YT_DLP_PATH`, etc.
### Desarrollo local
Iniciar Web y Electron juntos:
```sh
pnpm dev
```
En terminales separados:
```sh
pnpm dev:web
pnpm dev:electron
```
Ejecutar Electron contra un bundle construido localmente:
```sh
pnpm build:web
pnpm build:electron
pnpm electron:start
```
## Empaquetado
Los artefactos de compilación se generan en el directorio `out/`.
Notas sobre arquitecturas:
- `universal`: Un solo paquete que incluye tanto Intel (x64) como Apple Silicon (arm64).
- `x64`: Para Macs Intel antiguas.
- `arm64`: Para Macs M1/M2/M3/M4.
```sh
# Recomendado por defecto (universal)
pnpm build
# Compilación explícita universal
pnpm build:mac:universal
# Solo Intel
pnpm build:mac:x64
# Solo Apple Silicon
pnpm build:mac:arm64
# Instalador DMG (universal)
pnpm build:dmg
# ZIP portátil (universal)
pnpm build:zip
```
## Preguntas frecuentes
### 1. macOS dice que no se puede abrir la aplicación
La app no está firmada por Apple Developer. Ejecuta estos comandos en Terminal:
```sh
sudo spctl --master-disable
sudo xattr -r -d com.apple.quarantine /Applications/wallpaper-box.app
```
Si la app no está en `/Applications`, reemplaza la ruta con la ubicación real del `.app` (arrastra la app desde Finder a Terminal).
### 2. "Esta aplicación no es compatible con este Mac"
- Tu versión de macOS es anterior a `10.13`
- Descargaste una compilación de arquitectura incorrecta
Prefiere el paquete `universal` por defecto. También puedes compilar `x64` o `arm64` por separado si lo necesitas.
### 3. La generación con IA devuelve `404 not found`
Si usas Zhipu BigModel, la versión actual soporta tanto:
- `https://open.bigmodel.cn/api/paas/v4`
- `https://open.bigmodel.cn/api/paas/v4/images/generations`
¿Sigue fallando? Comprueba:
- API Key
- El modelo está puesto como `glm-image`
- No hay errores evidentes de escritura en `API Base URL`
### 4. Errores con tamaño personalizado de IA
Límites de ancho/alto personalizado de `glm-image`:
- Rango: `512-2048`
- Tanto el ancho como el alto deben ser múltiplos de `32`
Ejemplos válidos:
- `2048x1152`
- `2048x1280`
- `1792x1024`
## Consejos de directorios
- Fondos estáticos y de IA: `~/wallpaper-box`
- Configuración de IA: Página **AI Wallpaper** → botón **Settings** en la esquina superior derecha
## Finalmente
Si encuentras útil este proyecto, ¡considera darle una ⭐️! Gracias.
Las contribuciones, issues y PRs son muy bienvenidos.