عملت أداة مفتوحة المصدر (gpumask) بتمنع تطبيقات الـ Electron من تشغيل كرت الشاشة المنفصل (dGPU) على لينكس 🐧⚡
لكل حدا معاه لابتوب بكرتين شاشة (Hybrid Graphics) على لينكس، أكيد بتعاني من نفس القصة مع صرف البطارية:
مجرد ما تفتح أي Electron app أو برامج معتمدة على Chromium، بتلاقي كرت الشاشة المنفصل (dGPU) صحي واشتغل فجأة بس عشان يفحص الشاشات أو يعمل GPU enumeration أول ما يفتح. والنتيجة؟ حرارة وصرف بطارية عالفاضي لبرامج أصلاً ما بتحتاج غير معالجة 2D عادية.
تغيير إعدادات الـ Environment variables على مستوى النظام كامل ممكن يخرب الـ offload للألعاب، والتعديل اليدوي على ملفات الـ .desktop قروشة وبيروح مع كل تحديث.
لهيك عملت أداة CLI خفيفة اسمها gpumask.
كيف شغالة من جوا؟
- بتعزل التطبيق بساندبوكس خفيف باستخدام
bubblewrap(bwrap)، بحيث تخفي مسارات الـ dGPU المنفصل عنه تماماً. - التطبيق بيتراجع تلقائياً وبيشتغل على الكرت المدمج (iGPU) بدون أي مشاكل.
- بتعمل Overrides نظيفة بمجلد المستخدم
~/.local/share/applications/بدون ما تلمس ملفات الروت أو النظام الأساسية.
أهم الميزات:
- الألعاب والشغل الثقيل ما بتأثروا نهائياً: ألعاب Steam، برامج الـ 3D، والريندرينغ بيضلوا شغالين على كرت الـ dGPU بكامل قوتهم.
- إلغاء بأمر واحد: بتقدر ترجع كل إشي لأصله بأمر سريع:
gpumask <app> --undo. - CLI سريع ومريح: فيه Batch patching، فحص التطبيقات الشغالة (
--status)، ومعاينة قبل التطبيق (Dry-run). - خفيف وبدون Daemons: معتمد كلياً على الـ Linux namespaces المدمجة بالنواة بدون أي عمليات شغالة بالخلفية.
الكود والتنزيل: المشروع مفتوح المصدر بالكامل (MIT). بتقدروا تشوفوا الريبو على GitHub بالبحث عن: zeroxuf/gpumask
جربوها على أجهزتكم وأعطوني رأيكم وملاحظاتكم!