Skip to content

Releases: Eldur4023/Localify

v2.1.4 — Relanzamiento restaura la ventana; Discord arreglado

Choose a tag to compare

@Eldur4023 Eldur4023 released this 22 Sep 16:02

Sigue marcada como inestable.

Arreglos sobre v2.1.3

  • Hacía falta abrir la app varias veces: si ya estaba corriendo
    (minimizada desde el arranque de sesión), lanzarla otra vez no hacía
    nada visible — el candado de instancia única simplemente rechazaba el
    segundo intento en silencio. Ahora se le pide a la instancia que ya
    corre que restaure su ventana.
  • Discord no funcionaba: no era un fallo de código — era un dato mal
    migrado. Los ajustes de integración se guardaron en el formato de la
    Tauri original (claves sueltas) en vez del formato que usa la app
    nueva (un único JSON bajo settings_json), así que Discord siempre
    leía "desactivado" sin importar lo que dijera de verdad el ajuste
    guardado. Corregido en los datos de este usuario; verificado en vivo
    contra un Discord real (conecta y manda la actividad correctamente).

Sobre el audio que sigue sonando al cerrar

Reproducido el cierre exacto (clic derecho en la barra de tareas →
cerrar) dos veces con reproducción activa: el proceso principal, sus dos
subprocesos de WebKit y el stream de PipeWire desaparecen todos juntos
en segundos, sin nada huérfano. Sigo sin poder reproducirlo — si vuelve
a pasar, la próxima vez que ocurra sería muy útil saber cuánto dura
"un rato" y si justo antes se había minimizado/restaurado la ventana.

Paquetes

Mismo contenido que releases anteriores (binario suelto
localify-2.1.4-linux-x86_64 y .deb para Debian/Ubuntu).

v2.1.3 — Sincroniza la posición durante la reproducción

Choose a tag to compare

@Eldur4023 Eldur4023 released this 22 Sep 10:19

Sigue marcada como inestable.

Arreglo sobre v2.1.2

  • La barra de progreso de la tarjeta "reproduciendo ahora" no
    avanzaba
    : player_state.position_ms en el servidor solo se
    actualizaba en momentos puntuales (pausa, seek, cambio de pista) —
    correcto para la propia ventana (el <audio> es su propia fuente de
    verdad), pero dejaba la posición clavada para todo lo que lee el
    estado desde fuera del navegador: MPRIS y, sobre todo, la tarjeta del
    borde derecho. Ahora el cliente reporta su posición cada ~3s mientras
    suena, así que la posición vista desde fuera se mantiene al día.

(Esto es distinto del arreglo de v2.1.2, que era sobre la barra de la
propia ventana principal cuando WebKitGTK frenaba sus temporizadores al
minimizarla — ese seguía funcionando bien; este es sobre lo que ve
cualquiera que consulta el estado desde fuera.)

Paquetes

Mismo contenido que releases anteriores (binario suelto
localify-2.1.3-linux-x86_64 y .deb para Debian/Ubuntu).

v2.1.2 — Portadas de pista, pausa instantánea, progreso resistente

Choose a tag to compare

@Eldur4023 Eldur4023 released this 21 Sep 16:51

Sigue marcada como inestable — más ajustes encontrados con uso real
sobre v2.1.1.

Arreglos sobre v2.1.1

  • Portadas de pista con margen gris/negro: /api/cover/track/:id
    usaba solo la miniatura de YouTube, que en vídeos de "audio oficial"
    suele traer la carátula centrada sobre un lienzo más ancho con el
    margen incrustado en los propios píxeles — object-fit: cover no
    puede recortar eso, forma parte de la imagen. Ahora prueba primero la
    portada del álbum.
  • Delay al pausar el audio: se corta la ganancia del mezclador en el
    acto en vez de esperar a que el decodificador de WebKitGTK/GStreamer
    reaccione a pause() (latencia variable, a veces perceptible).
  • Barra de progreso congelada al minimizar: ya no depende solo de un
    setInterval, que WebKitGTK puede frenar con la ventana minimizada.
    Ahora también escucha timeupdate del propio <audio>, que sigue
    llegando aunque el temporizador se congele.

Paquetes

Mismo contenido que releases anteriores (binario suelto
localify-2.1.2-linux-x86_64 y .deb para Debian/Ubuntu), solo con
estos arreglos encima.

v2.1.1 — Carátulas, volumen y respuesta de play/pausa (inestable)

Choose a tag to compare

@Eldur4023 Eldur4023 released this 21 Sep 15:54

Marcada como inestable: corrige tres fallos reales encontrados justo
después de migrar de Tauri, pero recién probados — si algo más se rompe,
repórtalo.

