Ini dimaksudkan sebagai pengganti daemon manajemen idle Sway. Saya menggunakannya sebagai alat untuk memahami lewat pesan karat dan manajemen negara. Ini bertujuan untuk memiliki tujuan berikut:
Saya sekarang menggunakannya sebagai pengganti AC dan daemon daya baterai, karena saya dapat menjalankan tugas dengannya.
Sampai kemasan ditambahkan, Anda dapat menginstal sleepwatcher menggunakan kargo.
cargo install --git https://github.com/fishman/sleepwatcher-rs
sleepwatcher-rs menggunakan env_logger . Anda dapat mengaktifkan penebangan dengan mengatur variabel lingkungan RUST_LOG :
RUST_LOG=debug sleepwatcher-rs
Konfigurasi default ditulis ke ~/.config/sleepwatcher-rs/idle_config.lua pada startup jika folder dan file belum ada.
LUA dikonfigurasi menjadi kotak pasir, jadi tidak ada fungsi perpustakaan yang dapat digunakan dan hanya fungsi yang terpapar di dalam karat yang dapat digunakan.
Perbedaan penting antara Helpers:run dan Helpers:run_once . run_once akan memeriksa apakah proses nama itu sudah berjalan dan tidak akan menelurkan yang baru dalam kasus itu. Ini mungkin berguna, ketika loker layar dapat membuat kondisi balapan jika diteluskan dua kali.
Awalnya saya ingin memuat ulang konfigurasi setiap kali adaptor AC dicolokkan dan keluar, tetapi karena masalah batas waktu yang dijelaskan di bawah ini, Anda dapat memeriksa keadaan on_battery dalam fungsi.
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 menciptakan handler timeout idle wayland. Ini menggunakan protokol ext-idle-notify-v1 . Belum) mungkin untuk membuat fungsi panggilan balik, sehingga panggilan fungsi dilakukan dengan menentukan nama fungsi.
PrepareSleep , LockScreen , UnlockScreen , adalah sinyal DBUS dari org.freedesktop.logind.manager dan org.freedesktop.logind.session .
~/.config/sleepwatcher-rs/idle_config.lua diubah. Namun, karena alasan yang tidak diketahui, pemicu pertama setelah dimuat ulang masih mengikuti batas waktu yang lama dan oleh karena itu pemicu berikutnya sama dengan sisa waktu yang lama+pengaturan batas waktu yang baru.