If you want a widget for awesome Show archive.org snapshot that runs a command regularly (every X seconds) and puts the output into your awesome panel, this is for you.
Put the code below into your ~/.config/awesome/rc.lua
. It supplies two methods:
-
execute_command
will run a command and return its output. Multiple lines will be joined into one line. The code is from the awesome wiki Show archive.org snapshot . -
widget_with_timeout
is a method that takes a command to run and a timeout in seconds. It'll return an object which contains a widget that you can put into your panel.
^
-- From: http://awesome.naquadah.org/wiki/Awesome_3_configuration
function execute_command(command)
local fh = io.popen(command)
local str = ""
for i in fh:lines() do
str = str .. i
end
io.close(fh)
return str
end-- Helper function to build all you need
function widget_with_timeout(command, seconds)
local object = {}
object.command = command
object.widget = widget({ type = "textbox" })object.update = function () local result = execute_command(object.command) object.widget.text = " " .. awful.util.escape(result) .. " " end object.timer = timer({ timeout = seconds }) object.timer:add_signal("timeout", object.update) object.timer:start() object.update() -- Initialize immediately return object
end
Now use it in your rc.lua
like this:
-- Get current track from DeaDBeeF, every 3 seconds
nowplaying = widget_with_timeout('deadbeef --nowplaying "%a - %t"', 3)
-- Remember to add the widget to your panel:
mywibox[s].widgets = {
...,
nowplaying.widget,
...
}