Я работаю, чтобы упростить мой conky путем рефакторинга логики отображения в функции lua, но я не могу найти никаких примеров того, как передавать пути к файлам, и мои попытки угадать приводят к ошибкам скрипта.
То, что я пытаюсь сделать, это отобразить на каждой панели следующее: о root, home и 3 других смонтированных файловых системах. Текущая рабочая логика для каждой строки похожа на эту строку для / home:
${goto 10}${voffset 4}${font StyleBats:size=8}4${font} Home: ${goto 90}${color1}${fs_bar 6,100 /home}${color} ${goto 150}${alignr}${fs_free /home}
Каждая последующая строка отличается ТОЛЬКО в метке и 2 жестко закодированных путях (в разделах fs_bar и fs_free)
Итак, я снимаю для вызова функции, как это:
${lua conky_display_fs("Home", "/home")}
с функцией lua:
function conky_display_fs (fname, fpath)
local outstring = conky_parse("${goto 10}${voffset 4}${font StyleBats:size=8}4${font} " .. fname .. ": ${goto 90}${color1}${fs_bar 6,100 " .. fpath .. "}${color} ${goto 150}${alignr}${fs_free " .. fpath .."}")
print (outstring)
return outstring
конец
, но он постоянно завершается ошибкой, показывая следующее в журнале отладки conky
conky: llua_do_call: function conky_display_fs("Home", execution failed: attempt to call a nil value
Итак, я предполагаю, что проблема в том, КАК я передаю строку пути, так как она показывает только первое значение в ошибке. Я думал о экранировании строк и т. Д., Но имена файлов, используемые в других частях конфигурации conky, не требуют их, например:
lua_load = "~/conky-manager/MyConky/functions.lua",
и я не могу найти примеры передачи путей к файлам или даже передачи нескольких строковых параметров, только простые примеры с использованием vars.
Это для существующей конфигурации conky, где успешный текст conky, показанный в первом блоке кода, работает отлично. Я уже пробовал несколько вариантов вызова, меняя кавычки, запятую / без запятой, другое имя параметра, чтобы избежать ключевых слов ...