From 12cfe038f87b2f8366e9865135087a61b5a3c2c0 Mon Sep 17 00:00:00 2001 From: Augusto Gunsch Date: Sun, 10 Jul 2022 20:59:28 +0200 Subject: [PATCH] Add more functions for cmus widget --- cmus-widget/README.md | 9 +++++---- cmus-widget/cmus.lua | 28 ++++++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/cmus-widget/README.md b/cmus-widget/README.md index eec5773..0f6dbc2 100644 --- a/cmus-widget/README.md +++ b/cmus-widget/README.md @@ -31,10 +31,11 @@ s.mytasklist, -- Middle widget To improve responsiveness of the widget when playback is changed by a shortcut use corresponding methods of the widget: ```lua -awful.key({ modkey, "Shift" }, - "p", - function() cmus_widget:play_pause() end, - {description = "play/pause cmus", group = "custom"}), +awful.key({ modkey, "Shift" }, "p", function () cmus_widget:play_pause() end, {description = "toggle track", group = "cmus"}), +awful.key({ }, "XF86AudioPlay", function () cmus_widget:play() end, {description = "play track", group = "cmus"}), +awful.key({ }, "XF86AudioPause", function () cmus_widget:play() end, {description = "pause track", group = "cmus"}), +awful.key({ }, "XF86AudioNext", function () cmus_widget:next_track() end, {description = "next track", group = "cmus"}), +awful.key({ }, "XF86AudioPrev", function () cmus_widget:prev_track() end, {description = "previous track", group = "cmus"}), ``` ## Customization diff --git a/cmus-widget/cmus.lua b/cmus-widget/cmus.lua index 2ffa872..d676550 100644 --- a/cmus-widget/cmus.lua +++ b/cmus-widget/cmus.lua @@ -96,14 +96,38 @@ local function worker(user_args) end end - function cmus_widget:play_pause() - spawn("cmus-remote -u") + function cmus_widget:update() spawn.easy_async("cmus-remote -Q", function(stdout, _, _, code) update_widget(cmus_widget.widget, stdout, _, _, code) end) end + function cmus_widget:play_pause() + spawn("cmus-remote -u") + cmus_widget.update() + end + + function cmus_widget:pause() + spawn("cmus-remote -u") + cmus_widget.update() + end + + function cmus_widget:play() + spawn("cmus-remote -u") + cmus_widget.update() + end + + function cmus_widget:next_track() + spawn("cmus-remote -u") + cmus_widget.update() + end + + function cmus_widget:prev_track() + spawn("cmus-remote -u") + cmus_widget.update() + end + cmus_widget.widget:buttons( awful.util.table.join( awful.button({}, 1, function() cmus_widget:play_pause() end)