Knowledge Base

Preserving for the future: Shell scripts, AoC, and more

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