-- 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.")
    end
end
mp.add_hook("on_load", 1, adjust)
