martes, 25 de marzo de 2025

Instalación de la última versión de YAD (Yet Another Dialog) en antiX

Instalación de la última versión de YAD (Yet Another Dialog) en antiX

¿Qué es YAD?

YAD (Yet Another Dialog) es una herramienta de código abierto que permite crear interfaces gráficas de usuario (GUI) desde la terminal en sistemas Linux. Es una bifurcación mejorada de Zenity, diseñada para ofrecer mayor flexibilidad y opciones avanzadas, como diálogos HTML, soporte para Webkit, y vistas de código fuente con GtkSourceView. Desarrollada por Victor Ananjevsky, YAD es ideal para usuarios y desarrolladores que buscan automatizar tareas o crear scripts interactivos sin necesidad de programar aplicaciones completas.

Watermark (Marcas de Agua con YAD)

El paquete YAD se encuentra en algunos repositorios de Linux; sin embargo, todas son versiones anteriores. Actualmente (25 de marzo de 2025), "antiX-23.1_x64-base Arditi del Popolo 21 February 2024" aún mantiene la versión 0.40.0 de YAD (sin la opción webkit/--html), mientras que la versión actual de YAD del autor (Victor Ananjevsky) es la Release 14.1. Por lo tanto, en el caso de antiX, se necesita compilar YAD (la opción más segura) en el equipo.

Obtener el código fuente

Solo debe obtener el código fuente de YAD del repositorio oficial de su autor, que se encuentra en Github:

https://github.com/v1cont/yad/releases

A continuación, sigue estos pasos en la terminal:

  • Accede como root:
  • (Ingresa tu contraseña)

    sudo -s
  • Instala las dependencias necesarias:
  • 
    
    apt install automake build-essential intltool libglib2.0-dev libgtk-3-dev gstreamer1.0-libav gstreamer1.0-plugins-good gstreamer1.0-plugins-bad libwebkit2gtk-4.0-dev libgtksourceview-3.0-1 libgtksourceview-3.0-common libgtksourceview-3.0-dev gtk-update-icon-cache
  • Sal del modo root:
  • exit
  • Dirígete a una carpeta para descargar el código fuente (ajusta antix1 por tu usuario):
  • (Si no existe la carpeta "src", créala primero con mkdir src)

    cd /home/antix1/src
  • Clona el repositorio de YAD:
  • 
    
    git clone https://github.com/v1cont/yad.git yad-dialog-code
  • Entra en la carpeta del código:
  • cd yad-dialog-code
  • Prepara el entorno para la compilación:
  • autoreconf -ivf && intltoolize
  • Configura las opciones de compilación (incluye soporte para HTML y SourceView):
  • ./configure --enable-html --enable-sourceview
    make

Instalar YAD (como root)

Ahora, instala YAD con los siguientes comandos:

  • Vuelve a entrar como root:
  • sudo -s

    (Ingresa tu contraseña)

  • Compila e instala YAD:
  • make install
  • Ejecuta manualmente la actualización del caché de íconos:
  • gtk-update-icon-cache

¡HECHO! - Prueba YAD

Para verificar que todo funcionó correctamente, ejecuta en la terminal:

yad --about

Deberías ver algo como esto:

YAD
14.1
Built with Webkit
Built with GtkSourceView
Using GTK+ 3.24.38

¡Listo! Ahora tienes la versión más reciente de YAD instalada en tu sistema antiX.

¿Qué pasa con la versión 0.40 de YAD instalada por antiX?

En antiX, la versión 0.40 de YAD viene preinstalada desde los repositorios de Debian y es una dependencia de herramientas como control-centre-antix o apt-notifier. Si intentas eliminarla con sudo apt remove yad, también se desinstalarán estos paquetes, lo cual no es deseado.

Para evitar que una actualización futura de apt reemplace la 14.1 por la 0.40, bloquea el paquete yad en el gestor de paquetes:

Convivencia de dos versiones de YAD: 0.40 y 14.1

Tras instalar la versión 14.1 con sudo make install, esta se coloca en /usr/local/bin/yad, mientras que la versión 0.40 de Debian permanece en /usr/bin/yad. Al ejecutar:

which yad

Si obtienes /usr/local/bin/yad, significa que la 14.1 tiene prioridad gracias al orden del $PATH. Sin embargo, para evitar confusiones o conflictos futuros, te recomiendo:

  1. Eliminar la versión antigua manualmente (sin afectar dependencias):
  2. sudo rm /usr/bin/yad
  3. Bloquear actualizaciones de apt para yad:
  4. sudo apt-mark hold yad

