summaryrefslogtreecommitdiff
path: root/brightnessarc-widget/brightnessarc.lua
diff options
context:
space:
mode:
authorPavel Makhov <pmakhov@touchtunes.com>2019-02-13 11:43:57 -0500
committerPavel Makhov <pmakhov@touchtunes.com>2019-02-13 11:43:57 -0500
commitb1756027ed46ff1232845504a877dde38562f6e2 (patch)
tree85101e77bac31a04184e183ecddb689c15ecc003 /brightnessarc-widget/brightnessarc.lua
parentf95c2015ea0a498e1082b70a897311068e3841a1 (diff)
brightnessarc widget
Diffstat (limited to 'brightnessarc-widget/brightnessarc.lua')
-rw-r--r--brightnessarc-widget/brightnessarc.lua57
1 files changed, 57 insertions, 0 deletions
diff --git a/brightnessarc-widget/brightnessarc.lua b/brightnessarc-widget/brightnessarc.lua
new file mode 100644
index 0000000..9bd2826
--- /dev/null
+++ b/brightnessarc-widget/brightnessarc.lua
@@ -0,0 +1,57 @@
+-------------------------------------------------
+-- Brightness Widget for Awesome Window Manager
+-- Shows the brightness level of the laptop display
+-- More details could be found here:
+-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/brightness-widget
+
+-- @author Pavel Makhov
+-- @copyright 2017 Pavel Makhov
+-------------------------------------------------
+
+local wibox = require("wibox")
+local watch = require("awful.widget.watch")
+local spawn = require("awful.spawn")
+local naughty = require("naughty")
+
+local PATH_TO_ICON = "/usr/share/icons/Arc/status/symbolic/display-brightness-symbolic.svg"
+local GET_BRIGHTNESS_CMD = "light -G" -- "xbacklight -get"
+local INC_BRIGHTNESS_CMD = "light -A 5" -- "xbacklight -inc 5"
+local DEC_BRIGHTNESS_CMD = "light -U 5" -- "xbacklight -dec 5"
+
+local icon = {
+ id = "icon",
+ image = PATH_TO_ICON,
+ resize = true,
+ widget = wibox.widget.imagebox,
+}
+
+local brightnessarc = wibox.widget {
+ icon,
+ max_value = 1,
+ thickness = 2,
+ start_angle = 4.71238898, -- 2pi*3/4
+ forced_height = 18,
+ forced_width = 18,
+ bg = "#ffffff11",
+ paddings = 2,
+ widget = wibox.container.arcchart
+}
+
+local brightnessarc_widget = wibox.container.mirror(brightnessarc, { horizontal = true })
+
+local update_widget = function(widget, stdout, stderr, exitreason, exitcode)
+ local brightness_level = string.match(stdout, "(%d?%d?)")
+ brightness_level = tonumber(string.format("% 3d", brightness_level))
+
+ widget.value = brightness_level / 100;
+end,
+
+brightnessarc:connect_signal("button::press", function(_,_,_,button)
+ if (button == 4) then spawn(INC_BRIGHTNESS_CMD, false)
+ elseif (button == 5) then spawn(DEC_BRIGHTNESS_CMD, false)
+ end
+end)
+
+watch(GET_BRIGHTNESS_CMD, 1, update_widget, brightnessarc)
+
+return brightnessarc_widget