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, 10 de marzo de 2025

Cómo corregir el "error" del 9 de marzo 2025 de chromecast

🚨 ¡Caos en Chromecast! 🚨

Un certificado caducado ha dejado a los Chromecast y Chromecast Audios de 2ª generación a oscuras.

Google está trabajando en una solución. ¡Evita los reseteos de fábrica! 🔧

Descarga e instala la aplicación Activity Manager, es de código abierto.

https://f-droid.org/es/packages/com.activitymanager/

O directamente desde el sitio del programador:

Autor: Yuriy Mysochenko

sitio: https://github.com/sdex/ActivityManager


Inicie la aplicación y seleccione “Intent launcher” en el menú desplegable de la esquina superior derecha.

Toca el ícono de edición junto a "Acción" y pega:

Este es el texto que debes copiar y pegar:


 
com.google.android.gms.cast.settings.CastSettingsCollapsingDebugAction

En Android 11 y versiones anteriores:


 
com.google.android.gms.cast.settings.CastSettingsDebugAction

Deja todos los demás campos en blanco.

Toque la marca de verificación en la parte inferior derecha.

En el panel de configuración que aparece, desplácese hacia abajo hasta "Conexión" y habilite "Omitir autenticación del dispositivo".

Para los que hayan reseteado de fábrica su unidad tienen que hacer también este paso previo:


Esto debería solucionar el problema de la transmisión desde aplicaciones y reparar parcialmente la aplicación Google Home.

"Activity Manager" es una herramienta poderosa para usuarios técnicos o entusiastas de Android que quieren un mayor control sobre sus aplicaciones, especialmente si tienen conocimientos de cómo funcionan las actividades y los intents en el sistema operativo.

Requiere Android 5.0 o superior y, para algunas funciones (como lanzar actividades no exportadas), necesitas permisos de root.

Es ideal para personalizar la experiencia en el dispositivo o para quienes desean experimentar con las entrañas de las apps instaladas.

Activity Manager

Google Home y Chromecast dependen de la autenticación para asegurar que solo usuarios autorizados en la misma red Wi-Fi puedan controlarlos.

Esencialmente, esta solución le dice a su dispositivo Android:

"No verifique si este Chromecast es genuino antes de conectarse a él"

Si bien esto normalmente sería una preocupación de seguridad (ya que la autenticación ayuda a evitar que se conecte a dispositivos maliciosos), en esta situación específica es una solución temporal razonable ya que sabe que su Chromecast es legítimo:

Solo tiene un certificado caducado.

¿Cómo solucionará Google el problema del Chromecast con certificados vencidos?

Dado que el problema está relacionado con un certificado vencido que afecta la comunicación entre el Chromecast y los servidores de Google, lo más lógico es que la reparación llegue directamente desde el lado de la compañía. Pero, ¿cómo funcionará esto exactamente?

Una solución desde el backend de Google

La clave está en el backend de Google. Todo apunta a que la reparación vendrá como una actualización en sus servidores, sin que los usuarios tengamos que mover un dedo. Esto implicaría que Google renueve o reemplace el certificado vencido, permitiendo que los dispositivos Chromecast (especialmente los modelos afectados como el 2nd Gen y Chromecast Audio) se autentiquen nuevamente con los servidores. Lo mejor de todo: no hará falta que actualicemos nada manualmente.

Sin dependencia de la app Google Home ni del firmware

Este tipo de solución tiene una ventaja clara: no depende de una actualización de la app Google Home ni de un firmware que el Chromecast descargue por internet. ¿Por qué? Porque el fallo está en la validación del lado del servidor, no en el software que corre localmente en el dispositivo o en la aplicación que usamos para controlarlo. Así que, aunque siempre es buena idea mantener nuestras apps al día, en este caso no será el canal para resolver el inconveniente.

Post by @drcalambre@mastodon.social
View on Mastodon


Sobre el autor del tutorial en inglés

El autor del tutorial en inglés en el cual está basada esta guía en español es un programador llamado Maciej Mensfeld: Creador de Mend Supply Chain Defender (parte del equipo de seguridad de RubyGems) https://github.com/mensfeld/. También tiene una cuenta en Twitter (X): https://x.com/maciejmensfeld.

Perfil de Maciej Mensfeld

Maciej Mensfeld es un profesional destacado en el ámbito de la seguridad de la cadena de suministro de software y el desarrollo de software de código abierto (open source). Es el creador de Mend Supply Chain Defender, una solución diseñada para proteger a las empresas contra amenazas y ataques en la cadena de suministro de software, detectando y bloqueando paquetes maliciosos antes de que lleguen al código base de los desarrolladores.

Mensfeld cuenta con más de 16 años de experiencia en el diseño y construcción de sistemas enfocados en rendimiento, escalabilidad y calidad. Antes de su rol actual, fue arquitecto de software principal en Castle.io y se unió a Mend (anteriormente conocida como WhiteSource) tras la adquisición de su empresa de seguridad de la cadena de suministro, originalmente llamada "Diffend". Actualmente, ocupa el cargo de Director de Gestión de Productos en Mend, donde lidera iniciativas relacionadas con la seguridad de aplicaciones y el uso seguro de componentes de código abierto.

Contribuciones a la comunidad de código abierto

Además de su trabajo en Mend Supply Chain Defender, Mensfeld es un activo colaborador en la comunidad de código abierto. Es el autor del framework Karafka (basado en Ruby), contribuye al mantenimiento de varios proyectos como las bibliotecas dry-rb y el proyecto Bundler-Security, y forma parte del equipo de seguridad de RubyGems. Su interés particular se centra en la calidad del código y la seguridad de aplicaciones basadas en Ruby.

Trabajo educativo

Mensfeld también es reconocido por su trabajo educativo, enseñando a otros cómo utilizar software de código abierto de manera segura y cómo construir soluciones utilizando tecnologías como Ruby, Rails y Kafka. Su experiencia y contribuciones lo han posicionado como una figura influyente en la intersección entre desarrollo de software, seguridad y la gestión de riesgos en la cadena de suministro tecnológica.

Yuriy Mysochenko: Desarrollador de "Activity Manager"

Yuriy Mysochenko (sdex): Es el desarrollador de una aplicación llamada "Activity Manager", disponible en GitHub y F-Droid. Esta app permite descubrir actividades de aplicaciones instaladas, ejecutarlas y crear accesos directos, incluyendo soporte para actividades no exportadas con permisos de root. Mysochenko, un desarrollador ucraniano, es conocido por sus contribuciones al desarrollo de Android y herramientas de código abierto.

Perfil de Yuriy Mysochenko

Yuriy Mysochenko es un desarrollador de software, conocido principalmente por su trabajo en aplicaciones para Android. Es un profesional que ha contribuido a la comunidad tecnológica, destacándose como desarrollador independiente (freelancer) y autor de contenido técnico. Según información disponible, Mysochenko tiene un perfil activo en plataformas como GitHub (bajo el usuario "sdex"), donde comparte proyectos de código abierto, y en Medium, donde escribe sobre desarrollo de Android. También ha creado aplicaciones como "Device ID Changer [ROOT]", una herramienta que permite modificar el ANDROID_ID en dispositivos con permisos de root.