ويهدف هذا كبديل لخفي إدارة الخمول في سوي. أستخدمه كأداة لفهم رسالة الصدأ وإدارة الحالة. يهدف إلى الحصول على الأهداف التالية:
أنا الآن أستخدمه كبديل لأي AC و PATH Power Daemon ، حيث يمكنني تشغيل المهام معها.
حتى يتم إضافة العبوة ، يمكنك تثبيت Sleep -Watcher باستخدام البضائع.
cargo install --git https://github.com/fishman/sleepwatcher-rs
يستخدم SleepWatcher-RS env_logger . يمكنك تمكين التسجيل عن طريق ضبط متغير بيئة RUST_LOG :
RUST_LOG=debug sleepwatcher-rs
تتم كتابة التكوين الافتراضي إلى ~/.config/sleepwatcher-rs/idle_config.lua على بدء التشغيل إذا لم يكن المجلد والملف موجودًا بعد.
تم تكوين LUA ليكون رمل ، لذلك لا يمكن استخدام وظائف المكتبة ويمكن استخدام الوظائف المكشوفة فقط داخل الصدأ.
تمييز مهم بين Helpers:run Helpers:run_once . سوف run_once التحقق مما إذا كانت عملية بهذا الاسم تعمل بالفعل ولن تفرخ واحدة جديدة في هذه الحالة. قد يكون هذا مفيدًا ، عندما يمكن لخزانة الشاشة إنشاء ظروف سباق في حالة إنشارها مرتين.
في الأصل ، أردت إعادة تحميل التكوين عندما يتم توصيل محول AC والخروج ، ولكن نظرًا لمشكلة المهلة الموضحة أدناه ، يمكنك التحقق من حالة on_battery في الوظائف.
Helpers : log ( " Loading idle_config.lua " )
function LockScreen ()
Helpers : log ( " Locking Screen " )
IdleNotifier : run_once ( " swaylock -f " )
end
function ScreenLockBattery ( event )
if event == " idled " and Helpers : on_battery () then
LockScreen ()
end
end
DbusHandler : PrepareSleep ( " LockScreen " )
DbusHandler : LockHandler ( " LockHandler " )
DbusHandler : UnlockHandler ( " UnlockHandler " )
IdleNotifier : get_notification ( 300 , " ScreenLockBattery " ) get_notification ينشئ معالج مهلة Wayland Idle. ويستخدم بروتوكول ext-idle-notify-v1 . لا يمكن (بعد) إنشاء وظائف رد الاتصال ، لذلك يتم إجراء مكالمات الوظائف من خلال تحديد اسم الوظيفة.
تعد PrepareSleep ، LockScreen ، UnlockScreen ، إشارات dbus من org.freedesktop.logind.manager و org.freedesktop.logind.session .
~/.config/sleepwatcher-rs/idle_config.lua . ومع ذلك ، نظرًا لسبب غير معروف ، لا يزال المشغل الأول بعد إعادة التحميل يتبع المهلة القديمة ، وبالتالي فإن المشغل التالي يساوي بقية المهلة السابقة+إعداد المهلة الجديدة.