wlsleephandler rs
1.0.0
這旨在替代Sway的閒置守護程序。我將其用作了解生鏽消息傳遞和狀態管理的工具。它的目的是實現以下目標:
我現在將其用作任何交流電和電池電源守護程序的替代品,因為我可以使用它來運行任務。
在添加包裝之前,您可以使用貨物安裝睡眠。
cargo install --git https://github.com/fishman/sleepwatcher-rs
lectwatcher-rs使用env_logger 。您可以通過設置RUST_LOG環境變量來啟用日誌記錄:
RUST_LOG=debug sleepwatcher-rs
如果文件夾和文件尚不存在,則將默認配置寫入startup上的~/.config/sleepwatcher-rs/idle_config.lua 。
將LUA配置為沙盒,因此不能使用庫功能,並且只能使用Rust內部的功能。
Helpers:run和Helpers:run_once 。 run_once將檢查該名稱的一個過程是否已經在運行,在這種情況下不會產生新的過程。當屏幕儲物櫃可以創建比賽條件兩次時,這可能很有用。
最初,我想在AC適配器插入和插入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閒置超時處理程序。它使用ext-idle-notify-v1協議。 (尚未)可以創建回調函數,因此通過指定函數的名稱來進行函數調用。
PrepareSleep , LockScreen , UnlockScreen是org.freedesktop.logind.manager和org.freedesktop.logind.session的dbus信號。
~/.config/sleepwatcher-rs/idle_config.lua時,helecwatcher-rs應自動重新加載配置。但是,由於未知原因,重新加載後的第一個觸發器仍然遵循舊的超時,因此下一個觸發器等於上一個超時+新的超時設置的其餘部分。