عن المشروع

GridSnap هو أداة مفتوحة المصدر لسطح المكتب، تم بناؤها باستخدام Tauri v2، وReact 18، وTypeScript، وRust. وهي تعرض البيانات الحساسة — مثل أوامر SSH، وبيانات الاعتماد، ومفاتيح API، وسلاسل الاتصال، ومقتطفات الكود — في جدول بيانات افتراضي يمكن استدعاؤه باستخدام اختصار لوحة المفاتيح العالمي (Ctrl+Shift+Space). محرك الجدول: يحتوي على شبكة افتراضية بحجم 1000×26، مع إمكانية التنقل عبر لوحة المفاتيح (أسهم، Tab، Enter، Escape)، والتحرير بالكتابة المباشرة، وتحديد عدة خلايا بالنقر والسحب أو Shift+Arrow، ونسخ البيانات عبر زر التحويم أو Ctrl+C (بصيغة TSV للمدى)، ولصق بيانات TSV عبر Ctrl+V، وتغيير حجم الأعمدة والصفوف، والبحث الفوري في جميع الخلايا مع التظليل، والحفظ اليدوي عبر Ctrl+S، ولوحة مساعدة مدمجة تحتوي على الاختصارات والنصائح. الصفحات: يدعم إنشاء عدة صفحات مع علامات تبويب ملونة، وإضافة/حذف/تغيير اسم الصفحات مع تأكيد الحذف، وسحب العلامات لإعادة الترتيب، والتبديل بين الصفحات عبر Ctrl+Tab وCtrl+Shift+Tab، والقفز المباشر إلى الصفحات من 1 إلى 9 عبر Ctrl+1-9، وقائمة اختيار سريعة عبر Ctrl+K، وإجراءات النقر بالزر الأيمن على العلامات. يمكن إخفاء محتويات الصفحة بالكامل (●●●●)، أو إخفاء/إظهار خلايا فردية، وتعيين كلمات مرور منفصلة لكل صفحة. الصفحات المحمية بكلمة مرور تُقفل عند كل تبديل علامة تبويب، ويتم تعطيل البحث عليها، ويجب إدخال كلمة المرور لتأكيد حذفها. يوجد حماية ضد هجمات القوة الغاشمة، حيث يتم فرض فترة انتظار لمدة دقيقتين بعد 10 محاولات خاطئة، ويتم حفظ هذه الحالة عبر إعادة التشغيل. الأمان: لا يتطلب كلمة مرور افتراضيًا، حيث يتم تخزين الـ vault بصيغة JSON غير مشفرة حتى يتم تعيين كلمة مرور. يمكن تعيين كلمة مرور رئيسية لتشفير الـ vault بالكامل. تستخدم كلمات مرور الصفحات AES-256-GCM مع اشتقاق مفتاح Argon2id (64MB ذاكرة، 3 تكرارات، 4 توازي)، ويتم تخزين رمز التحقق بدلاً من الـ hash النصي. صيغة التخزين هي: salt (16B) | nonce (12B) | ciphertext | tag (16B). يتم محو المفاتيح بعد الاستخدام باستخدام zeroize من Rust. لا يقوم التطبيق بإجراء أي اتصالات شبكية خارجية، ولا يحتوي على أي تتبع أو مكونات سحابية. التكامل مع سطح المكتب: نافذة عائمة بدون حدود مع شريط عنوان مخصص، وأيقونة في شريط النظام لإظهار/إخفاء التطبيق، واختصار لوحة مفاتيح قابل للتخصيص، وزر إغلاق يقوم بـ minimize إلى شريط النظام، وخيار التشغيل التلقائي عند بدء النظام. حجم الحزمة المُبلغ عنه حوالي 8.5MB، واستهلاك RAM حوالي 30MB. الموضوعات: يحتوي على 11 موضوعًا مدمجًا يمكن اختيارها من الإعدادات — Carbon (الافتراضي)، Midnight، Ocean، Aurora، Deep Teal، Light، Velvet، Nordic، Rose، Terminal، وSlate. تستخدم الموضوعات خصائص CSS المخصصة، ويمكن توسيعها بإضافة إدخال في src/theme/themes.ts. البناء من المصدر: يتطلب Node.js 18+ وRust 1.70+. قم باستنساخ المستودع، ثم في مجلد gridsnap، قم بتشغيل npm install، ثم npm run tauri dev للتطوير، أو npm run tauri build للإنتاج. الاستخدام: عند التشغيل الأول، يفتح التطبيق مباشرة. يمكنك التنقل بالنقر أو أسهم لوحة المفاتيح، والتحرير بالنقر المزدوج أو Enter، والنسخ عبر زر التحويم أو Ctrl+C، ولصق بيانات TSV عبر Ctrl+V، والحفظ عبر Ctrl+S، وإنشاء صفحات جديدة عبر علامة +، والتبديل بين الصفحات بالنقر على العلامات أو اختصارات لوحة المفاتيح أو Ctrl+K، وترتيب الصفحات بالسحب، وإخفاء الصفحات أو الخلايا بالنقر بالزر الأيمن، وتعيين كلمات مرور للصفحات أو الـ vault حسب الحاجة، وإخفاء التطبيق عبر Ctrl+Shift+Space أو زر الإغلاق، والخروج من القائمة الخاصة بأيقونة شريط النظام. المكدس التقني: غلاف Tauri v2 باستخدام WebView الخاص بالنظام، وواجهة أمامية React 18 + TypeScript، وCSS Modules مع خصائص مخصصة، ومُحرك عرض جدول افتراضي مخصص (بناءً على prefix-sum والبحث الثنائي)، وZustand للحالة، وVite 6 للبناء، وAES-256-GCM + Argon2id للتشفير في Rust، وVault JSON مشفر على النظام المحلي. الرخصة: MIT.