From 0186777142eb733e600b34210854a77b2d390a77 Mon Sep 17 00:00:00 2001 From: Samir Benmendil Date: Mon, 1 Feb 2016 22:15:25 +0000 Subject: [PATCH] awesome: replace kmix with pulsemixer --- awesome/rules.lua | 9 ++++--- awesome/utils.lua | 43 ++++++++++++++++++++++--------- awesome/widgets/volume_widget.lua | 6 ++++- 3 files changed, 42 insertions(+), 16 deletions(-) diff --git a/awesome/rules.lua b/awesome/rules.lua index 2bdd306..fe8ffc0 100644 --- a/awesome/rules.lua +++ b/awesome/rules.lua @@ -31,12 +31,15 @@ awful.rules.rules = { properties = { floating = true } }, { rule = { class = "gimp" }, properties = { floating = true } }, - { rule = { class = "Kmix" }, + { rule = { class = "URxvt", instance = "pulsemixer" }, properties = { floating = true, skip_taskbar = true, ontop = true, - x = 1920 - 310, y = mywibox[mouse.screen].height, - width = 100, height = 100 } }, + function (c) + c:geometry({ x = 1920 - 500, y = mywibox[mouse.screen].height, + width = 500, height = 300}) + c:connect_signal("unfocus", function (c) c:kill() end) + end } }, { rule = { class = "URxvt"}, properties = { opacity = 0.8 } }, { rule = { class = "URxvt", instance = "mutt" }, diff --git a/awesome/utils.lua b/awesome/utils.lua index 7519473..0c56131 100644 --- a/awesome/utils.lua +++ b/awesome/utils.lua @@ -9,22 +9,41 @@ utils.globalkeys = { } local host = io.popen("hostname") utils.host = host:read("*l") -function utils.run_or_kill(command) - -- Check throught the clients if the class match the command - local lower_command=string.lower(command) +function utils.run_or_kill(prg, cprop, screen) + if not prg then + do return nil end + end + + if not cprop then + cprop = { } + end + + if not cprop.class then + cprop.class = prg + end + + if not cprop.instance then + cprop.instance = "" + end + + cprop.class = string.lower(cprop.class) + cprop.instance = string.lower(cprop.instance) + for k, c in pairs(client.get()) do -- apparently some steam games don't have a client class - if c.class ~= nil then - local class=string.lower(c.class) - if string.match(class, lower_command) then - for i, v in ipairs(c:tags()) do - c:kill() - return - end + if c.class == nil then + return + end + local class=string.lower(c.class) + local instance=string.lower(c.instance) + if string.match(class, cprop.class) and string.match(instance, cprop.instance) then + for i, v in ipairs(c:tags()) do + c:kill() + return end end end - awful.util.spawn(command) + awful.util.spawn_with_shell(prg, screen) end -- http://awesome.naquadah.org/wiki/Autostart#Simple_way @@ -37,7 +56,7 @@ function utils.run_once(prg,arg_string,pname,screen) pname = prg end - if not arg_string then + if not arg_string then awful.util.spawn_with_shell("pgrep -f -u $USER -x '" .. pname .. "' || (" .. prg .. ")",screen) else awful.util.spawn_with_shell("pgrep -f -u $USER -x '" .. pname .. " ".. arg_string .."' || (" .. prg .. " " .. arg_string .. ")",screen) diff --git a/awesome/widgets/volume_widget.lua b/awesome/widgets/volume_widget.lua index 48fcbad..9103575 100644 --- a/awesome/widgets/volume_widget.lua +++ b/awesome/widgets/volume_widget.lua @@ -12,7 +12,11 @@ volwidget = wibox.widget.textbox() vicious.register(volwidget, vicious.contrib.pulse, '🔊 '.."$1", 1, device) -- Mouse bindings -volwidget:buttons(awful.util.table.join( awful.button({ }, 1, function () utils.run_or_kill("kmix") end), +volwidget:buttons(awful.util.table.join( + awful.button({ }, 1, + function () + utils.run_or_kill("urxvt -name pulsemixer -e pulsemixer", {class = "urxvt", instance = "pulsemixer"}) + end), awful.button({ }, 2, function () vicious.contrib.pulse.toggle(device) -- 2.48.1