Tu cheatsheet de atajos de teclado, siempre a mano.
Glyph es un buscador de atajos de teclado ultrarrápido, escrito en Rust con interfaz gráfica nativa y herramientas de línea de comandos.
Organizá, buscá y recordá los atajos de todas tus aplicaciones desde un solo lugar.
Todos usamos atajos de teclado. Pocos los recordamos todos. La documentación suele estar dispersa en PDFs, webs o archivos de configuración complejos. Además, cada desarrollador tiene sus propias macros y comandos personalizados que no están documentados en ningún lado.
- Centralización Total: Un solo archivo TOML por aplicación donde conviven los atajos oficiales y tus personalizaciones.
- Velocidad Absoluta: Rendimiento nativo en Rust con tiempos de búsqueda de microsegundos.
- Búsqueda Inteligente: Filtros estrictos (
>@app), aliases personalizados y resaltado visual de coincidencias. - Importación y Sincronización: Adapters integrados para escanear y sincronizar automáticamente tus configuraciones de herramientas como Zed, Tmux, LazyVim u Omarchy.
- Hot-Reload: Editás tus archivos de configuración y los cambios se reflejan en la interfaz al instante, sin reiniciar la aplicación.
- Presionás
Super + Shift + K(o el atajo que elijas en tu sistema). - La interfaz ultra-ligera de Glyph aparece al instante.
- Escribís una palabra clave (ej.
commitoformat). - El buscador inteligente filtra y resalta los resultados en tiempo real.
- Presionás
Enterpara copiar el comando y la ventana se cierra automáticamente.
Todo el flujo toma menos de un segundo, manteniendo tus manos en el teclado y tu enfoque en lo que estás haciendo.
Glyph está escrito en Rust usando egui/eframe para la interfaz gráfica nativa. No usa Electron, no usa WebViews ni consume cientos de megabytes de RAM. Es un binario único de solo ~7 MB, altamente optimizado, limpio y extremadamente rápido.
- Características
- Instalación
- Uso
- Configuración
- Cómo agregar atajos
- Desarrollo y Compilación
- Rendimiento y Diagnóstico
- Detalles Técnicos y Compatibilidad
- Cómo colaborar
- Licencia
| Característica | Descripción |
|---|---|
| 🔍 Búsqueda inteligente | Busca en el nombre de la app, disparador, etiqueta y aliases. Las descripciones se muestran en el panel inferior pero no se indexan para darte un control absoluto usando el campo aliases. |
| 🖥️ GUI Minimalista y Veloz | Interfaz plana y sin distracciones diseñada para la máxima eficiencia. Muestra únicamente lo necesario (buscador, 6 filas de atajos y descripción) para garantizar una experiencia de usuario instantánea y sin fricción. |
| 🖱️ Control Híbrido | Navegación fluida tanto por teclado (↑/↓, Enter) como por ratón (hover para seleccionar la tarjeta y un solo clic para copiar y salir al instante). |
ℹ️ Ayuda Global (Ctrl + K) |
Cheatsheet de controles de la propia aplicación integrado inline para que nunca tengas que recordar cómo usar Glyph. |
Ctrl + E) |
Indicador visual discreto si tienes archivos TOML corruptos. Al pulsar el atajo, muestra los reportes de error detallados del parser directamente en la lista. |
| ⌨️ CLI completo | Agregá, eliminá, creá, instalá, generá, actualizá y auto-generá atajos de tus aplicaciones locales desde la terminal. |
| 📦 Instalación de Presets | Descargá presets curados oficiales desde el repositorio de Glyph o desde cualquier URL externa. |
| ⚙️ Sincronización Inteligente | Fusioná tus atajos locales o de fuentes oficiales sobre tus archivos TOML existentes sin perder tus personalizaciones locales. |
| 🔄 Hot-reload | Monitor de archivos integrado que actualiza las configuraciones de la GUI en tiempo real al guardar tus archivos .toml. |
| 📋 Copiar y Documentar | Copia al portapapeles con Enter/Clic y abre la URL de documentación en tu navegador con Alt + Enter. |
| 🏷️ Filtro estricto por app | Filtra de manera exclusiva usando el prefijo >@NombreApp (ej. >@tmux split). |
La forma más sencilla de instalar Glyph es descargar el binario pre-compilado desde GitHub.
Paso 1 — Descargar el binario desde la página de Releases:
# Con curl:
curl -L -o glyph https://github.com/ariasbruno/glyph/releases/latest/download/glyph-linux-x86_64
# O con wget:
wget -O glyph https://github.com/ariasbruno/glyph/releases/latest/download/glyph-linux-x86_64Paso 2 — Dar permisos de ejecución:
chmod +x glyphPaso 3 — Mover al PATH del sistema (elegir una opción):
- Opción A: Instalación global (para todos los usuarios, requiere
sudo):sudo mv glyph /usr/local/bin/
- Opción B: Instalación local (solo para tu usuario, sin
sudo):(Nota: Si usás la Opción B, asegurate de quemv glyph ~/.local/bin/~/.local/binesté en la variable de entornoPATHen tu archivo.bashrc,.zshrco equivalente).
Paso 4 — Verificar la instalación:
glyph helpSi ves la lista de comandos disponibles, la instalación fue exitosa. ¡Listo!
Para abrir Glyph con una combinación de teclas (recomendado), agregá un binding en la configuración de Hyprland.
Paso 1 — Abrir el archivo de bindings:
~/.config/hypr/bindings.conf
Paso 2 — Agregar la siguiente línea al final del archivo:
bindd = SUPER SHIFT, K, Glyph, exec, glyphEsto asigna Super + Shift + K para abrir Glyph. Podés cambiar la combinación de teclas a la que prefieras.
Paso 3 (opcional) — Si no corre el comando, recargá la configuración de Hyprland sin reiniciar:
hyprctl reloadAhora presioná Super + Shift + K y Glyph se abrirá como una ventana emergente. Buscá el atajo que necesites, presioná Enter para copiarlo y la ventana se cierra automáticamente.
Nota: Si usás otro window manager o entorno de escritorio, consultá su documentación para configurar un atajo que ejecute el comando
glyph.
Si preferís compilar Glyph vos mismo o querés contribuir al proyecto:
Pre-requisitos:
- Linux (Wayland o X11)
- Rust 1.70 o superior (instalar Rust)
- Dependencias del sistema (ver sección Compilación)
# 1. Clonar el repositorio
git clone https://github.com/ariasbruno/glyph.git
cd glyph
# 2. Compilar en modo release (optimizado)
cargo build --release
# 3. El binario se genera en:
# target/release/glyph
# 4. (Opcional) Copiar al PATH del sistema (elegir una opción)
# Opción A (Global - requiere sudo):
sudo cp target/release/glyph /usr/local/bin/
# Opción B (Local - solo tu usuario, sin sudo):
mkdir -p ~/.local/bin && cp target/release/glyph ~/.local/bin/Verificar (elegir una opción):
# Opción 1: Si ya lo copiaste a tu PATH
glyph help
# Opción 2: Ejecutar directamente con Cargo desde la carpeta del proyecto
cargo run --release -- helpEjecutá glyph sin argumentos para abrir la interfaz gráfica:
(Nota: Para una mejor experiencia de uso, se recomienda configurar un atajo de teclado en tu sistema para poder abrir la ventana de Glyph al instante).
glyph| Tecla | Acción |
|---|---|
Esc |
Cerrar la aplicación (o salir de menús de ayuda/error) |
Enter |
Copiar las teclas del atajo seleccionado al portapapeles y cerrar (o abrir archivo con error si el panel de errores está abierto) |
Alt + Enter |
Abrir la URL de documentación del atajo en el navegador y cerrar |
Ctrl + L |
Limpiar la barra de búsqueda |
Ctrl + E |
Ver detalles de errores de configuración en los archivos TOML |
Ctrl + K |
Ver/ocultar la guía de atajos de la aplicación |
Ctrl + G |
Abrir el repositorio de GitHub de Glyph en el navegador |
↑ / ↓ |
Navegar entre resultados |
La búsqueda normal busca de forma simultánea en el nombre de la app, el disparador (teclas o comando), la etiqueta (label) y los aliases. Las descripciones no se indexan en la búsqueda para evitar ruido en los resultados y darte un control absoluto de tus palabras clave usando el campo aliases (las descripciones se muestran únicamente en el panel inferior al seleccionar un atajo). Si escribís git, vas a ver atajos de Git pero también cualquier otro atajo que contenga "git" en su etiqueta o aliases.
Si querés ver exclusivamente los atajos de una app, usá el prefijo >@ como filtro estricto:
>@Tmux split → Busca "split" solo dentro de atajos de Tmux
>@Zed focus → Busca "focus" solo dentro de atajos de Zed
>@Git branch → Busca "branch" solo dentro de atajos de Git
>@Tmux → Muestra todos los atajos de Tmux
Glyph incluye una potente interfaz de línea de comandos (CLI) que te permite gestionar tus atajos, importar configuraciones de tu sistema y descargar presets directamente desde la terminal.
| Comando | Sintaxis básica | Propósito | ¿Requiere Internet? |
|---|---|---|---|
add |
glyph add <app> "<trigger>" "<label>" "<description>" [opciones] |
Agrega un atajo individual a una aplicación. | No |
create / c |
glyph create <app> [opciones] |
Crea una nueva aplicación o edita sus propiedades (icono, color, url). | No |
install / i |
glyph install [preset_o_url_o_archivo] |
Descarga e instala un Archivo Glyph (TOML curado) desde el repositorio, una URL o un archivo local. | Sí (salvo para archivos locales) |
generate / gen |
glyph generate <app> |
Descarga la Fuente Oficial y la compara con tu Fuente Local para generar el TOML. | Sí |
update / u |
glyph update <app> [--local | --official] |
Sincroniza un TOML existente con tu Fuente Local (-l) o con la Fuente Oficial (-o). |
Sí (para --official) / No (para --local) |
self-generate / sg |
glyph self-generate <app> |
Escanea tu sistema y genera un TOML basado únicamente en tu Fuente Local. | No |
list / ls |
glyph list [i | gen] |
Lista tus aplicaciones de Glyph, presets en el repo (i), o compatibles (gen). |
Sí (para i) / No (demás) |
remove / rm |
glyph remove <app> ["<trigger>"] [-y] |
Elimina una aplicación completa o un atajo específico. | No |
apps |
glyph apps |
Abre la carpeta de configuraciones en tu explorador de archivos nativo. | No |
version / -v, --version |
glyph -v |
Imprime la versión instalada de Glyph. | No |
help / -h, --help |
glyph help |
Muestra el menú de ayuda y uso del programa (incluye la versión en su cabecera). | No |
Agregás un único atajo de teclado a una aplicación específica. Si la aplicación no existe en tu carpeta de configuraciones, Glyph la crea automáticamente con valores por defecto. Si el atajo (mismas teclas) ya existe, te va a preguntar si querés sobrescribirlo.
Opcionalmente, podés pasar los flags --doc-url / -d para asignar una URL de documentación específica al atajo, y --aliases / -a para asociar palabras clave de búsqueda adicionales (separadas por comas).
- Sintaxis:
glyph add <app> "<trigger>" "<label>" "<description>" [--doc-url <url>] [--aliases <alias1,alias2,...>] - Ejemplos:
# Agregar un atajo tradicional de teclado (ej: Zed) glyph add zed "Ctrl+Shift+P" "Paleta de comandos" "Abre la paleta de comandos" --aliases "command,palette" # Agregar un comando de terminal como atajo (ej: Git) glyph add git "git commit -m \"[mensaje]\"" "Commit" "Crea un commit con un mensaje"
Crea una nueva aplicación o edita las propiedades visuales y de documentación de una ya existente. Podés configurar el icono (emojis o Nerd Fonts), el color de acento en la interfaz gráfica (código hexadecimal) y su URL de documentación.
- Sintaxis:
glyph create <app> [--icon <icono>] [--color <color_hex>] [--doc-url <url>] - Ejemplo:
glyph create firefox --icon "🦊" --color "#FF7139" --doc-url "https://support.mozilla.org/kb/keyboard-shortcuts"
Instala presets de atajos en formato TOML estándar de Glyph. Este comando nunca sobrescribe a ciegas tu archivo si ya existe; en su lugar, fusiona los atajos nuevos respetando tus personalizaciones locales.
- Sintaxis:
glyph install [preset_o_url_o_archivo] - Modo Interactivo (sin argumentos):
Si ejecutás
glyph installsolo, se va a conectar a GitHub para descargar el índice de presets oficiales (registry.toml). Te muestra un menú numerado y podés ingresar múltiples números separados por comas o espacios (ej:1, 3o1 3) para instalar varios presets a la vez. - Modo Directo por Preset:
glyph install git
- Modo por URL externa:
glyph install https://raw.githubusercontent.com/usuario/repo/main/miapp.toml
- Modo por Archivo Local:
glyph install ./mis_respaldos/vim.toml
Este comando es un generador de plantillas. Descarga la Fuente Oficial (ej: los atajos por defecto de Zed en su GitHub), los compara con tu Fuente Local (ej: tu archivo keymap.json en tu sistema) y crea un archivo TOML completo con todos los atajos oficiales del programa, pero con tus modificaciones aplicadas encima.
- Sintaxis:
glyph generate <app> - Ejemplo:
glyph generate zed
Sincroniza un archivo TOML que ya tenés configurado en Glyph con los cambios más recientes del programa original.
- Sintaxis:
glyph update <app> [--local | --official] - Sincronización Local (
--local/-l): Actualiza las teclas de tu TOML leyendo tu configuración activa en tu máquina (tu Fuente Local). Si remapeaste una tecla en tu editor, esto actualizará la tecla en Glyph sin tocar tus otros atajos.glyph update zed --local
- Sincronización Oficial (
--official/-o): Descarga el mapa por defecto oficial de la app de internet (la Fuente Oficial) y lo fusiona por encima de tu archivo.glyph update zed --official
A diferencia de generate, este comando es 100% local y no descarga nada de internet. Escanea tu sistema buscando tus configuraciones activas y genera un archivo TOML que contiene únicamente los atajos que personalizaste en tu máquina (tu "fuente de la verdad").
- Sintaxis:
glyph self-generate <app> - Ejemplo:
glyph self-generate tmux
Lista las aplicaciones configuradas o disponibles según el argumento:
- Sintaxis:
glyph list [i | gen] - Modo Local (sin argumentos): Lista las aplicaciones TOML configuradas en tu carpeta de Glyph con su icono y cantidad de atajos.
glyph list
- Modo Presets (
i/install): Lista los presets oficiales disponibles en GitHub con su descripción.glyph list i
- Modo Generables (
gen/generate): Muestra las aplicaciones compatibles con el generador y comprueba si están instaladas físicamente en tu PC (ej: Zed, Tmux, LazyVim).glyph list gen
Elimina una aplicación completa (borrando su archivo TOML) o un atajo específico dentro de ella. Te pedirá confirmación a menos que uses la bandera -y (force yes).
- Sintaxis:
glyph remove <app> ["<trigger>"] [-y] - Ejemplos:
# Eliminar un atajo específico glyph remove git "git add -A" # Eliminar la aplicación completa sin preguntar glyph remove git -y
Abre la carpeta donde se guardan los archivos de configuración (~/.config/glyph/apps/) en el explorador de archivos por defecto de tu sistema operativo (servidor de archivos, Finder o Explorador de Windows).
- Sintaxis:
glyph apps
Muestra el menú de ayuda y uso del programa.
- Sintaxis:
glyph help
Glyph guarda sus configuraciones en:
~/.config/glyph/apps/
Cada aplicación es un archivo .toml independiente. Por ejemplo:
~/.config/glyph/apps/
├── git.toml ← Cheatsheet de Git (incluida por defecto)
├── zed.toml ← Atajos de Zed (generado con glyph install zed)
├── tmux.toml ← Atajos de Tmux
├── lazyvim.toml ← Atajos de LazyVim
├── omarchy.toml ← Atajos de Omarchy/Hyprland
└── mi-app.toml ← Tu propia app personalizada
name = "MiApp"
icon = "🚀"
color = "#3B82F6"
doc_url = "https://miapp.com/docs"
[[glyphs]]
trigger = "Ctrl + Shift + P"
label = "Paleta de comandos"
description = "Abre la paleta de comandos de la aplicación"
aliases = ["paleta", "comandos", "command", "palette"]
doc_url = "https://miapp.com/docs/command-palette"
[[glyphs]]
trigger = "Ctrl + S"
label = "Guardar"
description = "Guarda el archivo actual"
aliases = ["guardar", "save"]| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name |
String | ✅ | Nombre de la aplicación |
icon |
String | ✅ | Icono (emoji o Nerd Font) |
color |
String | ✅ | Color hexadecimal para la UI (ej: "#FF5733") |
trigger |
String | ✅ | Disparador del atajo (ej: "Ctrl + Shift + P" o "git push") |
label |
String | ✅ | Nombre corto del atajo |
description |
String | ✅ | Descripción de lo que hace el atajo |
aliases |
[String] | ❌ | Palabras clave adicionales para mejorar la búsqueda |
doc_url |
String | ❌ | URL de documentación general de la app |
doc_url (glyph) |
String | ❌ | URL de documentación específica de este atajo |
Note
Sobre el campo icon: Glyph acepta cualquier carácter en formato UTF-8. Podés usar tanto emojis estándar (ej. "🚀", "🦊") que se visualizan correctamente en cualquier sistema de forma nativa, como glifos de Nerd Fonts (ej. "", "") si preferís una estética minimalista y monocromática.
Tenés tres formas de agregar atajos:
Creá o editá un archivo .toml en ~/.config/glyph/apps/. Los cambios se reflejan automáticamente gracias al hot-reload.
# Crear la app si no existe y agregar un atajo
glyph add firefox "Ctrl+T" "Nueva pestaña" "Abre una nueva pestaña en el navegador"
# Configurar propiedades de la app
glyph create firefox --icon "🦊" --color "#FF7139"# Instalar un preset curado oficial
glyph install git
# Sincronizar tus cambios locales de Zed sobre tu archivo de Glyph
glyph update zed --local
# Escanear tus configuraciones locales de tmux para importarlas
glyph self-generate tmuxSi querés compilar Glyph desde el código fuente, ejecutar sus tests o extender sus capacidades con nuevos adaptadores, seguí estos pasos:
Para compilar tu sistema necesita las cabeceras de desarrollo de las librerías de ventanas y gráficos de tu distribución.
Antes de ejecutar cualquier comando de instalación, podés comprobar si tu sistema ya cuenta con todas las librerías y herramientas necesarias ejecutando este comando rápido en tu terminal:
command -v gcc &>/dev/null && command -v pkg-config &>/dev/null && pkg-config --exists x11 xcursor xrandr xi xkbcommon wayland-client gtk+-3.0 && echo "¡Todo listo para compilar!" || echo "Faltan dependencias por instalar o configurar."Si el comando rápido te indica que faltan dependencias, podés ejecutar este diagnóstico detallado en tu terminal para ver el estado individual de las 9 dependencias requeridas:
# 1. Verificar herramientas de compilación
command -v gcc &>/dev/null && echo " gcc (compilador C): OK" || echo " gcc (compilador C): FALTANTE ❌"
command -v pkg-config &>/dev/null && echo " pkg-config: OK" || echo " pkg-config: FALTANTE ❌"
# 2. Verificar librerías gráficas
if command -v pkg-config &>/dev/null; then
for lib in x11 xcursor xrandr xi xkbcommon wayland-client gtk+-3.0; do
pkg-config --exists $lib && echo " $lib: OK" || echo " $lib: FALTANTE ❌"
done
fiSi alguna figura como FALTANTE ❌, instalá las cabeceras de desarrollo correspondientes a tu distribución:
sudo pacman -S base-devel pkg-config libx11 libxcursor libxrandr libxi libxkbcommon wayland gtk3sudo apt install build-essential pkg-config libx11-dev libxcursor-dev libxrandr-dev libxi-dev libxkbcommon-dev libwayland-dev libgtk-3-devsudo dnf install gcc pkg-config libX11-devel libXcursor-devel libXrandr-devel libXi-devel libxkbcommon-devel wayland-devel gtk3-devel# 1. Compilación rápida en modo desarrollo (Debug)
cargo build
# 2. Compilar en modo optimizado (Release)
cargo build --release
# 3. Ejecutar la suite completa de pruebas unitarias
cargo testSi querés que Glyph sea compatible con una nueva aplicación para importar y sincronizar atajos de teclado automáticamente desde tus archivos locales:
- Crear el adapter: Creá un archivo en
src/cli/adapters/(ej:src/cli/adapters/miapp.rs). - Implementar el trait
ShortcutImporter: Definido en src/cli/ports.rs. - Registrar el adapter: En src/cli/mod.rs, declará el módulo (
pub mod) y agregá los brazos correspondientes en losmatchde los comandosgenerate,self-generateyupdate.
Para ver un ejemplo detallado de código de un adapter, consultá CONTRIBUTING.md.
- Arch Linux + Hyprland (Wayland): ✅ Funcional y optimizado (ventanas flotantes, reglas de renderizado).
- Linux + X11: ✅ Soportado de forma nativa.
Note
Aunque Glyph está diseñado con foco en Linux, la portabilidad de Rust y eframe permite compilar el código base en macOS y Windows.
- eframe (v0.27.2): Framework de ventana nativa con aceleración por hardware (OpenGL) para Wayland y X11.
- egui (v0.27.2): Librería gráfica inmediata (Immediate Mode GUI) de alto rendimiento.
- notify (v6.1): Monitorización en caliente del sistema de archivos para la recarga en tiempo real de TOMLs.
- ureq (v2.9) & Rustls: Cliente HTTP sin dependencias de OpenSSL para descargar presets y actualizaciones.
- serde & serde_json: Serialización y parseo de estructuras de datos y mapas de atajos JSON.
- toml: Parser de configuraciones TOML rápido y conforme al estándar.
- arboard: Integración segura con el portapapeles de los distintos servidores gráficos.
- dirs: Resolución portátil de directorios del sistema de archivos del usuario (
~/.config, etc.). - regex-lite: Expresiones regulares rápidas y livianas para filtros de búsqueda.
¡Toda contribución es bienvenida! Ya sea reportando bugs, proponiendo mejoras en la experiencia de usuario, enviando código o nuevos presets.
Consultá la guía completa de desarrollo en CONTRIBUTING.md.
# 1. Forkeá el repositorio y creá una rama para tus cambios
git checkout -b feature/mi-mejora
# 3. Hacé tus cambios y verificá
cargo test
cargo build
# 4. Commiteá y pusheá
git commit -m "Agrega soporte para nueva app"
git push origin feature/mi-mejora
# 5. Abrí un Pull Request en GitHubEste proyecto está bajo la Licencia MIT.
Es software libre: podés usarlo, modificarlo y distribuirlo sin restricciones.
