Files
crylia-theme/awesome/src/tools/helpers/backlight.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