3 puntos por GN⁺ 2025-10-03 | 2 comentarios | Compartir por WhatsApp
  • Un nuevo enfoque basado en Firefox que convierte al navegador en una herramienta programable mediante un archivo de configuración en TypeScript
  • Permite implementar funciones ilimitadas como la personalización de la UI del navegador o la invocación de procesos externos sin las restricciones de seguridad de las extensiones web
  • Ofrece un sistema de modos y mapeo de teclas estilo Vim para una navegación completamente centrada en el teclado, sin usar mouse
  • Incluye por defecto funciones pensadas para desarrolladores como modo hint, buscador difuso de pestañas y REPL, y ya fue validado con uso real durante 6 meses
  • Versión alfa disponible para descargar en macOS y Linux, con compatibilidad total con las extensiones y flujos de trabajo existentes de Firefox

Antecedentes del desarrollo de Glide

  • El desarrollador usaba la extensión Tridactyl en Firefox y se encontró con el problema de las limitaciones de seguridad fundamentales de las extensiones web
    • En ciertos sitios como addons.mozilla.org, la extensión se desactiva por completo y ningún mapeo de teclas funciona
    • También surgía el problema de que Tridactyl no funcionaba en una página de inicio personalizada
  • Estas limitaciones forman parte del modelo de seguridad esencial del navegador para proteger al usuario de extensiones maliciosas, pero al mismo tiempo restringen mucho la extensibilidad
  • Al reconocer la necesidad de un navegador verdaderamente personalizable que permitiera desde modificar la propia UI del navegador hasta invocar herramientas externas sin restricciones, comenzó el desarrollo de Glide

Diferenciadores clave de Glide

  • Control total basado en un archivo de configuración en TypeScript
    • Permite usar APIs y funciones que una extensión web nunca podría ofrecer
    • Como el usuario final escribe directamente el archivo de configuración, no hace falta imponer restricciones de seguridad, lo que da lugar a un modelo de seguridad fundamentalmente distinto
  • Cosas que se pueden hacer desde el archivo de configuración
    • Definir mapeos de teclas personalizados
    • Acceder a la API de extensiones web
    • Ejecutar procesos externos arbitrarios
    • Definir macros, entre otras cosas
  • Está construido sobre Firefox, así que las extensiones y los flujos de trabajo existentes de Firefox siguen funcionando tal cual

Ejemplos prácticos de configuración

Clonar automáticamente un repositorio de GitHub y abrir el editor

glide.keymaps.set("normal", "gC", async () => {  
  // extract the owner and repo from a url like 'https://github.com/glide-browser/glide'  
  const [owner, repo] = glide.ctx.url.pathname.split("/").slice(1, 3);  
  if (!owner || !repo) throw new Error("current URL is not a github repo");  
  // * clone the current github repo to ~/github.com/$owner/$repo  
  // * start kitty with neovim open at the cloned repo  
  const repo_path = glide.path.join(glide.path.home_dir, "github.com", owner, repo);  
  await glide.process.execute("gh", ["repo", "clone", glide.ctx.url, repo_path]);  
  await glide.process.execute("kitty", ["-d", repo_path, "nvim"], { cwd: repo_path });  
}, { description: "open the GitHub repo in the focused tab in Neovim" });  
  • Al presionar la tecla gC en la página de un repositorio de GitHub, se realizan automáticamente las siguientes acciones
    • Extraer del URL actual el propietario y el nombre del repositorio
    • Clonar el repositorio en la ruta ~/github.com/$owner/$repo
    • Abrir neovim en la terminal kitty y moverse al repositorio clonado
  • Se ahorran varios segundos en cada tarea, y añadir la configuración toma apenas unos minutos

Cambiar rápidamente a la pestaña del calendario

glide.keymaps.set("normal", "gc", async () => {  
  const tab = await glide.tabs.get_first({ url: "https://calendar.google.com/*"; });  
  assert(tab && tab.id);  
  await browser.tabs.update(tab.id, { active: true });  
}, { description: "[g]o to [c]alendar.google.com" });  
  • Con la tecla gc se puede cambiar al instante a la pestaña de Google Calendar

Sistema de modos

  • Toma prestado el concepto de modos de Vim, de modo que todos los mapeos de teclas están ligados a un modo específico
  • Cambio automático de modo según la interacción con el navegador
    • Modo normal: modo predeterminado
    • Modo insert: cambia automáticamente al hacer clic en un elemento <input>, para que los mapeos de teclas no interfieran con la escritura de texto
    • Modo ignore: se activa con Shift+Escape y se usa cuando un sitio web entra en conflicto con los mapeos de teclas

Navegación basada en teclado

Modo hint

  • Presiona la tecla f para entrar en modo hint
  • Se muestran overlays con etiquetas de texto sobre todos los elementos clicables (links, botones, etc.)
  • Al escribir la etiqueta, se enfoca y se hace clic en el elemento correspondiente
  • Permite manipular por completo una página web sin usar mouse

Funciones preferidas personalmente

  • gI: enfoca automáticamente el elemento de entrada visible más grande de la página; se siente casi mágico
  • <space><space>: ejecuta el buscador difuso de pestañas para encontrar fácilmente una pestaña perdida
  • <c-i> y <c-o>: esenciales para la navegación por pestañas previas
  • :repl: permite probar rápidamente cambios en la configuración
  • Modo hint: útil cuando no quieres extender la mano hacia el mouse
  • UI estilo which-key: una interfaz que ayuda a recordar distintos mapeos de teclas

