rewritten backlight helper and osd

This commit is contained in:
Rene Kievits
2022-11-28 13:03:27 +01:00
parent d63ffa1171
commit 642338e577
3 changed files with 174 additions and 143 deletions

View File

@@ -1,32 +1,57 @@
local awful = require("awful")
local aspawn = require("awful.spawn")
local capi = {
awesome = awesome,
}
BACKLIGHT_MAX_BRIGHTNESS = 0
BACKLIGHT_SEPS = 0
awful.spawn.easy_async_with_shell(
"pkexec xfpm-power-backlight-helper --get-max-brightness",
function(stdout)
BACKLIGHT_MAX_BRIGHTNESS = tonumber(stdout)
BACKLIGHT_SEPS = BACKLIGHT_MAX_BRIGHTNESS / 100 * 2
BACKLIGHT_SEPS = math.floor(BACKLIGHT_SEPS)
end
)
local backlight = {}
capi.awesome.connect_signal(
"brightness::update",
function()
awful.spawn.easy_async_with_shell(
"pkexec xfpm-power-backlight-helper --get-brightness",
function(value)
capi.awesome.emit_signal("brightness::get",
math.floor((tonumber(value) - 1) / (BACKLIGHT_MAX_BRIGHTNESS - 1) * 100))
capi.awesome.emit_signal("brightness::rerun")
end
)
end
)
backlight.device = ""
capi.awesome.emit_signal("brightness::update")
backlight.max_brightness = 1
-- Init the backlight device and get the max brightness
aspawn.easy_async_with_shell("ls /sys/class/backlight/", function(stdout)
backlight.device = stdout:gsub("%s+", "")
aspawn.easy_async_with_shell("cat /sys/class/backlight/" .. backlight.device .. "/max_brightness", function(stdout)
backlight.max_brightness = tonumber(stdout:gsub("\n", "") or 0)
end)
end)
function backlight.brightness_get()
aspawn.easy_async_with_shell("cat /sys/class/backlight/" .. backlight.device .. "/brightness", function(stdout)
capi.awesome.emit_signal("brightness::get", tonumber(stdout))
end)
end
function backlight.brightness_get_percent()
aspawn.easy_async_with_shell("cat /sys/class/backlight/" .. backlight.device .. "/brightness", function(stdout)
capi.awesome.emit_signal("brightness::get_percent",
math.floor((tonumber(stdout) / backlight.max_brightness * 100) + 0.5))
end)
end
function backlight.brightness_set(value)
if value < 0 or value > (backlight.max_brightness or 24000) then return end
aspawn.with_shell("echo " .. math.floor(value) .. " > /sys/class/backlight/" .. backlight.device .. "/brightness")
end
function backlight.brightness_increase()
aspawn.easy_async_with_shell("cat /sys/class/backlight/" .. backlight.device .. "/brightness", function(stdout)
local new_value = tonumber(stdout:gsub("\n", "") or 0) +
(backlight.max_brightness / 100 * User_config.brightness_step)
backlight.brightness_set(new_value)
capi.awesome.emit_signal("brightness::changed", new_value)
end)
end
function backlight.brightness_decrease()
aspawn.easy_async_with_shell("cat /sys/class/backlight/" .. backlight.device .. "/brightness", function(stdout)
local new_value = tonumber(stdout:gsub("\n", "") or 0) -
(backlight.max_brightness / 100 * User_config.brightness_step)
backlight.brightness_set(new_value)
capi.awesome.emit_signal("brightness::changed", new_value)
end)
end
return backlight