LINUX.ORG.RU

Conky и мой личный траур.

 ,


0

0

Я не очень уверен что создаю тему там где надо, но какое-то отношение всё-таки к разработке она имеет.

В общем захотелось мне тут сделать свои конки поуниверсальнее а код в них покрасивее. И столкнулся с проблемой.

Я не смог добавить в .conkyrc собственную переменную. НИКАК!!! Очень прошу, скажите что я умею пользоваться гуглом и что то что я хотел сделать просто не предусмотрено идеологий Conky.

Для большей понятности вот код .conkyrc как он есть:

${goto 32}CPU1: ${font Ubuntu:style=Bold:size=8}${color1}${cpu cpu1}%${color}${font} 
${alignr}${color2}${cpugraph cpu1 10,80 00FF00 FF0000}${color}
А это примерно то что я хотел написать:
${if_match ${количествоЦПУ}>=1}${goto 32}CPU1: ${font Ubuntu:style=Bold:size=8}${color1}${cpu cpu1}%${color}${font} 
${alignr}${color2}${cpugraph cpu1 10,80 00FF00 FF0000}${color}${endif}
То есть хотел сделать 8 таких строчек с разными номерами cpu и больше не париться с тем что конки плачут когда вдруг у процессора камней не столько сколько прописано в конках.

Единственное решение которое мне удалось откопать на просторах интернета выглядит так:

Вместо ${количествоЦПУ} предлагается прописать ${execi 9999 cat /proc/cpuinfo | grep -c Core}. Но тогда возникает вопрос, как будут вести себя конки? Они ОДИН раз дернут cat и будут хранить значение 9999 секунд или будут дергать каждый раз когда будут перерисовываться? Логика подсказывает что один раз, но сомнения гложуть...

хз на счёт переменных, но exec они будут делать каждый раз при перерисовке, да.

mahalaka ★★
()
Ответ на: комментарий от dadd

Вместо nproc еще можно более легковесный вариант собрать

#include <stdio.h>
#include <sys/sysinfo.h>

int main(void)
{
        printf("%d", get_nprocs());
    
        return 0;
}

dadd ★★★
()
Ответ на: комментарий от dadd

Спасибо. Гораздо лучше чем я нагуглил. Хотя вопрос всё-таки был больше про переменные в конках.

Буду потестить как конки реагируют на exec. Сварганю что нить типа ${exec nproc && echo «12345» >> log.txt} и посмотрю что и как. отчетик кину сюда и закрою тему.

AfterWork
() автор топика
Ответ на: комментарий от AfterWork

В общем отчетик:

1. Команда ${exec nproc} выполняется при каждом обновлении конок.

2. Команда ${execi 10 nproc} работает гораздо хитрее. На время указанное в команде, как-бы формируется переменная имеющая значение равное результату последнего исполнения команды. И при повторном вызове, повторного исполнения команды не происходит.

То есть конструкция:

${execi 10 nproc && echo `date` >> file.log}
${execi 10 nproc && echo `date` >> file.log}
Нарисует в конках две циферки, а в лог будет писать только одну дату каждые 10 секунд. И если допустим что на 21-ой секунде исполнения конок, процессоров вдруг станет 6 вместо 4-х то в конках это отобразится только на 30-ой секунде при любой частоте перерисовки самих конок.

То есть что мы имеем по факту. Если сформировать переменную например такого вида:

${execi 3600 VeryBigCommand}
И использовать её в коде конок 100500 раз, то по факту выполнится эта команда всего 24 раза за сутки непрерывной работы конок.

Это были плюсы. Но есть и минусы. execi выполняется долго. Например в моих конках элементы зависимые от малюсенькой ${execi 10 nproc} начинают нормально отображаться на 2-ой секунде после старта конок или даже чуть позднее. Причем время задержки повторного исполнения никак на скорость первичного старта отображения не влияет. Хоть ставишь две секунды, хоть 5000 секунд, всё равно задержка при старте примерно секунда-две.

Вот как-то так. Тема исчерпана.

AfterWork
() автор топика

Я с коньками не сталкивался, но не вариант нафигачить скрипт ставящий один раз нужные переменные окружения и запускающий коньки?

timdorohin ★★★★
()
Ответ на: комментарий от bodqhrohro_promo

Жди, сейчас прибегут адепты ФП и настоятельно объяснят тебе, что переменные не нужны.

Не смогут. :) Как я понял идеологию conky, весь блок TEXT в конки это сплошные переменные. :) Вот просто только переменные и всё. :) В conky любая ${фсёчтоугодно} это переменная.

AfterWork
() автор топика
Ответ на: комментарий от timdorohin

но не вариант нафигачить скрипт ставящий один раз нужные переменные окружения и запускающий коньки?

Это конечно вариант, но мне важнее было понять идеологию conky.

AfterWork
() автор топика
4 января 2019 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.