42 lines
944 B
Lua
42 lines
944 B
Lua
local aspawn = require('awful.spawn')
|
|
local gobject = require('gears.object')
|
|
local gtable = require('gears.table')
|
|
|
|
local backlight = {}
|
|
|
|
local instance = nil
|
|
|
|
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_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
|
|
|
|
if not instance then
|
|
instance = new()
|
|
end
|
|
return instance
|