Así, solo la versión 14.1 quedará operativa, y apt no la sobrescribirá con la 0.40 en futuras actualizaciones. Verifica con yad --about que sigues usando la 14.1.

Con esto, tu versión compilada (14.1) protegida y operativa hasta que decidas actualizarla manualmente de nuevo.

Implicaciones del soporte para WebKit en Yad

WebKit es un motor de renderizado de código abierto utilizado por navegadores como Safari y otros. Su integración en Yad implica que ahora se pueden mostrar contenidos web (HTML, CSS, JavaScript) dentro de diálogos gráficos generados por Yad. Esto abre las puertas a interfaces más dinámicas y modernas, ya que no está limitado a widgets básicos de GTK, sino que puede aprovechar la potencia del renderizado web.

  • Visualización de contenido web: Los diálogos de Yad pueden mostrar páginas web o fragmentos de HTML renderizados en tiempo real, lo que es útil para mostrar documentación, formularios interactivos o vistas previas.
  • Interactividad mejorada: Al soportar JavaScript mediante WebKit, Yad puede ejecutar scripts dentro de los diálogos, permitiendo interacciones dinámicas sin necesidad de herramientas externas.
  • Compatibilidad multiplataforma: WebKit es altamente portable, lo que asegura que los diálogos con contenido web funcionen consistentemente en diferentes sistemas operativos compatibles con Yad (como Linux).

Ejemplos prácticos de uso

Mostrar una página web en un diálogo de Yad con WebKit

Supongamos que quieres mostrar una documentación en línea o un formulario web en un diálogo. Podrías usar WebKit para renderizar contenido HTML directamente:



yad --title="Julio Alberto Lascano (@drcalambre@mastodon.social) - Mastodon" --html --uri="https://mastodon.social/@drcalambre" --width=1024 --height=900

Historial de mejoras de YAD

Versión 14.1

  • Corrección de la compilación con versiones antiguas de glib.

Versión 14.0

  • Añadida la opción --workdir para cambiar el directorio de trabajo actual.
  • Añadida la opción --window-type.
  • Añadido el zoom en el diálogo HTML.
  • Actualizaciones en la página de manual.
  • Añadida la opción de configuración --disable-deprecated para excluir funciones obsoletas en tiempo de compilación.
  • Posibilidad de compilar contra webkit2gtk-4.1 o webkit2gtk-4.0.
  • Limpieza de código.

Versión 13.0

  • Ampliado el comportamiento de --in-place en el diálogo de información de texto.
  • Mejora en la apariencia de las etiquetas.
  • Mejora en la colocación de la ventana de YAD.
  • La opción --homogeneous también afecta a las columnas del formulario.
  • Mejora en la ejecución de comandos externos.
  • Corrección del campo de interruptor en el diálogo de formulario.
  • Añadida la alineación de contenido en el diálogo de lista.
  • Carga de CSS personalizado desde una cadena arbitraria además de un archivo.
  • Añadida traducción al georgiano.
  • Añadido el directorio debian/.
  • Correcciones en la página de manual.

Versión 12.3

  • Corregida la configuración de propiedades de WebKit y la hoja de estilo definida por el usuario en el diálogo HTML.
  • Mejora en el manejo de entrada estándar (stdin) para el diálogo HTML.
  • Actualización de la nota de derechos de autor.

Versión 12.2

  • Añadida la opción --auto-scroll como alias de --tail.
  • Corregido el salto a anclajes en modo simple del diálogo HTML.
  • Corregido el análisis de datos desde entrada estándar para el modo árbol del diálogo de lista.
  • Corregida la página de manual.
  • Limpieza de código.

Versión 12.1

  • Corregidos algunos errores tipográficos.
  • Corregidos los permisos en la creación de miniaturas.
  • Mejora en la cadena del intérprete en el script yad-settings.

Versión 12.0

  • Añadida la capacidad de cargar varias imágenes en el diálogo de imágenes.
  • Añadido un selector de color al diálogo de color y a yad-tools.
  • Añadida la opción --line al diálogo de información de texto.
  • Mejora en la detección de resaltado de sintaxis en el diálogo de información de texto.
  • Añadida la opción --mime al modo de íconos en yad-tools.
  • Añadido el tipo de campo interruptor en el diálogo de formulario (gracias a Misko <mpsrbija@gmail.com>).
  • Uso de marcado Pango para campos de texto multilínea en el diálogo de formulario.

