Комментарий от asl97 на первой цитированной вами странице, по-видимому, дает ответ, но, вероятно, помогут некоторые пояснения.
as197 предоставляет следующую универсальную функцию Lua для использованияв качестве замены $pre_exec
, перед которым стоит оператор require
, чтобы сделать io
доступным для использования функцией:
require 'io'
function pre_exec(cmd)
local handle = io.popen(cmd)
local output = handle:read("*a")
handle:close()
return output
end
Добавление этого блока кода в файл конфигурации conky сделает функциюдоступны для использования в нем. Для тестирования я добавил его над разделом conky.config = { ... }
.
Вызов функции Lua pre_exec вернет строку, содержащую выходные данные переданной ей команды. Раздел conky.text от [[
до ]]
также является строкой, поэтому его можно присоединить к строке, возвращаемой pre_exec, с помощью оператора ..
, как показано в разделе использования, предоставленном as197.
В своем тесте я выполнил следующий глупый бит, который работал, как и ожидалось, для отображения «Hello World!»и вывод функции date
с интервалом выше и ниже каждого в верхней части моего хитрого дисплея:
conky.text = pre_exec("echo; echo Hello World!; echo; date; echo")..[[
-- lots of boring conky stuff --
]]
Конечно, более серьезные команды могут использоваться с pre_exec, как показано as197.
Одна вещь, которую as197 не объяснил, - это как предоставить способ конкатенации, чтобы вывод pre_exec находился в середине неуклюжего отображения, а не только в начале. Я проверил и обнаружил, что вы можете сделать это следующим образом:
conky.text = [[
-- some conky stuff --
]]..pre_exec("your_important_command")..[[
-- more conky stuff --
]]