diff options
author | Nuno Silva <nuno.m.ribeiro.silva@tecnico.ulisboa.pt> | 2021-04-15 22:38:19 +0100 |
---|---|---|
committer | Nuno Silva <nuno.m.ribeiro.silva@tecnico.ulisboa.pt> | 2021-04-15 22:38:19 +0100 |
commit | ce1af8e6072464112e792829565d8b922122e265 (patch) | |
tree | ae26b01f9e57441292471ad25e18264b4cfeae76 | |
parent | c340f49ae57d012f504da3e9b40af905130b49a2 (diff) |
brightness-widget: support right click
toggles brightness between current level and 0
-rw-r--r-- | brightness-widget/brightness.lua | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/brightness-widget/brightness.lua b/brightness-widget/brightness.lua index 052c56b..f222adc 100644 --- a/brightness-widget/brightness.lua +++ b/brightness-widget/brightness.lua @@ -41,6 +41,7 @@ local function worker(user_args) local program = args.program or 'light' local step = args.step or 5 local base = args.base or 20 + local level = 0 -- current brightness value if program == 'light' then get_brightness_cmd = 'light -G' set_brightness_cmd = 'light -S ' -- <level> @@ -108,16 +109,34 @@ local function worker(user_args) local update_widget = function(widget, stdout, _, _, _) local brightness_level = tonumber(string.format("%.0f", stdout)) + level = brightness_level widget:set_value(brightness_level) end function brightness_widget:set(value) + level = value spawn.easy_async(set_brightness_cmd .. value, function() spawn.easy_async(get_brightness_cmd, function(out) update_widget(brightness_widget.widget, out) end) end) end + local old_level = 0 + function brightness_widget:toggle() + if old_level < 0.1 then + -- avoid toggling between '0' and 'almost 0' + old_level = 1 + end + if level < 0.1 then + -- restore previous level + level = old_level + else + -- save current brightness for later + old_level = level + level = 0 + end + brightness_widget:set(level) + end function brightness_widget:inc() spawn.easy_async(inc_brightness_cmd, function() spawn.easy_async(get_brightness_cmd, function(out) @@ -136,6 +155,7 @@ local function worker(user_args) brightness_widget.widget:buttons( awful.util.table.join( awful.button({}, 1, function() brightness_widget:set(base) end), + awful.button({}, 3, function() brightness_widget:toggle() end), awful.button({}, 4, function() brightness_widget:inc() end), awful.button({}, 5, function() brightness_widget:dec() end) ) |