diff --git a/config/awesome/awesome-wm-widgets b/config/awesome/awesome-wm-widgets deleted file mode 160000 index 8439ca7..0000000 --- a/config/awesome/awesome-wm-widgets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8439ca7930e73e17746a1d6f0610417e8a42865f diff --git a/config/awesome/cmus-widget/cmus.lua b/config/awesome/cmus-widget/cmus.lua deleted file mode 100644 index 0712ef0..0000000 --- a/config/awesome/cmus-widget/cmus.lua +++ /dev/null @@ -1,128 +0,0 @@ -------------------------------------------------- --- Cmus Widget for Awesome Window Manager --- Show what's playing, play/pause, etc - --- @author Augusto Gunsch --- @copyright 2022 Augusto Gunsch -------------------------------------------------- - -local awful = require("awful") -local wibox = require("wibox") -local watch = require("awful.widget.watch") -local spawn = require("awful.spawn") -local naughty = require("naughty") - -local cmus_widget = {} - -local function show_warning(message) - naughty.notify{ - preset = naughty.config.presets.critical, - title = "Cmus Widget", - text = message} -end - -local function worker(user_args) - - local args = user_args or {} - local font = args.font or "Play 8" - - local path_to_icons = args.path_to_icons or "/usr/share/icons/Arc/actions/symbolic/" - local timeout = args.timeout or 10 - local space = args.space or 3 - - cmus_widget.widget = wibox.widget { - { - { - id = "playback_icon", - resize = false, - widget = wibox.widget.imagebox, - }, - layout = wibox.container.place - }, - { - id = "text", - font = font, - widget = wibox.widget.textbox - }, - spacing = space, - layout = wibox.layout.fixed.horizontal, - update_icon = function(self, name) - self:get_children_by_id("playback_icon")[1]:set_image(path_to_icons .. name) - end, - set_title = function(self, title) - self:get_children_by_id("text")[1]:set_text(title) - end - } - - function update_widget(widget, stdout, _, _, code) - if code == 0 then - local cmus_info = {} - - for s in stdout:gmatch("[^\r\n]+") do - local key, val = string.match(s, "^tag (%a+) (.+)$") - - if key and val then - cmus_info[key] = val - else - local key, val = string.match(s, "^set (%a+) (.+)$") - - if key and val then - cmus_info[key] = val - else - local key, val = string.match(s, "^(%a+) (.+)$") - if key and val then - cmus_info[key] = val - end - end - end - end - - local title = cmus_info.title - - if not title and cmus_info.file then - title = cmus_info.file:gsub("%..-$", "") - title = title:gsub("^.+/", "") - end - - if title then - if cmus_info["status"] == "playing" then - widget:update_icon("media-playback-start-symbolic.svg") - elseif cmus_info["status"] == "paused" then - widget:update_icon("media-playback-pause-symbolic.svg") - else - widget:update_icon("media-playback-stop-symbolic.svg") - end - - widget:set_title(title) - widget.visible = true - else - widget.visible = false - widget.width = 0 - end - else - widget.visible = false - end - end - - function cmus_widget:play_pause() - spawn("cmus-remote -u") - spawn.easy_async_with_shell("cmus-remote -Q", - function(stdout, _, _, code) - update_widget(cmus_widget.widget, stdout, _, _, code) - end) - end - - cmus_widget.widget:buttons( - awful.util.table.join( - awful.button({}, 1, function() cmus_widget:play_pause() end) - ) - ) - - watch("cmus-remote -Q", timeout, update_widget, cmus_widget.widget) - - return cmus_widget.widget -end - -return setmetatable(cmus_widget, { __call = function(_, ...) - return worker(...) -end }) diff --git a/config/awesome/rc.lua b/config/awesome/rc.lua index 46446f4..2b95c5e 100644 --- a/config/awesome/rc.lua +++ b/config/awesome/rc.lua @@ -23,7 +23,7 @@ local is_deb, debian = pcall(require, "debian.menu") local has_fdo, freedesktop = pcall(require, "freedesktop") -- awesome-wm-widgets -local cmus_widget = require("cmus-widget.cmus") +local cmus_widget = require("awesome-wm-widgets.cmus-widget.cmus") local volume_widget = require("awesome-wm-widgets.volume-widget.volume") local battery_widget = require("awesome-wm-widgets.battery-widget.battery") local brightness_widget = require("awesome-wm-widgets.brightness-widget.brightness") @@ -321,8 +321,13 @@ globalkeys = gears.table.join( awful.key({ }, "XF86MonBrightnessUp", function () brightness_widget:inc() end, {description = "increase brightness", group = "custom"}), awful.key({ }, "XF86MonBrightnessDown", function () brightness_widget:dec() end, {description = "decrease brightness", group = "custom"}), - -- cmus toggle paused - awful.key({ modkey, "Shift" }, "p", function () cmus_widget:play_pause() end, {description = "play/pause cmus", group = "custom"}), + -- cmus + 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:pause() 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"}), + awful.key({ }, "XF86AudioStop", function () cmus_widget:stop() end, {description = "stop track", group = "cmus"}), awful.key({ modkey, }, "s", hotkeys_popup.show_help, {description="show help", group="awesome"}),