aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/services/backlight.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/awesome/services/backlight.lua')
-rw-r--r--.config/awesome/services/backlight.lua34
1 files changed, 34 insertions, 0 deletions
diff --git a/.config/awesome/services/backlight.lua b/.config/awesome/services/backlight.lua
new file mode 100644
index 0000000..02ed808
--- /dev/null
+++ b/.config/awesome/services/backlight.lua
@@ -0,0 +1,34 @@
+local backlight = require("lib.lit").backlight.new("amdgpu_bl1", 5)
+local gobject = require "gears.object"
+local gtimer = require "gears.timer"
+local naughty = require "naughty"
+local phosphor = require "assets.phosphor"
+local qmath = require "quarrel.math"
+local qvars = require "quarrel.vars"
+
+local backlight_wrapper = gobject {
+ class = {
+ set = function(level, handler)
+ backlight.set(level, handler)
+ end,
+ get = function()
+ return backlight.get()
+ end,
+ },
+}
+
+backlight:connect_signal("brightness", function(_, brightness)
+ local icon_data = qmath.step_value(brightness, {
+ { 0, "cloud_moon" },
+ { 51, "moon" },
+ { 102, "sun_horizon" },
+ { 153, "sun_dim" },
+ { 204, "sun" },
+ { 255 },
+ })
+
+ backlight_wrapper:emit_signal("icon", phosphor[icon_data .. "_fill"], qvars.colors.fg)
+ backlight_wrapper:emit_signal("value", brightness)
+end)
+
+return backlight_wrapper