Mostrando las entradas con la etiqueta yad. Mostrar todas las entradas
Mostrando las entradas con la etiqueta yad. Mostrar todas las entradas

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.

lunes, 17 de junio de 2024

Introducción a las Interfaces Gráficas y YAD (¿Como empezó todo?)

Introducción a las Interfaces Gráficas y YAD

Las interfaces gráficas y YAD (Yet Another Dialog). 

¿Qué es una Interfaz Gráfica?

Imagina que estás en la cocina y necesitas hacer una receta que nunca has preparado antes. Tienes todos los ingredientes y utensilios, pero si no tienes una receta clara y fácil de seguir, puede ser muy complicado. Lo mismo ocurre cuando usamos computadoras y dispositivos electrónicos. Una interfaz gráfica es como esa receta clara y visual que nos permite interactuar con una computadora de manera sencilla y comprensible.

La Evolución de las Interacciones con las Computadoras

Antes de las interfaces gráficas, las personas interactuaban con las computadoras usando líneas de texto. Imagina tener que escribir comandos complicados para abrir una aplicación o archivo. Esto era difícil y poco intuitivo para la mayoría de las personas.

Antes de QDOS (Quick and Dirty Operating System), que fue posteriormente conocido como 
86-DOS, el sistema operativo más influyente y ampliamente utilizado en las microcomputadoras CP/M (Control Program for Microcomputers). Gary Kildall, fundador de Digital Research Inc., desarrolló CP/M en 1974.

Luego, llegaron las interfaces gráficas, que usan imágenes, íconos y menús desplegables que podemos ver y con los que podemos interactuar utilizando un ratón o nuestros dedos. Esto hizo que el uso de las computadoras fuera mucho más accesible y fácil para todos.

La primera interfaz gráfica de usuario (GUI) ampliamente reconocida fue desarrollada por el Xerox Palo Alto Research Center (PARC) en la década de 1970.

Ejemplos Cotidianos
  • El Escritorio de una Computadora: Al encender tu computadora, lo primero que ves es el escritorio, que suele tener íconos que representan programas, archivos y carpetas. Puedes hacer clic en estos íconos para abrirlos, lo cual es mucho más intuitivo que escribir comandos.
  • Aplicaciones en tu Teléfono: Cuando usas tu teléfono, ves muchas aplicaciones con íconos coloridos. Tocando estos íconos, abres las aplicaciones. Esto es una interfaz gráfica en acción.
  • Cajeros Automáticos (ATM): Cuando usas un cajero automático, ves opciones en la pantalla como "Retirar dinero", "Consultar saldo", etc. Puedes tocar estas opciones para realizar tus operaciones. Esto es mucho más fácil que escribir comandos para obtener dinero.

Componentes de una Interfaz Gráfica

  • Ventanas: Son áreas en la pantalla que muestran información y permiten interactuar con diferentes programas.
  • Íconos: Pequeñas imágenes que representan programas, archivos o funciones.
  • Botones: Áreas que se pueden hacer clic para realizar acciones, como "Aceptar" o "Cancelar".
  • Menús: Listas de opciones o comandos que se despliegan cuando hacemos clic en ellos.

Beneficios de las Interfaces Gráficas

  • Facilidad de Uso: Permiten a personas sin conocimientos técnicos usar computadoras y dispositivos electrónicos.
  • Accesibilidad: Hacen que la tecnología sea accesible para personas de todas las edades y habilidades.
  • Eficiencia: Facilitan la realización de tareas comunes de manera rápida y sencilla.

¿Qué es YAD?

YAD (Yet Another Dialog) es una herramienta que permite crear cuadros de diálogo en sistemas Linux. Es muy útil para los desarrolladores y usuarios avanzados que quieren agregar interfaces gráficas simples a sus scripts de shell. Con YAD, puedes crear ventanas con botones, cuadros de texto, listas desplegables y más, sin necesidad de conocimientos profundos de programación.

¿Cómo Funciona YAD?

YAD funciona mediante comandos que se escriben en la terminal. Estos comandos indican a YAD qué tipo de cuadro de diálogo debe mostrar y cómo debe comportarse. Por ejemplo, puedes crear un cuadro de diálogo para que el usuario seleccione un archivo, o para mostrar un mensaje de alerta.

Ejemplos de Uso de YAD

  • Cuadro de Diálogo de Selección de Archivo:
  • yad --file

    Este comando abre un cuadro de diálogo que permite al usuario seleccionar un archivo de su sistema.

  • Mensaje de Alerta:
  • yad --info --text="Este es un mensaje de alerta"

    Este comando muestra una ventana con un mensaje de alerta.

  • Formulario de Entrada:
  • yad --form --field="Nombre" --field="Edad"

    Este comando abre un formulario donde el usuario puede ingresar su nombre y edad.

Conclusión

Las interfaces gráficas han revolucionado la manera en que interactuamos con las computadoras y dispositivos electrónicos, haciendo la tecnología más accesible y fácil de usar. Herramientas como YAD permiten a los usuarios y desarrolladores crear estas interfaces de manera rápida y sencilla, integrando cuadros de diálogo en scripts de shell sin necesidad de conocimientos avanzados.

Espero que esta explicación les haya dado una buena idea de qué son las interfaces gráficas y cómo YAD puede ser utilizado para crear cuadros de diálogo en Linux.