Ventana guardada para DSH Desktop es una extensión que devuelve la ventana de DeepSeek Harness Desktop al tamaño, la posición y el estado maximizado en los que la dejaste. No hay panel de ajustes ni atajos: el plugin guarda la geometría mientras trabajas y la aplica en el siguiente arranque.
La diferencia está en cuándo se aplica. DSH crea su ventana oculta y la muestra cuando el host de plugins ya está listo; el plugin encuentra la ventana todavía invisible, la coloca en su sitio y deja que el primer fotograma pintado sea ya el definitivo. No hay salto desde el tamaño por defecto de 1280 × 820 ni parpadeo de por medio.
Qué es y para qué sirve
Es un plugin Host de DSH, no una aplicación independiente. Se instala en el perfil desktop, donde existe la ventana nativa de Electron, y se apoya en tres piezas:
- La ventana principal del producto, identificada como la ventana Chromium de nivel superior del proceso que lanzó el host, sin ventana propietaria y con un tamaño plausible.
- Win32 a través de
koffi, la copia que ya viaja dentro de DSH, sin dependencias nativas que compilar. - Un archivo JSON en el home de DSH con el rectángulo, el flag de maximizado y la marca de cuándo se restauró.
Sirve cuando abres DSH varias veces al día y no quieres recolocar la ventana cada vez: a la derecha del monitor, estirada a lo ancho, maximizada en el portátil o a caballo entre dos pantallas. Tampoco añade herramientas al agente, ni comandos, ni un segundo proceso: solo escribe y lee una geometría.
Qué problema resuelve
- Volver a colocar la ventana en cada arranque. Con el plugin, la ventana aparece directamente donde estaba, en el mismo monitor.
- Ver el salto desde el tamaño por defecto. La posición se aplica con la ventana oculta, así que el primer fotograma visible ya es el guardado.
- Perder el maximizado al minimizar. Minimizar y luego cerrar no borra el estado: si estaba maximizada, vuelve maximizada.
- Reaparecer fuera de pantalla cuando falta un monitor. Si el rectángulo guardado ya no toca ninguna pantalla, la ventana se mueve al área de trabajo más cercana y se ajusta a ella.
- Coordenadas negativas. Un monitor a la izquierda o por encima del principal se guarda y se restaura tal cual, sin normalizar a cero.
Lo que no se guarda, no se finge: el modo pantalla completa y el estado minimizado no forman parte del archivo. La ventana siempre se abre visible y, como mucho, maximizada.
Instalación
El plugin se distribuye como paquete npm y también desde el repositorio. Necesita DSH Desktop >= 0.2.1-rc.3 y el perfil desktop.
dsh plugin --profile desktop add @jamolpe88/dsh-desktop-windowstatus-saving
Desde el repositorio:
dsh plugin --profile desktop add github:JaMoLpE88/dsh-desktop-windowstatus-saving
Desde un checkout local, mientras desarrollas:
dsh plugin --profile desktop add C:\ruta\a\dsh-desktop-windowstatus-saving
Reinicia DSH Desktop después de instalar. Una instalación en caliente empieza a guardar de inmediato, pero no restaura hasta el siguiente arranque: el plugin solo actúa al inicio.
Cómo se usa
- Mueve, redimensiona o maximiza la ventana principal como quieras.
- Cierra DSH con normalidad o sal desde la bandeja del sistema.
- Abre DSH otra vez: la ventana ya está en la geometría que dejaste, en el mismo monitor.
No hay nada que configurar y ningún panel que abrir. Para olvidar la ventana guardada, borra el archivo de estado y reinicia.
Cómo funciona
El ciclo es corto: mover, guardar en silencio, cerrar y reabrir en el mismo sitio.
Restaurar antes del primer fotograma
DSH Desktop crea su BrowserWindow principal oculta al arrancar y solo la muestra cuando el host de plugins está listo y la página ha cargado. El plugin se ejecuta dentro de ese host y encuentra la ventana mientras sigue oculta:
ventana principal creada (oculta, 1280 × 820)
│
├── arranca el host de plugins, carga el plugin
│ └── SetWindowPlacement(geometría guardada, maximizado)
│
└── window.show() ← el primer fotograma visible ya es el guardado
Como la posición se aplica con la ventana oculta, desaparece el salto visible desde el tamaño por defecto. El archivo de estado lo registra con restore.whileHidden: true.
Identidad de la ventana
El plugin solo actúa sobre la ventana del producto: la ventana Chromium de nivel superior (Chrome_WidgetWin_1) del proceso Electron que lanzó el host, sin ventana propietaria y con un tamaño plausible. Nunca usa el título: una pestaña del navegador titulada «DeepSeek Harness» no es una ventana de la aplicación, y las ventanas de otros programas no se tocan.
Archivo de estado
%USERPROFILE%\.dsh\window-bounds.json, o $DSH_HOME/window-bounds.json cuando DSH_HOME está definido:
{
"version": 1,
"bounds": { "x": -2280, "y": 43, "width": 1943, "height": 1323 },
"maximized": false,
"savedAt": "2026-10-26T16:45:43.738Z",
"restore": { "at": "2026-10-26T16:45:43.738Z", "whileHidden": true }
}
- Las escrituras son atómicas (archivo temporal + renombrado): un cierre inesperado no puede dejar un documento truncado.
- El archivo solo se escribe cuando cambia la geometría o el estado maximizado, y una vez más al apagar.
- Un archivo corrupto se ignora y se sustituye en el siguiente guardado.
- Un archivo escrito por una versión más nueva del plugin se deja intacto.
Estados de la ventana
Normal, maximizada y el caso que suele romper otros plugins: maximizar, minimizar a la bandeja y cerrar desde ahí.
Varios monitores
El área de trabajo que se usa para encajar la ventana sale del monitor del rectángulo guardado, no del monitor en el que esté la ventana al arrancar. Las coordenadas negativas son válidas y se conservan. Si ese monitor ya no existe, la ventana se mueve al área de trabajo más cercana y se encoge para caber.
Comprobar que funciona
No hay ruta HTTP ni panel de diagnóstico: el estado vive en un archivo que puedes leer. Con DSH cerrado, ábrelo y mira restore:
type %USERPROFILE%\.dsh\window-bounds.json
Si restore.whileHidden es true y restore.at coincide con el último arranque, la geometría se aplicó antes de mostrar la ventana. Si bounds no coincide con la ventana real, revisa si otro plugin de posición está activo: dos plugins se pelean por la misma ventana.
Para empezar de cero, borra el archivo y reinicia DSH. El plugin volverá a crear el estado en cuanto muevas la ventana.
Privacidad
- Sin red. Ni peticiones salientes, ni telemetría, ni analítica.
- Sin título ni contenido. El plugin lee y escribe geometría; no inspecciona lo que hay dentro de la ventana ni los datos de sesión.
- Sin credenciales. El archivo solo contiene números, un booleano y dos fechas.
- Sin otros programas. Nunca modifica ventanas que no sean la principal de DSH.
La política completa está en SECURITY.md.
Límites conocidos
- Solo Windows. Usa
user32mediantekoffi; en macOS y Linux el plugin se desactiva. Windows 10 no está probado. - Píxeles físicos. Cambiar la escala de pantalla conserva el tamaño físico; la ventana no se reescala a DIP.
- La pantalla completa no se restaura. El maximizado sí; el fullscreen no se guarda.
- El minimizado no se restaura. La ventana siempre se abre visible.
- Los snap layouts no se recrean. Los grupos de ajuste de Windows 11 no forman parte del estado.
- Una sola ventana. Solo se sigue la principal del producto, no ventanas secundarias.
- Si DSH acaba guardando la geometría por su cuenta, desinstala el plugin: dos mecanismos sobre la misma ventana se estorban.
Ficha técnica
| Campo | Valor |
|---|---|
| Versión | 0.1.1 · 26 de octubre de 2026 |
| Autor | JaMoLpE88 |
| Licencia | MIT |
| Tipo | Extensión de DeepSeek Harness (plugin Host) |
| DSH | >= 0.2.1-rc.3, perfil desktop |
| Node | >= 22 |
| Plataformas | Windows 11 (probado) · Windows 10 (sin probar) · macOS y Linux no soportados |
| Runtime | Win32 mediante la copia de koffi incluida en DSH |
| Instalación | dsh plugin --profile desktop add @jamolpe88/dsh-desktop-windowstatus-saving |
| Paquete | npm @jamolpe88/dsh-desktop-windowstatus-saving |
| Repositorio | github.com/JaMoLpE88/dsh-desktop-windowstatus-saving |
| Ficha pública | dsh-plugin.org (publicada y verificada) |
| Web | jmolo.es |
Preguntas frecuentes
¿Tengo que configurar algo?
No. Se instala, se reinicia DSH y el plugin empieza a guardar la geometría de la ventana. No hay ajustes, ni panel, ni comandos.
¿Por qué la ventana no salta al tamaño por defecto?
Porque la colocación se aplica mientras la ventana todavía está oculta. Cuando DSH la muestra, el primer fotograma visible ya tiene el tamaño, la posición y el maximizado guardados.
¿Se guarda por perfil o por sesión?
No. Una ventana, un único sitio guardado en window-bounds.json. Todos los perfiles de DSH Desktop comparten la misma ventana y, por tanto, la misma geometría.
¿Funciona en macOS o Linux?
No. El plugin llama a user32 a través de koffi y en otras plataformas se desactiva. Windows 10 tampoco está probado; la validación del autor es Windows 11 con DSH 0.2.1-rc.3.
¿Qué pasa si desconecto el monitor donde estaba la ventana?
El rectángulo guardado ya no toca ninguna pantalla, así que el plugin mueve la ventana al área de trabajo más cercana y la encoge para que quepa. No se queda invisible fuera del escritorio.
¿Cómo borro la ventana guardada?
Elimina %USERPROFILE%\.dsh\window-bounds.json (o $DSH_HOME/window-bounds.json) y reinicia DSH. El archivo se vuelve a crear en cuanto muevas la ventana.
¿Interfiere con otros plugins de ventana?
Puede hacerlo. Si otro plugin también coloca la ventana principal, los dos compiten por el mismo rectángulo. Deja activo solo uno.
Licencia y autoría
Ventana guardada para DSH Desktop es un proyecto de JaMoLpE88 publicado con licencia MIT. El código, las releases y la documentación viven en github.com/JaMoLpE88/dsh-desktop-windowstatus-saving; la web del estudio es jmolo.es.
Usa la copia de koffi 3.1.1 (MIT, Niels Martignène) incluida en DeepSeek Harness Desktop, de modo que instalar el paquete no compila ni descarga ninguna dependencia nativa. El README principal está en inglés; la versión española se mantiene en README.es.md.
Copyright (c) 2026 JaMoLpE88. El software se ofrece sin garantías. Consulta LICENSE para el texto completo.
