From 120e15ee161cfe0091c6f1e86138101d63dc64c3 Mon Sep 17 00:00:00 2001 From: Bart Verhagen Date: Fri, 29 May 2020 17:53:10 +0200 Subject: New: Usr: Added user customizable button press behaviour for the volumearc widget This allows the user to override the default implementation in his/her own config upon the widget creation --- volumearc-widget/README.md | 7 ++++++- volumearc-widget/volumearc.lua | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'volumearc-widget') diff --git a/volumearc-widget/README.md b/volumearc-widget/README.md index 5fc0a5b..8f13bbf 100644 --- a/volumearc-widget/README.md +++ b/volumearc-widget/README.md @@ -25,6 +25,7 @@ It is possible to customize widget by providing a table with all or some of the | `inc_volume_cmd` | `amixer -D pulse sset Master 5%+` | Increase volume level | | `dec_volume_cmd` | `amixer -D pulse sset Master 5%-` | Decrease volume level | | `tog_volume_cmd` | `amixer -D pulse sset Master toggle` | Mute / unmute | +| `button_press` | `function(_, _, _, button) end` | Overwrite the 'button\_press' signal for this widget | ### Example: @@ -33,7 +34,11 @@ volumearc_widget({ main_color = '#af13f7', mute_color = '#ff0000', thickness = 5, - height = 25 + height = 25, + button_press = function(_, _, _, button) -- Overwrites the button press behaviour to open pavucontrol when clicked + if (button == 1) then awful.spawn('pavucontrol --tab=3', false) + end + end }) ``` diff --git a/volumearc-widget/volumearc.lua b/volumearc-widget/volumearc.lua index eb2ff68..c582c10 100644 --- a/volumearc-widget/volumearc.lua +++ b/volumearc-widget/volumearc.lua @@ -69,7 +69,7 @@ local function worker(args) or { main_color } end - volumearc:connect_signal("button::press", function(_, _, _, button) + local button_press = args.button_press or function(_, _, _, button) if (button == 4) then awful.spawn(inc_volume_cmd, false) elseif (button == 5) then awful.spawn(dec_volume_cmd, false) elseif (button == 1) then awful.spawn(tog_volume_cmd, false) @@ -78,7 +78,8 @@ local function worker(args) spawn.easy_async(get_volume_cmd, function(stdout, stderr, exitreason, exitcode) update_graphic(volumearc, stdout, stderr, exitreason, exitcode) end) - end) + end + volumearc:connect_signal("button::press", button_press) watch(get_volume_cmd, 1, update_graphic, volumearc) -- cgit v1.2.3