yes, I'm very commit lazy
This commit is contained in:
@@ -1,57 +1,41 @@
|
||||
local aspawn = require("awful.spawn")
|
||||
local capi = {
|
||||
awesome = awesome,
|
||||
}
|
||||
local aspawn = require('awful.spawn')
|
||||
local gobject = require('gears.object')
|
||||
local gtable = require('gears.table')
|
||||
|
||||
local backlight = {}
|
||||
|
||||
backlight.device = ""
|
||||
local instance = nil
|
||||
|
||||
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))
|
||||
function backlight.brightness_get_async(callback)
|
||||
aspawn.easy_async_with_shell('brightnessctl get', function(stdout)
|
||||
callback(tonumber(stdout:gsub('\n', '')))
|
||||
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))
|
||||
function backlight:brightness_increase()
|
||||
aspawn('brightnessctl set +2%')
|
||||
self:emit_signal('brightness_changed')
|
||||
end
|
||||
|
||||
function backlight:brightness_decrease()
|
||||
aspawn('brightnessctl set -2%')
|
||||
self:emit_signal('brightness_changed')
|
||||
end
|
||||
|
||||
local function new()
|
||||
local self = gobject {}
|
||||
|
||||
gtable.crush(self, backlight, true)
|
||||
|
||||
-- Init the backlight device and get the max brightness
|
||||
aspawn.easy_async_with_shell('brightnessctl max', function(stdout)
|
||||
self.max_brightness = tonumber(stdout:gsub('\n', '') or 1)
|
||||
end)
|
||||
|
||||
return self
|
||||
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")
|
||||
if not instance then
|
||||
instance = new()
|
||||
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
|
||||
return instance
|
||||
|
||||
Reference in New Issue
Block a user