As noted in the file itself, this is adapted from MPV script that deactivates XScreensaver when video playback is active, and it was officially listed at User Scripts · mpv-player/mpv Wiki#lua-scripts
files/2024/listings/xscreensaver.lua (Source)
|
-- Ripped from https://gist.github.com/elenril/f8ff9475a7882b7a16cdd723c7dce150 and configured by bgstack15
|
|
-- linked at https://github.com/mpv-player/mpv/wiki/User-Scripts
|
|
-- this script periodically deactivates xscreensaver
|
|
-- when video playback is active
|
|
|
|
local function heartbeat()
|
|
if mp.get_property_native("pause") or
|
|
mp.get_property_native("idle") or
|
|
not mp.get_property_native("vo-configured") then
|
|
return
|
|
end
|
|
|
|
mp.command_native_async(
|
|
{
|
|
name = "subprocess",
|
|
args = { "xscreensaver-command", "-deactivate" },
|
|
capture_stdout = true,
|
|
},
|
|
function () end)
|
|
end
|
|
|
|
mp.add_periodic_timer(10, heartbeat)
|
|
|
|
for _, prop in ipairs({"pause", "idle", "vo-configured"}) do
|
|
mp.observe_property(prop, nil, heartbeat)
|
|
end
|
Tells mpv to keep running command xscreensaver-command -deactivate
which simulates user activity. Ergo, it is designed actually for this use case.
You can place this file as ~/.config/mpv/scripts/xscreensaver.lua
.
Comments