Arreglos sobre v2.1.0

  • Carátulas invisibles en toda la app: el código que ponía la imagen
    nunca llegaba a pedirla la primera vez (resto de un mecanismo de doble
    esquema de la Tauri original que ya no aplica aquí). No cargaba ninguna
    portada, en ningún sitio.
  • El volumen no subía ni bajaba: una vez el audio pasa por Web Audio
    (el ecualizador de 10 bandas), WebKitGTK deja de respetar el .volume
    del elemento <audio> — el control real pasa a ser el GainNode del
    motor de crossfade, que hasta ahora ignoraba el volumen del usuario por
    completo. De paso, el volumen guardado tampoco se aplicaba al abrir la
    app.
  • El botón de play/pausa (y siguiente/anterior) tardaba en reaccionar:
    no repintaban el icono con la respuesta del propio clic, solo con el
    siguiente sondeo de estado (hasta 1 s después).

Paquetes

Mismo contenido que v2.1.0 (binario suelto localify-2.1.1-linux-x86_64
y .deb para Debian/Ubuntu), solo con estos arreglos encima.

v2.1.0 — Minimizar ventana y descubrimiento de puerto

Choose a tag to compare

@Eldur4023 Eldur4023 released this 21 Sep 15:43

Novedades sobre v2.0.0

  • POST /api/window/minimize: no hay modo --headless en el port a
    Lux, así que esta ruta permite que un script de arranque de sesión
    minimice la ventana justo después de lanzarla (en vez de mostrarla
    siempre).
  • Descubrimiento de puerto: el servidor HTTP arranca en un puerto
    aleatorio por diseño; ahora lo escribe a ./port (relativo al
    directorio de datos persistente, ~/.local/share/lux-desktop/localify/)
    para que herramientas externas en la misma máquina —un script de login,
    un widget de "reproduciendo ahora"— puedan encontrarlo sin depender de
    un puerto fijo.

Pensado para integrar la app con MPRIS (org.mpris.MediaPlayer2.localify,
ya presente desde v2.0.0) y con scripts de sesión sin necesitar la vieja
API de control de la versión Tauri.

Paquetes

  • localify-2.1.0-linux-x86_64: binario suelto, sin empaquetar —
    dale permisos de ejecución y listo.
  • localify_2.1.0_amd64.deb: paquete Debian/Ubuntu (instala en
    /usr/bin, añade el lanzador al menú y los iconos). Requiere
    libgtk-3-0 y libwebkit2gtk-4.1-0 (se resuelven solos vía apt).
    yt-dlp y ffmpeg/ffprobe siguen sin empaquetarse: deben estar en
    el PATH para el catálogo remoto y las descargas.

v2.0.0 — Port a Lux (Linux)

Choose a tag to compare

@Eldur4023 Eldur4023 released this 21 Sep 15:19

Cambio de plataforma: de Tauri (Windows) a Lux (Linux)

Esta versión sustituye por completo la aplicación anterior (Rust + Tauri,
Windows) por un port nativo construido sobre Lux: ventana
GTK3 + WebKitGTK, LuxScript en el backend en vez de Rust/Node, un único
binario nativo sin runtime que instalar. A partir de aquí la app es
Linux-only.

Novedades sobre el diseño original

  • MPRIS (integración con los controles multimedia del sistema).
  • Discord Rich Presence.
  • Crossfade/gapless real con doble elemento <audio>.
  • El resto de funcionalidad (biblioteca, cola estilo Spotify, descargas vía
    yt-dlp con emparejamiento por puntuación, letras sincronizadas,
    importación de playlists de YouTube Music/Spotify, ecualizador de 10
    bandas, ajustes, estadísticas) es 1:1 con la app original, verificada en
    vivo durante el port.

Requisitos en tiempo de ejecución

  • libgtk-3-0 y libwebkit2gtk-4.1-0 (o -4.0 en distros más antiguas).
  • yt-dlp y ffmpeg/ffprobe en el PATH para el catálogo remoto y las
    descargas.

Instalación

tar -xzf localify-2.0.0-linux-x86_64.tar.gz
./localify                  # ejecutar directamente
./localify --install-desktop  # añadirlo al menú de aplicaciones

La biblioteca (audio + carátulas) se guarda por defecto en
~/Music/Localify/, configurable desde Ajustes.

v1.2.7

Choose a tag to compare

@Eldur4023 Eldur4023 released this 09 Sep 22:27

