maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
serkhay Йеее-ссс! Спасибо огромное! Получилось, кусок кода реализующий это, работать оказывается так же как и с файлом :) f_pipe = io.popen("pacman -Qu") -- Создаем пустую таблицу пакетов local pkg = {} -- Читаем список обновлений в таблицу -- одновременно читая их количество local num_pkg = 0 for line in f_pipe:lines() do pkg[num_pkg] = (num_pkg+1)..". "..line num_pkg = num_pkg + 1 end io.close(f_pipe) А вот результат
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
serkhay Вывод выполняется в консоль, а возвращаемое этой функцией значение носит характер статусного. Интересует возможность возвратить в какую-либо переменную результат выполнения консольной команды
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
palpalych, думаю необходимо поставить себе какую-нибудь сложную задачу и начать её решать, ища средства для её реализации. Я сам не программист по образованию, и программирование осваивал по мере реализации своих идей, откуда имею недостаток в фундаментальности своих знаний, частично компенсируя разнообразным опытом. Изучать web-разработку на стандартных примерах имхо скучно и в конце концов надоест, без какой-то цели занятие бессмысленное. Найдите для себя такую задачу, чтобы она целиком вас захватила - результат не замедлит появится ;)
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
Задача следующая - перенаправить вывод команды pacman -Qu в таблицу строк Lua. Делаю виджет, отображающий список доступных обновлений, и пока эта задача реализована так 1. Каждые 5 минут cron синхронизирует базу pacman -Syy а так же выводит список доступных обновлений в текстовый файл pacman -Qu > updates.lst 2. Далее lua-скрипт в conky читает этот файл в таблицу строк и парсит полученную структуру Вопрос - как можно обойтись без промежуточного вывода в файл Текст скрипта require 'cairo' ---------------------------------------------------------------------------------- -- Функция отрисовки, вызываемая из conky ---------------------------------------------------------------------------------- function conky_startlua() if conky_window == nil then return end -- Создаем поверхность для рисования local cs = cairo_xlib_surface_create (conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height) -- Создаем ресурс для рисования cr = cairo_create (cs) -- Открываем для чтения файл со списком пакетов f = io.open("/home/maisvendoo/.conky/updates.lst", "r") -- Создаем пустую таблицу пакетов local pkg = {} -- Читаем список обновлений в таблицу -- одновременно читая их количество local num_pkg = 0 for line in f:lines() do pkg[num_pkg] = line num_pkg = num_pkg + 1 end -- Вывод на экран -- Заголовок local title = "Доступные обновления ("..num_pkg..")" cairo_select_font_face(cr, 'Arial', 0, 0) cairo_set_font_size(cr, 18) cairo_set_source_rgba(cr, 1, 1, 1, 1) cairo_move_to(cr, 10, 50) cairo_show_text(cr, title) -- Список local extents = cairo_text_extents_t:create() local tx = 10 local ty0 = 100 local ty = ty0 local max_tw = 0 cairo_select_font_face(cr, 'Terminus', 0, 0) cairo_set_font_size(cr, 15) cairo_set_source_rgba(cr, 1, 1, 1, 1) for j = 0, num_pkg - 1 do -- Цвет по умолчанию cairo_set_source_rgba(cr, 0.7, 0.7, 0.7, 1) -- Выбираем цвет в зависимости от типа обновления -- Ядро if string.find(pkg[j], "linux") ~= nil then cairo_set_source_rgba(cr, 1, 0, 0, 1) end -- Система инициализации if string.find(pkg[j], "systemd") ~= nil then cairo_set_source_rgba(cr, 1, 0.5, 0, 1) end -- Офисный пакет if string.find(pkg[j], "libre") ~= nil then cairo_set_source_rgba(cr, 0, 0.5, 0, 1) end -- Разработка на java if (string.find(pkg[j], "java") ~= nil) or (string.find(pkg[j], "jre") ~= nil) then cairo_set_source_rgba(cr, 0, 1, 1, 1) end -- Разработка на C/C++ if (string.find(pkg[j], "gcc") ~= nil) or (string.find(pkg[j], "glibc") ~= nil) then cairo_set_source_rgba(cr, 0.35, 0.0, 0.62, 1) end -- Драйвера NVidia if string.find(pkg[j], "nvidia") ~= nil then cairo_set_source_rgba(cr, 0, 1.0, 0, 1) end cairo_text_extents (cr, pkg[j], extents) cairo_move_to(cr, tx, ty) cairo_show_text(cr, pkg[j]) if extents.width > max_tw then max_tw = extents.width end ty = ty + extents.height + 2 if ty > conky_window.height - ty0 then ty = ty0 tx = tx + max_tw + 5 end end io.close(f) end
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
Kycok Так точно, svn Добавил ещё lua-based виджет отображающий список доступных обновлений с раскраской по категориям и выводом в несколько колонок P. S,: Есть вопрос в связи с этим P.P.S.: Вопрос снят, указанная приблуда готова :)
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
Попробовал LUA-скрипты в conky. Для этого пришлось установить из аура toluapp и conky-lua, так как дефолтная сборка LUA не поддерживает. Забацал такие вот часики, думаю что ещё запилить Да и тильду убрал, вместо нее guake перекрывающий весь экран по F12
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
Установил из аура. Симпатичная полезная штука. Сам работаю с пакманом из консоли, но кому-то определенно будет полезно
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
Natrio Вы правы. Была установлена ещё версия feh-2.7 из исходников, обитавшая по адресу /usr/local/bin/feh. Волшебный "судо-мейк-анинсталл" вернул всё на круги своя - feh заработал снова :) Всем спасибо за помощь! P.S.: Какой черт дернул меня собирать feh автомейком, я уж и не помню... :(
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
[[email protected] ~]$ ldd /usr/bin/feh linux-vdso.so.1 (0x00007ffff4fb3000) libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007f3caf3e6000) libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f3caf1e3000) libexif.so.12 => /usr/lib/libexif.so.12 (0x00007f3caef9d000) libm.so.6 => /usr/lib/libm.so.6 (0x00007f3caec9f000) libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f3caea6a000) libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f3cae731000) libImlib2.so.1 => /usr/lib/libImlib2.so.1 (0x00007f3cae4c6000) libgiblib.so.1 => /usr/lib/libgiblib.so.1 (0x00007f3cae2bb000) libc.so.6 => /usr/lib/libc.so.6 (0x00007f3cadf0e000) libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007f3cadce5000) libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007f3cada79000) libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007f3cad66f000) libz.so.1 => /usr/lib/libz.so.1 (0x00007f3cad459000) libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f3cad23d000) libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f3cad02a000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f3cace0b000) libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f3cacc07000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f3cac968000) libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f3cac758000) /lib64/ld-linux-x86-64.so.2 (0x00007f3caf648000) libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f3cac554000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f3cac34e000) [[email protected] ~]$ feh --bg-scale /home/maisvendoo/admin/desktop/0001.jpg feh: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory ... ладно, буду думать
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |
maisvendoo |
|
Темы:
68
Сообщения:
1142
Участник с: 10 октября 2012
|
Natrio Не работает. Послушался, поставил репозиторий # USA Server = http://mirror.us.leaseweb.net/archlinux/$repo/os/$arch один единственный его оставил. Дык переустновил feh, это ничего не дало. На вопрос # pacman -Syu был получен ответ что делать ничего не надо. Да вобщем пока пофиг, костыль в виде нитрогена привел к желаемому, однако знания ради и опыта для неплохо было бы разобраться... Сборка кайро-убунту из аура ничего не дала тоже
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb http://rusrailsim.org |