-- If the laptop is on battery, the profile 'lq' will be loaded; otherwise 'hq' is used -- local lqprofile = "lowquality" local hqprofile = "highquality" local function powerstate() local f = io.open("/sys/class/power_supply/AC/online") if f == nil then return end local t = f:read("*n") f:close() return t end local function adjust() local state = powerstate() -- this actually overrides automatically applied profiles -- like 'protocol.http' if state == 0 then mp.msg.info("Running on battery, setting low-quality options.") mp.set_property("profile", lqprofile) else mp.msg.info("Not running on battery, setting high-quality options.") mp.set_property("profile", hqprofile) end end mp.add_hook("on_load", 1, adjust)