سؤال

أرغب في استخدام تطبيق PYQT لعرض صورة عندما يتم تشغيل بعض حدث ACPI تحت Linux.

لقد قمت بالفعل بإعداد التكوين للحدث ويتم تنفيذ Scrip Python عندما يتم تشغيل الحدث ، ولكن عندما يصل البرنامج إلى إنشاء Qaplication

app = QApplication(sys.argv)

يتوقف دون خطأ. حاولت إعداد متغيرات البيئة وبيئة المسار نفسها كمستخدمي الحالي ولكنه لا يعمل.

هذا هو ملف الحدث الخاص بي:

event=sony/hotkey SNC 00000001 00000011
action=/etc/acpi/vaio-tools/brightness/sonybright.sh up 2>&1>/tmp/vaio-tools_brightness.log

حاولت العثور على بعض الأخطاء في /tmp/vaio-tools_brightness.log لكنها لا تسجل أي شيء بعد الوصول إلى إنشاء QAPP في الكود.

أي تلميحات ؟؟

هل كانت مفيدة؟

المحلول

يتم تشغيل التطبيق الخاص بك بواسطة Root والذي لا يمكنه الوصول إلى شاشة X الخاصة بالمستخدمين.

إما تعيين $ xauthority على مسار ملف سلطة X المستخدم من قبل المستخدم الخاص بك أو استخدم شيئًا كهذا (لم يتم اختباره):

su your_user -l -c "xauth extract - $DISPLAY" | xauth merge -

انظر صفحات الرجل ل xauth و XSecurity لمعرفة المزيد عن هذا.

يتمثل الحل الأفضل في الحصول على حدث ACPI لإرسال رسالة عبر DBUs وتشغيل التطبيق الخاص بك في جلسة المستخدم الاستماع إلى تلك الرسالة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top