rewritten backlight helper and osd
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user