Novedades

  • Arreglado el salto al arrastrar canciones dentro de una playlist: tras mover una fila (suave, al instante), la lista se recargaba igualmente y eso reseteaba el scroll y repoblaba todo desde cero — el "teletransporte" que se notaba al reordenar. Ahora solo se recarga si el reordenamiento falla de verdad.
  • Reordenar playlists en la barra lateral: ya se pueden arrastrar para ponerlas en el orden que prefieras, en vez de quedar fijas por fecha de actividad.
  • Varios arreglos de fluidez en la interfaz:
    • El ecualizador ya no se interrumpe a mitad de arrastre si mueves una banda más de un instante sin soltar.
    • La búsqueda rápida ya no se cierra sola justo después de volver a hacer clic en ella.
    • Cambiar el orden de la biblioteca rápido, o borrar/renombrar playlists seguidas, ya no deja restos de datos viejos en pantalla.
  • Mejor emparejamiento con YouTube en colaboraciones: cuando el vídeo está en el canal del segundo artista de una canción (frecuente con productores y DJs), ahora también cuenta como señal válida, en vez de mirar solo al primero de la lista de Spotify.

Nota de compatibilidad (Linux)

Compilado en este equipo con una toolchain que enlaza contra glibc 2.39. No arrancará en distribuciones con una libc más antigua (Ubuntu 22.04, Debian 12, RHEL 9 y derivadas). Si tu distribución es más antigua, compílalo tú mismo con cargo tauri build.

Sin binarios de Windows en este release: no hay entorno de compilación para Windows disponible desde aquí.

v1.2.6

Choose a tag to compare

@Eldur4023 Eldur4023 released this 09 Sep 14:35

Novedades

  • Ajustes en pestañas: la pantalla de Ajustes era una sola página larga de siete secciones seguidas; ahora son pestañas (General, Audio, Descargas, Integraciones, Estadísticas, Almacenamiento).
  • Estadísticas de escucha, pestaña nueva: tiempo total escuchado, reproducciones, canciones distintas, y los rankings de canciones y artistas más escuchados por tiempo real acumulado.
  • Importar canciones propias: en Ajustes, para que convivan con lo descargado (con deduplicación de artista y álbum entre pistas del mismo disco).
  • Progreso de descarga visible: porcentaje en vivo mientras se descarga, e icono persistente en lo ya descargado.
  • Gestión individual por pista: borrar la canción por completo, resetear sus metadatos a "sin identificar", o reasignarlos buscando en el proveedor activo y eligiendo entre varios candidatos.

Nota de compatibilidad (Linux)

Este build se compiló con glibc 2.39. Funciona en Ubuntu 24.04+, Debian 13+ y distribuciones comparables o más recientes; no arrancará en Ubuntu 22.04, Debian 12 ni RHEL 9. Si necesitas esa compatibilidad, compílalo tú sobre una base más antigua siguiendo CONTRIBUTING.md.

v1.2.5

Choose a tag to compare

@Eldur4023 Eldur4023 released this 06 Sep 19:26

Novedades

  • Importar canciones propias: en Ajustes, para que convivan con lo descargado (con deduplicación de artista y álbum entre pistas del mismo disco).
  • Progreso de descarga visible: porcentaje en vivo mientras se descarga, e icono persistente en lo ya descargado — revierte la regla anterior de "descargas invisibles".
  • Gestión individual por pista: borrar la canción por completo, resetear sus metadatos a "sin identificar", o reasignarlos buscando en el proveedor activo y eligiendo entre varios candidatos.

Nota de compatibilidad (Linux)

Este build se compiló con glibc 2.39, más reciente que builds anteriores (2.34). Funciona en Ubuntu 24.04+, Debian 13+ y distribuciones comparables o más recientes; no arrancará en Ubuntu 22.04, Debian 12 ni RHEL 9. Si necesitas esa compatibilidad, compílalo tú sobre una base más antigua siguiendo CONTRIBUTING.md.

🤖 Generated with Claude Code

v1.2.4

Choose a tag to compare

@Eldur4023 Eldur4023 released this 03 Sep 22:55

Se arregla

Tres roturas de layout en Linux que solo aparecían con la ventana sin maximizar, todas relacionadas con cómo WebKitGTK calcula tamaños en el primer pintado o por debajo de ciertos anchos:

  • Las carátulas de álbumes, canciones y playlists (sin portada propia) no cargaban. Usaban loading="lazy"; con la ventana sin maximizar, WebKitGTK calculaba mal el contenedor en el primer pintado y el load de la imagen no llegaba a dispararse nunca.
  • El ecualizador se dibujaba horizontal en vez de vertical. Orientaba el slider con writing-mode y el atributo orient, que es propietario de Firefox; WebKit necesita -webkit-appearance: slider-vertical para dibujar el widget nativo en vertical.
  • Las miniaturas de las playlists desaparecían de la barra lateral en ventanas de menos de 1000px de ancho. La media query que colapsa la barra a modo iconos ocultaba todos los <span>, incluida la miniatura (que también es un <span>) — el mismo bug que el colapso manual de la barra ya tenía resuelto, pero sin la misma excepción.

Nota sobre esta versión

Compilada en Linux Mint 22.3 (glibc 2.39): los binarios de Linux están listos, pero los de Windows (.exe/.msi) todavía no — llegarán en un release aparte.