Sobre el proyecto
GridSnap es una utilidad de escritorio de código abierto construida con Tauri v2, React 18, TypeScript y Rust. Presenta datos sensibles — comandos SSH, credenciales, claves API, cadenas de conexión y fragmentos de código — en una cuadrícula virtualizada similar a una hoja de cálculo que se puede invocar con una tecla de acceso rápido global (por defecto Ctrl+Shift+Space).
Motor de cuadrícula: cuadrícula virtualizada de 1000×26; navegación por teclado (teclas de flecha, Tab, Enter, Escape); edición por escritura; selección múltiple de celdas por clic-arrastre o Shift+Flecha; copia mediante botón flotante o Ctrl+C (formato TSV para rangos); Ctrl+V pega datos TSV en la cuadrícula; redimensionamiento de columnas y filas; búsqueda en todas las celdas con resaltado instantáneo; guardado manual con Ctrl+S; y un panel de ayuda integrado con atajos y consejos.
Hojas: múltiples hojas con pestañas de colores; agregar, eliminar y renombrar con confirmación de eliminación; arrastrar para reordenar; cambio con Ctrl+Tab y Ctrl+Shift+Tab; salto directo con Ctrl+1-9; paleta de cambio rápido con Ctrl+K; acciones de clic derecho en la pestaña. Las hojas admiten enmascaramiento (toda la hoja muestra ●●●●), enmascaramiento/desenmascaramiento por celda, y contraseñas opcionales por hoja. Las hojas protegidas por contraseña se bloquean en cada cambio de pestaña, la búsqueda está deshabilitada en hojas bloqueadas, y eliminar una hoja protegida requiere confirmación de contraseña. La protección contra fuerza bruta impone un tiempo de espera de dos minutos después de 10 intentos incorrectos, persistente entre reinicios.
Seguridad: sin contraseña por defecto, con una bóveda JSON en texto plano hasta que se establezca una contraseña. Una contraseña maestra opcional encripta la bóveda. Las contraseñas por hoja usan AES-256-GCM con derivación de clave Argon2id (64MB de memoria, 3 iteraciones, 4 paralelismo) y almacenan un token de verificación en lugar de hashes en texto plano. El formato de almacenamiento es salt (16B) | nonce (12B) | ciphertext | tag (16B). Las claves se borran después de su uso mediante zeroize de Rust. La aplicación no realiza conexiones de red salientes y no incluye telemetría ni componente en la nube.
Integración de escritorio: ventana sin bordes siempre visible con barra de título personalizada; bandeja del sistema con mostrar/ocultar; tecla de acceso rápido global configurable; el botón de cerrar minimiza a la bandeja; lanzamiento opcional al inicio del sistema; tamaño de paquete reportado de aproximadamente 8.5MB y RAM de aproximadamente 30MB.
Tematización: 11 temas integrados seleccionables en Configuración — Carbon (por defecto), Midnight, Ocean, Aurora, Deep Teal, Light, Velvet, Nordic, Rose, Terminal y Slate. Los temas usan propiedades personalizadas de CSS y se pueden extender agregando una entrada en src/theme/themes.ts.
Construcción desde el código fuente: requisitos previos Node.js 18+ y Rust 1.70+. Clonar el repositorio, luego en el directorio gridsnap ejecutar npm install, npm run tauri dev para desarrollo, o npm run tauri build para producción.
Uso: el primer lanzamiento se abre directamente; navegar haciendo clic o con las teclas de flecha; editar con doble clic o Enter; copiar con el botón flotante o Ctrl+C; pegar datos TSV con Ctrl+V; guardar con Ctrl+S; crear hojas mediante la pestaña +; cambiar de hojas por clic en la pestaña, atajos de teclado, o búsqueda con Ctrl+K; reordenar arrastrando pestañas; enmascarar hojas o celdas mediante clic derecho; establecer contraseñas de hoja o maestra según sea necesario; ocultar con Ctrl+Shift+Space o el botón de cerrar; salir desde el menú del icono de la bandeja.
Pila tecnológica: shell Tauri v2 usando el webview nativo del SO; frontend React 18 + TypeScript; CSS Modules con propiedades personalizadas; renderizador de cuadrícula virtualizado personalizado (suma de prefijos más búsqueda binaria); estado Zustand; construcción Vite 6; encriptación AES-256-GCM + Argon2id en Rust; bóveda JSON encriptada en el sistema de archivos local.
El proyecto tiene licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.