From c764098185c3bab9cf10d75c5069e5c0d4dc6d48 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Fri, 22 Feb 2013 15:09:51 -0300 Subject: Adding volume keys and widgets --- modules/awesome/config.dot/awesome.link/keys.lua | 7 ++++- modules/awesome/config.dot/awesome.link/rc.lua | 2 ++ modules/awesome/config.dot/awesome.link/volume.lua | 34 ++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 modules/awesome/config.dot/awesome.link/volume.lua diff --git a/modules/awesome/config.dot/awesome.link/keys.lua b/modules/awesome/config.dot/awesome.link/keys.lua index 2b1294e..04e1549 100644 --- a/modules/awesome/config.dot/awesome.link/keys.lua +++ b/modules/awesome/config.dot/awesome.link/keys.lua @@ -11,8 +11,13 @@ globalkeys = awful.util.table.join(root.keys(), awful.key({ modkey, "Control" }, "h", function () awful.util.spawn("xhibernate") end), awful.key({ modkey, "Control" }, "k", function () awful.util.spawn("kedpm") end), awful.key({ modkey, "Control" }, "c", function () awful.util.spawn("chromium-browser") end), - awful.key({ modkey, "Control" }, "t", function () awful.util.spawn("thunar") end) + awful.key({ modkey, "Control" }, "t", function () awful.util.spawn("thunar") end), --awful.key({ modkey, "Control" }, "b", function () awful.util.spawn("terminal irssi") end), + + -- Volume keys + awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer set Master 9%+", false) end), + awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer set Master 9%-", false) end), + awful.key({ }, "XF86AudioMute", function () awful.util.spawn("amixer sset Master toggle", false) end) ) -- Set keys diff --git a/modules/awesome/config.dot/awesome.link/rc.lua b/modules/awesome/config.dot/awesome.link/rc.lua index 0fbe0ed..181e058 100644 --- a/modules/awesome/config.dot/awesome.link/rc.lua +++ b/modules/awesome/config.dot/awesome.link/rc.lua @@ -55,6 +55,7 @@ layouts = -- {{{ Widgets -- Leds dofile(configdir .. "/leds.lua") +--dofile(configdir .. "/volume.lua") -- }}} -- {{{ Tags @@ -163,6 +164,7 @@ for s = 1, screen.count() do mytextclock, s == 1 and mysystray or nil, myledbox, + volume_widget, mytasklist[s], layout = awful.widget.layout.horizontal.rightleft } diff --git a/modules/awesome/config.dot/awesome.link/volume.lua b/modules/awesome/config.dot/awesome.link/volume.lua new file mode 100644 index 0000000..0a5bb45 --- /dev/null +++ b/modules/awesome/config.dot/awesome.link/volume.lua @@ -0,0 +1,34 @@ +-- See http://awesome.naquadah.org/wiki/Volume_control_and_display +volume_widget = widget({ type = "textbox", name = "tb_volume", + align = "right" }) + +function update_volume(widget) + local fd = io.popen("amixer sget Master") + local status = fd:read("*all") + fd:close() + + local volume = tonumber(string.match(status, "(%d?%d?%d)%%")) / 100 + -- volume = string.format("% 3d", volume) + + status = string.match(status, "%[(o[^%]]*)%]") + + -- starting colour + local sr, sg, sb = 0x3F, 0x3F, 0x3F + -- ending colour + local er, eg, eb = 0xDC, 0xDC, 0xCC + + local ir = volume * (er - sr) + sr + local ig = volume * (eg - sg) + sg + local ib = volume * (eb - sb) + sb + interpol_colour = string.format("%.2x%.2x%.2x", ir, ig, ib) + if string.find(status, "on", 1, true) then + volume = " " + else + volume = " M " + end + widget.text = volume + end + +mytimer = timer({ timeout = 1 }) +mytimer:add_signal("timeout", function () update_volume(volume_widget) end) +mytimer:start() -- cgit v1.2.3