Versión 11.1

  • Corrección del análisis de entrada para el ícono de notificación.
  • Corrección del análisis de archivos de escritorio para el diálogo de íconos.
  • Corrección del manejo de enlaces en el modo navegador del diálogo HTML.
  • Mejora en la configuración de imágenes definidas por el usuario en el diálogo "acerca de".

Versión 11.0

  • Eliminada la traducción al ruso "DROP K HUJAM".
  • Para otros cambios, consulta el registro de cambios en git.

Versión 10.1

  • No hacer las filas homogéneas cuando el formulario tiene un campo de texto.

Versión 10.0

  • Muchas mejoras en el diálogo de información de texto:
    • Usa fuente monoespaciada por defecto.
    • Añadida barra de búsqueda en lugar de campo emergente (puede desactivarse).
    • Añadidas más capacidades de GtkSourceView (usa --help-source para ver la lista completa).
    • Añadida edición en el lugar y operaciones de archivo mediante menú emergente o atajos de teclado.
  • Añadida barra de búsqueda al diálogo HTML (puede desactivarse).
  • Añadidos atajos Ctrl+O y Ctrl+Q al diálogo HTML.
  • Añadida la opción --f1-action que ejecuta un comando al presionar F1.
  • Añadida la opción --changed-action al diálogo de formulario para controlar estados de campos como casillas o listas desplegables.
  • Corregida la compilación con musl.
  • Añadido el script yad-settings, una interfaz basada en YAD para editar configuraciones.
  • Forzado el uso de íconos pequeños en el diálogo de lista si el ícono no es un nombre de archivo real.
  • Corregido el ajuste de imágenes en el diálogo de imágenes.

Versión 9.3

  • Corrección del bloqueo de la ventana principal con --row-action en el diálogo de lista o @cmd en diálogos de formulario.

Versión 9.2

  • Algunas correcciones en el menú de listas editables.
  • Añadidos dos elementos adicionales al menú de listas editables: "mover arriba" y "mover abajo".
  • Uso de comillas dobles para argumentos en el comando intérprete por defecto.

Versión 9.1

  • Corrección de la opción --version.

Versión 9.0

  • Implementado un diálogo --about personalizable por el usuario.
  • Corrección del paso de foco a hijos en diálogos de cuaderno y paneles.
  • Añadido el modo --stack al diálogo de cuaderno.
  • Añadida la opción --focused al diálogo de paneles para seleccionar el panel enfocado.
  • No expandir verticalmente la entrada en el diálogo de entrada.
  • Corrección de la posición del separador en el diálogo de paneles.
  • Añadida la opción --wk-prop al diálogo HTML y habilitada la salida JS por defecto.
  • Añadida la utilidad yad-tools en lugar de pfd. Ahora pfd es un script envolvente (por compatibilidad).
  • Añadida la opción --align-buttons para alinear etiquetas en campos de botones en el diálogo de formulario.

Versión 8.0

  • Añadida la opción --text-width para un ajuste más flexible de cadenas largas en el texto del diálogo.
  • Manejo de URIs en el texto del diálogo.
  • Añadida la opción --css (marcada --gtkrc como obsoleta).
  • Muchas correcciones de errores.

Agradecimiento especial a Dmitry Butskoy por numerosas contribuciones.

Versión 7.3

  • Corrección del análisis del campo separador en el diálogo de formulario (gracias a Dmitry Butskoy).
  • Corrección del manejo del tamaño definido por el usuario con los argumentos --width y --height.

Versión 7.2

  • Corrección del análisis de nombres de campos en el diálogo de formulario.
  • Corrección del manejador de URI en el diálogo HTML.
  • Añadido el esquema file: para la expresión regular de URI en el diálogo de información de texto.

Versión 7.1

  • Corrección del análisis de nombres de campos en el diálogo de formulario.

