تحية للجميع. أستخدم Lubuntu 18.04 على جهاز الكمبيوتر المحمول في المنزل. في أحد الأيام الجميلة ، قررت أنني لست سعيدًا بالإجراءات التي تقدمها Power Manager عند إغلاق غطاء الكمبيوتر المحمول. عندما أغلقت غطاء الكمبيوتر المحمول ، أردت حظر الشاشة وبعد فترة وجيزة أرسل الكمبيوتر المحمول إلى وضع الإسبات. للقيام بذلك ، كتبت نصًا ، وسارع إلى مشاركته معك.واجهت مشكلتين.الأول هو أن السبات لا يعمل في loubunt خارج منطقة الجزاء ؛ابحث عن مبادلة UUID ، لذلك عليك القيام بما يلي:grep swap /etc/fstab
في حالتي ، يكون الناتج كما يلي:
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
ثم تحتاج إلى إضافة UUID إلى معلمات تهيئة kernel. للقيام بذلك ، أضف الملف / etc / default / grub إلى السطر "GRUB_CMDLINE_LINUX_DEFAULT" سيرة ذاتية = UUID =٪ your UUID٪...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
وتنفيذ الأمر:sudo update-grub
الآن يجب أن يعمل الإسبات ، للتحقق يمكنك القيام بما يلي:sudo systemctl hibernate
كانت المشكلة الثانية هي كيفية قفل شاشة المستخدم من الجذر دون إرسال الكمبيوتر المحمول إلى وضع السكون. لقد قمت بحلها باستخدام dbus-send ، الأمر نفسه موجود في البرنامج النصي أدناه. إذا كان هناك شخص يعرف خيارات أخرى ، يرجى الكتابة في التعليقات ،فلنبدأ الآن في كتابة النص.أول شيء يتعين علينا القيام به في Power Manager هو تحديد إيقاف تشغيل العرض كإجراء عند إغلاق الغطاء بحيث لا يكون هناك أي تعارض مع البرنامج النصي الخاص بنا.
ثم قم بإنشاء الملف / etc / acpi / events / laptop-lid بالمحتويات التالية:event=button/lid.*
action=/etc/acpi/laptop-lid.sh
وأنشئ النص /etc/acpi/l laptop-lid.sh بالمحتويات التالية:#!/bin/bash
BUS=$(grep -z DBUS_SESSION_BUS_ADDRESS \
/proc/$(pidof -s lxsession)/environ | \
sed 's/DBUS_SESSION_BUS_ADDRESS=//g')
USER=$(grep -z USER /proc/$(pidof -s lxsession)/environ | sed 's/USER=//g')
LID="/proc/acpi/button/lid/LID0/state"
check_lid () {
grep -q closed $LID
}
check_lid
if [ $? = 0 ]
then
sudo -u $USER -E dbus-send --bus=$BUS \
--type=method_call \
--dest="org.freedesktop.ScreenSaver" \
"/org/freedesktop/ScreenSaver" \
org.freedesktop.ScreenSaver.Lock
fi
sleep 600
check_lid
if [ $? = 0 ]
then
systemctl hibernate
fi
نجعل البرنامج النصي قابلاً للتنفيذ:sudo chmod a+x /etc/acpi/laptop-lid.sh
وأعد تشغيل البرنامج الخفي حتى يتم تطبيق التغييرات:sudo systemctl restart acpid.service
كل شيء جاهز.بالنسبة إلى Gnome في البرنامج النصي ، عليك تغيير:- lxsessin => جلسة جنوم
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver