elenapan/config/awesome/evil/brightness.lua

38 lines
1.1 KiB
Lua

-- Provides:
-- evil::brightness
-- percentage (integer)
local awful = require("awful")
-- Subscribe to backlight changes
-- Requires inotify-tools
local brightness_subscribe_script = [[
bash -c "
while (inotifywait -e modify /sys/class/backlight/?*/brightness -qq) do echo; done
"]]
local brightness_script = [[
sh -c "
light -G
"]]
local emit_brightness_info = function()
awful.spawn.with_line_callback(brightness_script, {
stdout = function(line)
percentage = math.floor(tonumber(line))
awesome.emit_signal("evil::brightness", percentage)
end
})
end
-- Run once to initialize widgets
emit_brightness_info()
-- Kill old inotifywait process
awful.spawn.easy_async_with_shell("ps x | grep \"inotifywait -e modify /sys/class/backlight\" | grep -v grep | awk '{print $1}' | xargs kill", function ()
-- Update brightness status with each line printed
awful.spawn.with_line_callback(brightness_subscribe_script, {
stdout = function(_)
emit_brightness_info()
end
})
end)