lomereiter — Conky с прогрессбаром а-ля wget
Когда-то при переходе на dwm я не захотел расставаться с коньками и скомпилил их без поддержки иксов, пустив через dzen2. Но возникла проблема с прогрессбарами, которая легко решилась небольшим изменением conky.c
Сливаем сорцы с conky.sourceforge.net, распаковываем.
Открываем файл src/conky.c и находим в нём функцию new_bar. Удаляем из неё всё нафиг и приводим к примерно такому виду:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
static void new_bar(char *buf, int w, int h, int usage) { // w использовать не будем, а h -- пусть длиной будет char symb = '='; char *s = malloc((h+2)*sizeof(char)); // ещё два символа -- квадратные скобки s[0] = '['; s[h+1] = ']'; int i,k,u = (usage > 255) ? 255 : ((usage < 0) ? 0 : usage); if (usage == 0 || usage == 255) { for (i=1; i<h+1; s[i++] = usage ? symb : ' '); // если 0% или 100%, заполняем пробелами или равно соответственно snprintf(buf, h+3, "%s", s); // а эта функция уже есть в conky.c -- заполняет буфер вывода } else { u <<= 7; k = u/((255<<7)/h) + 1; // находим количество знаков "=" if (k == h+1) k = h; for (i=1; i<k; i++) s[i] = symb; s[k] = '>'; for (i=k+1; i<h+1; i++) s[i] = ' '; snprintf(buf, h+3, "%s", s); } free(s); } |
Компилируем:
./configure --disable-double-buffer --disable-x11 --disable-xdamage --disable-own-window --disable-xft --disable-seti --enable-xmms2 (mpd, audacious или ещё что -- по желанию)
(Спёрто из arch'евского pkgbuild'а conky-cli)
make && make install
Усё, теперь пишем в .conkyrc что-то вроде
1 2 3 4 5 6 7 8 |
background yes out_to_console yes update_interval 1.0 total_run_times 0 use_spacer none TEXT ... ${membar 15}, например -- мембар длины 15 |
Запуск без X-ов, если кто не в курсе, через dzen2:
conky | dzen2 -h {высота_какая_надо} -x {на_сколько_сдвинуть}
P.S.: что-то на сайте вообще ничего о коньках нет, надо б исправить как-то...