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应自动重新加载配置。但是,由于未知原因,重新加载后的第一个触发器仍然遵循旧的超时,因此下一个触发器等于上一个超时+新的超时设置的其余部分。