summaryrefslogtreecommitdiff
path: root/brightness-widget
diff options
context:
space:
mode:
Diffstat (limited to 'brightness-widget')
-rw-r--r--brightness-widget/README.md35
-rw-r--r--brightness-widget/brightness.lua87
2 files changed, 85 insertions, 37 deletions
diff --git a/brightness-widget/README.md b/brightness-widget/README.md
index 5d592b6..7b05d2f 100644
--- a/brightness-widget/README.md
+++ b/brightness-widget/README.md
@@ -2,6 +2,29 @@
This widget represents current brightness level: ![Brightness widget](./br-wid-1.png)
+## Customization
+
+It is possible to customize widget by providing a table with all or some of the following config parameters:
+
+| Name | Default | Description |
+|---|---|---|
+| `get_brightness_cmd` | `light -G` | Get current screen brightness |
+| `inc_brightness_cmd` | `light -A 5` | Increase brightness |
+| `dec_brightness_cmd` | `light -U 5`| Decrease brightness |
+| `path_to_icon` | `/usr/share/icons/Arc/status/symbolic/display-brightness-symbolic.svg` | Path to the icon |
+| `font` | `Play 9` | Font |
+
+### Example:
+
+```lua
+brightness_widget({
+ get_brightness_cmd = 'xbacklight -get',
+ inc_brightness_cmd = 'xbacklight -inc 5',
+ dec_brightness_cmd = 'xbacklight -dec 5'
+})
+```
+
+
## Installation
First you need to get the current brightness level. There are two options:
@@ -29,8 +52,6 @@ First you need to get the current brightness level. There are two options:
49.18
```
-Depending on the chosen option change `GET_BRIGHTNESS_CMD` variable in **brightness.lua**.
-
Then clone this repo under **~/.config/awesome/**:
```bash
@@ -50,7 +71,15 @@ s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
...
- brightness_widget,
+ -- default
+ brightness_widget(),
+ -- or customized
+ brightness_widget({
+ get_brightness_cmd = 'xbacklight -get',
+ inc_brightness_cmd = 'xbacklight -inc 5',
+ dec_brightness_cmd = 'xbacklight -dec 5'
+ })
+ }
...
```
diff --git a/brightness-widget/brightness.lua b/brightness-widget/brightness.lua
index 075765c..28e7015 100644
--- a/brightness-widget/brightness.lua
+++ b/brightness-widget/brightness.lua
@@ -5,7 +5,7 @@
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/brightness-widget
-- @author Pavel Makhov
--- @copyright 2017 Pavel Makhov
+-- @copyright 2017-2019 Pavel Makhov
-------------------------------------------------
local wibox = require("wibox")
@@ -17,36 +17,55 @@ 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 brightness_text = wibox.widget.textbox()
-brightness_text:set_font('Play 9')
-
-local brightness_icon = wibox.widget {
- {
- image = PATH_TO_ICON,
- resize = false,
- widget = wibox.widget.imagebox,
- },
- top = 3,
- widget = wibox.container.margin
-}
-
-local brightness_widget = wibox.widget {
- brightness_icon,
- brightness_text,
- layout = wibox.layout.fixed.horizontal,
-}
-
-local update_widget = function(widget, stdout, stderr, exitreason, exitcode)
- local brightness_level = tonumber(string.format("%.0f", stdout))
- widget:set_text(" " .. brightness_level .. "%")
-end,
-
-brightness_widget: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, brightness_text)
-
-return brightness_widget
+local widget = {}
+
+local function worker(args)
+
+ local args = args or {}
+
+ local get_brightness_cmd = args.get_brightness_cmd or GET_BRIGHTNESS_CMD
+ local inc_brightness_cmd = args.inc_brightness_cmd or INC_BRIGHTNESS_CMD
+ local dec_brightness_cmd = args.dec_brightness_cmd or DEC_BRIGHTNESS_CMD
+ local path_to_icon = args.path_to_icon or PATH_TO_ICON
+ local font = args.font or 'Play 9'
+
+ local brightness_text = wibox.widget.textbox()
+ brightness_text:set_font(font)
+
+ local brightness_icon = wibox.widget {
+ {
+ image = path_to_icon,
+ resize = false,
+ widget = wibox.widget.imagebox,
+ },
+ top = 3,
+ widget = wibox.container.margin
+ }
+
+ widget = wibox.widget {
+ brightness_icon,
+ brightness_text,
+ layout = wibox.layout.fixed.horizontal,
+ }
+
+ local update_widget = function(widget, stdout, _, _, _)
+ local brightness_level = tonumber(string.format("%.0f", stdout))
+ widget:set_text(" " .. brightness_level .. "%")
+ end,
+
+ widget: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, brightness_text)
+
+ return widget
+end
+
+return setmetatable(widget, { __call = function(_, ...)
+ return worker(...)
+end })