Versión 7.0

  • Añadida la opción --enforce-step al diálogo de escala.
  • Añadidos tooltips y marcado a los encabezados de columnas en el diálogo de lista.
  • Añadida definición de fuente estilo Pango al diálogo de información de texto.
  • Añadida la opción --large-preview para un mejor manejo de miniaturas.
  • Añadida la opción --interactive al explorador de íconos para imprimir íconos seleccionados en stdout.
  • Añadido un manejador de URI personalizado (opción --uri-handler).
  • Mejora en el algoritmo de eliminación de hijos en diálogos de cuaderno y paneles.
  • Añadidos tooltips para campos de formulario.
  • Corrección de la columna :tip en el diálogo de lista.
  • Correcciones y limpiezas en funciones misceláneas.
  • Corrección del análisis de rangos numéricos en el diálogo de formulario.
  • Correcciones en la página de manual.
  • Compilación del explorador de íconos por defecto.

Versión 6.0

  • Añadida la opción --use-interp. Esta característica reduce el uso de comillas en argumentos de comandos.
  • Añadido campo de enlace al diálogo --form.
  • Opciones personalizables devueltas al diálogo --text-info.
  • Corrección del comportamiento de YAD fuera de X11 (agradecimiento especial a Michael Weiser).
  • Mejora en la colocación de la ventana del diálogo.
  • Actualización de traducciones.

Versión 5.0

  • Añadido modo de depuración, activable mediante gsettings. En este modo, YAD advierte sobre opciones obsoletas o inexistentes.
  • Añadida la opción de configuración --enable-standalone para compilar YAD sin soporte de gsettings.
  • Corrección de la expansión de nodos de árbol para datos de entrada estándar.
  • Algunas correcciones en el diálogo de impresión.
  • Corrección de la opción --uri-handler en el diálogo HTML.
  • Corrección del comportamiento incorrecto de cierre automático en el diálogo de progreso.

Versión 4.1

  • Corrección del manejo de datos de árbol desde entrada estándar en el diálogo de lista.

Versión 4.0

  • La fuente puede seleccionarse con doble clic en el diálogo de fuentes.
  • Añadido diálogo selector de aplicaciones y campo selector de aplicaciones en el diálogo de formulario.
  • Añadido modo árbol en el diálogo de lista.
  • Las funciones de diálogo multi-progreso se fusionaron con el diálogo de progreso. El diálogo multi-progreso separado ya no existe.
  • Habilitado el marcado en la ventana de registro de progreso.
  • Corrección de la salida de valores de color en notación hexadecimal.
  • Eliminados los alias *-selection para los diálogos --file, --color y --font.

Versión 3.0

  • Añadidos manejadores definidos por el usuario para todas las acciones de edición en el diálogo de lista. El parámetro --add-action renombrado a --row-action.
  • Corrección de la carga de texto desde archivo en el diálogo de información de texto.
  • Corrección de los nombres de claves en gsettings.

Versión 2.0

  • Migración a gsettings desde archivo de configuración.
  • Añadida la opción --keep-icon-size.
  • El explorador de íconos muestra solo íconos regulares por defecto, modificable desde la línea de comandos.
  • Corrección de fallo de segmentación en el diálogo de información de texto al especificar un archivo vacío.
  • Corrección de la selección inicial en etiquetas seleccionables.

Versión 1.0

  • Eliminado completamente el soporte para gtk+-2.0.
  • Versión mínima requerida de gtk+ aumentada a 3.22.0.
  • Añadida la opción --formatted al diálogo de información de texto para mostrar texto con marcado Pango.
  • Añadida la opción --expand al diálogo de pestañas.
  • El protocolo por defecto para el widget HTML es ahora HTTPS.
  • Los elementos de stock de GTK ya no se usan; en su lugar, hay nombres predefinidos por YAD (detalles en la página de manual).
  • Añadida la opción --bool-fmt para diferentes formas de salida de valores booleanos, reconocidas automáticamente en la entrada.
  • La librería gspell ahora se usa para la corrección ortográfica.
  • El ícono de bandeja es opcional ahora; este diálogo está habilitado por defecto pero puede desactivarse con ./configure --disable-tray.
  • Eliminadas las opciones --fore, --back y --font para el diálogo de información de texto; esta funcionalidad puede lograrse mediante CSS personalizado.

Versión 0.42.0

  • Añadida la utilidad pfd para la transformación de nombres de fuentes en scripts.
  • Añadida la acción 'menú' para el ícono de notificación.
  • Añadida la opción --icon-size al diálogo de íconos.
  • Añadida la opción --simple-tips al diálogo de lista.
  • Correcciones en la configuración del tamaño de la ventana.
  • Mejora en la escalabilidad del tamaño en la salida separada del diálogo de fuentes.