Isso se destina a substituição do daemon de gerenciamento ocioso da Sway. Eu o uso como uma ferramenta para entender a passagem de mensagens de ferrugem e o gerenciamento do estado. Ele pretende ter os seguintes objetivos:
Agora estou usando -o como um substituto para qualquer daemon AC e da bateria, pois posso executar tarefas com ele.
Até que a embalagem seja adicionada, você pode instalar o SleepWatcher usando carga.
cargo install --git https://github.com/fishman/sleepwatcher-rs
O SleepWatcher-RS usa env_logger . Você pode ativar o registro definindo a variável de ambiente RUST_LOG :
RUST_LOG=debug sleepwatcher-rs
A configuração padrão é gravada para ~/.config/sleepwatcher-rs/idle_config.lua na inicialização se a pasta e o arquivo ainda não existirem.
O Lua está configurado para ser caixa de areia, para que nenhuma função da biblioteca possa ser usada e apenas funções expostas dentro da ferrugem podem ser usadas.
Distinção importante entre Helpers:run e Helpers:run_once . run_once verificará se um processo desse nome já está em execução e não gerará um novo nesse caso. Isso pode ser útil, quando um armário de tela pode criar condições de corrida se gerado duas vezes.
Originalmente, eu queria recarregar a configuração sempre que o adaptador CA estiver conectado e fora, mas devido ao problema de tempo limite descrito abaixo, você pode verificar o estado de on_battery nas funções.
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 cria um manipulador de tempo de tempo ocioso de Wayland. Ele usa o protocolo ext-idle-notify-v1 . Ainda não é possível criar funções de retorno de chamada, portanto, as chamadas de função são feitas especificando o nome da função.
PrepareSleep , LockScreen , UnlockScreen , são sinais de DBUs do org.freedesktop.logind.manager e org.freedesktop.logind.session .
~/.config/sleepwatcher-rs/idle_config.lua for alterado. No entanto, devido a um motivo desconhecido, o primeiro gatilho após a recarga ainda segue o tempo limite antigo e o próximo gatilho é, portanto, igual ao restante do tempo limite anterior+a nova configuração de tempo limite.