Estado actual y disponibilidad

  • En uso diario desde hace aproximadamente 6 meses
  • Sigue en una fase alfa temprana, pero ya se puede descargar para macOS y Linux
  • Se recomienda revisar el tutorial con el comando :tutor (todavía no está terminado)
  • Los usuarios de Linux aún deben descomprimir y configurar manualmente, ya que todavía no está en repositorios de paquetes
  • Se pueden ver más ejemplos en el cookbook y en los dotfiles del desarrollador
  • Como es una versión alfa, todavía no están implementadas todas las APIs, pero el objetivo principal es ofrecer control total

2 comentarios

 
shakespeares 2025-10-07

Parece que habría que usarlo de forma muy de nicho. Las ventajas de la GUI... solo si se puede usar de una manera que las compense.

 
GN⁺ 2025-10-03
Opiniones en Hacker News
  • No es totalmente lo mío, pero se siente refrescante que hayan hecho un fork de Firefox en vez de Chromium. Ahora ya hay tres forks de Firefox muy modificados junto con Zen y Floorp
    • También está Tor, así que se suma a esta tendencia
    • También existe LibreWolf, y personalmente me gustaría que ese se volviera la opción por defecto
  • La idea me parece muy buena, y me tranquiliza ver el comentario de que lo mantienen siguiendo los parches de seguridad
  • A mí también me topé con las limitaciones de addons.mozilla.org al usar Vimium C. No me pasa tan seguido como para cambiar de navegador por eso, pero más bien me atraen herramientas que vuelvan todo el escritorio de Linux más centrado en el teclado, como hace homerow en macOS
  • Soy el autor, así que si tienen preguntas, con gusto las respondo
    • Me gusta la API de hints, en especial que también pueda poner hints en elementos del navegador. Pero creo que los usuarios avanzados querrán usar el sistema de hints para seleccionar distintos tipos de elementos. Me gustaría que ampliaran la función para pasar selectores CSS y decidir a qué elementos se les ponen hints. Por ejemplo, un usuario podría crear un comando para seleccionar cierto elemento y copiar su texto
    • Me pregunto si tiene soporte para DRM. Quisiera saber si se puede usar en sitios de streaming comercial como Netflix. Antes esto era un problema grande en los forks de Firefox. También me da curiosidad cómo va con Firefox Sync. Y quisiera preguntar si permite llamadas RPC desde procesos externos. Por ejemplo, para obtener la URL, la lista o el contenido de las pestañas abiertas actualmente, o para controlar una pestaña a distancia y mandarla a otra URL, cosas así que servirían para integrarlo con otras apps o scripts. Firefox suele quedarse corto en esta área. Por último, me pregunto qué tan seguro es
    • El proyecto se ve muy bien. Me pregunto si la configuración es lo bastante flexible como para definir atajos al estilo Helix/Kakoune
    • Quisiera saber si con el archivo de configuración se puede automatizar la instalación de extensiones y cambiar ajustes internos de Firefox. Ya configuro todos mis demás programas con dotfiles, así que me gustaría que Firefox también tuviera esa opción
  • Se ve realmente genial. Llevo un tiempo usando Firefox con VimFX y un config.js bastante complejo. En cuanto se fusione el paquete de NixOS, seguro lo voy a probar. Si van a seguir usando Firefox ESR base, recomiendo mucho VimFX. Puede servir revisar https://github.com/akhodakivskiy/VimFx. La mayor desventaja de VimFX es la poca documentación de las APIs internas de Firefox. Para cosas como la gestión de pestañas, tuve que meterme a revisar el código fuente directamente, cuando con la API de WebExtensions habría sido fácil. Lo que más me entusiasma de Glide es justamente la parte donde esas APIs se puedan usar desde el archivo de configuración
  • ʕ•ᴥ•ʔ Encontré esto en Bear Blog y lo he estado usando con gusto. Lo estoy probando como parte de mi stack de productividad para el trabajo, dejándolo con la barra lateral y las pestañas fijadas parecidas a mi navegador zen. También le di tema al CSS de glide-hint con userChrome.css para ajustarlo a mi gusto estético. Voy a seguirlo porque espero que siga creando cosas geniales
    1. https://freeimage.host/i/KMQu3EQ
    2. https://freeimage.host/i/KMQAJ9t
    • Me pregunto cuántas pestañas sueles tener abiertas al mismo tiempo en promedio. ¿No te resulta incómodo tener que encontrarlas solo por el favicon?
  • No miré a fondo la estructura del código fuente, pero siendo un fork de Firefox, me pregunto cómo planean integrar en el futuro los parches de seguridad y otros arreglos de Firefox
    • Está hecho con un sistema automatizado de parches y archivos nuevos. Durante la compilación se descarga el código fuente de Firefox y se aplican los parches, así que subir la versión de Firefox también es muy fácil. De hecho, como se puede actualizar seguido, estamos siguiendo el canal beta de Firefox
  • Por fin volvió el modo compacto, así que lo agradezco muchísimo. También me da gusto ver otro fork de Firefox, y este concepto me parece muy interesante. Yo uso vim en todos lados, así que definitivamente quiero probarlo por mí mismo
    • Eso sí, al hacer scroll con j/k siento que el movimiento no es muy fluido. Me pregunto si hay alguna forma de hacer el desplazamiento más natural (aunque capaz me salté esa parte en la documentación)
  • Me parece bastante genial. He usado Vimium en Chrome y me ha gustado
    1. https://chromewebstore.google.com/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb
    • Me pregunto si también funciona en páginas chrome://. Esa siempre fue una limitación frustrante de la versión de Vimium para Firefox
  • Le di una repasada rápida a la documentación y esto se siente como el navegador de mis sueños. Me gusta que, al estar basado en Firefox, conserve bien la API de WebExt y que incluso pueda ejecutar comandos fuera del navegador. Ojalá Firefox Developer Edition fuera así; definitivamente lo voy a probar hoy mismo