Автор Тема: Изучаем conky  (Прочитано 66371 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн olgmen

  • Пользователь
  • *
  • Сообщений: 18
  • Кто ищет, тот всегда найдет
  • Jabber: olgmen@jabber.ru
Re: Изучаем conky
« Ответ #90 : 05 Ноябрь 2012, 21:08:09 »
После "отдыха" на даче нашел кое-что интересное.
Первое - появились conky-2.0.0rc, немного сыроваты, но на CranchBang-11 встали нормально. Пока замечаний практически нет.
Второе - нашел способ нарисовать спираль в коньках, сейчас делаю индикатор и довожу до ума. Требуется чистка лишнего и комментирование. Работает как на conky-1.9 так и на conky-2.0. Пока имеет такой вид



Тренируюсь на выводе секунд
Удачных коньков
 

Оффлайн Malaheenee

  • Ветеран
  • *****
  • Сообщений: 2565
  • Учтите, мы можем дать и вредный совет.
Re: Изучаем conky
« Ответ #91 : 06 Ноябрь 2012, 08:39:16 »
olgmen, если вдруг заинтересуетесь и другими фигурами для рисования: http://rusproject.narod.ru/article/polar.htm
Debian Sid: XFCE x 1, openbox x 2.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн olgmen

  • Пользователь
  • *
  • Сообщений: 18
  • Кто ищет, тот всегда найдет
  • Jabber: olgmen@jabber.ru
Re: Изучаем conky
« Ответ #92 : 06 Ноябрь 2012, 12:14:27 »
Пока получается так



А вот и скрипт, буду понемногу дорабатывать

--this lua script for use in conky
--[[ # Lua Load  #
lua_load ~/scripts/spiral.lua
lua_draw_hook_pre spiral
]]

require 'cairo'

function conky_spiral()

    local spiral_settings={
    {
    name = "cpu",        -- выводимый параметр
    arg = "cpu1",
    max_par = 60,            -- максимальное значение параметра
    x = 200,            -- координаты центра спирали
    y = 200,
--    rad_i = 0.25,        -- диаметр
    start_deg=-250,        -- начало вывода спирали
    min_i=12,            -- отступ от начальной точки
    max_i=80,            -- длина спирали
    thickness = 10,        -- толщина луча
    deg_i= -8,            -- + - по часовой стрелке, - - против часовой стрелке
    bg_color = {{0, 0x0000ff, 0.1}},    -- цвет фона
    fg_color = {{0, 0x0000ff, 1}},    -- цвет индикатора
    },

    {
    name = "cpu",        -- выводимый параметр
    arg = "cpu",
    max_par = 60,            -- максимальное значение параметра
    x = 200,            -- координаты центра спирали
    y = 200,
--    rad_i = 0.25,        -- диаметр
    start_deg=-125,        -- начало вывода спирали
    min_i=12,            -- отступ от начальной точки
    max_i=80,            -- длина спирали
    thickness = 10,        -- толщина луча
    deg_i= -8,            -- + - по часовой стрелке, - - против часовой стрелке
    bg_color = {{0, 0xff0000, 0.1}},    -- цвет фона
    fg_color = {{0, 0xff0000, 1}},    -- цвет индикатора
    },

    {
    name = "cpu",        -- выводимый параметр
    arg = "cpu0",
    max_par = 60,            -- максимальное значение параметра
    x = 200,            -- координаты центра спирали
    y = 200,
--    rad_i = 0.25,        -- диаметр
    start_deg=0,        -- начало вывода спирали
    min_i=12,            -- отступ от начальной точки
    max_i=80,            -- длина спирали
    thickness = 10,        -- толщина луча
    deg_i= -8,            -- + - по часовой стрелке, - - против часовой стрелке
    bg_color = {{0, 0x00ff00, 0.1}},    -- цвет фона
    fg_color = {{0, 0x00ff00, 1}},    -- цвет индикатора
    },
   
    }

    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)
    local updates=tonumber(conky_parse('${updates}'))

    if updates>3 then

        for i,v in pairs(spiral_settings) do   
            cr = cairo_create (cs)
            display_spiral(v)
            cairo_destroy(cr)
            cairo_surface_destroy(cs)
            cr=nil
        end
    end
end

function rgb_to_r_g_b2(tcolour)
    local colour,alpha=tcolour[2],tcolour[3]
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

function display_spiral(t)

    if t.name == nil then t.name = "time" end
    if t.arg == nil then t.arg = "%S" end
    if t.x == nil        then t.x = conky_window.width/2 end
    if t.y == nil then t.y = conky_window.height/2 end
    if t.bg_color==nil then t.color={{0, 0x555555, 1}} end
    if t.rad_i == nil then t.rad_i = 1 end
    if t.start_deg == nil then t.start_deg = -250 end
    if t.deg_i == nil then t.deg_i= -8 end
    if t.min_i == nil then t.min_i=0 end
    if t.max_i == nil then t.max_i = 80 end
    if t.thickness == nil then t.thickness = 5 end
   
   
    cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.bg_color[1]))
   
    local function pt(px,py,prad,pdeg)
        local ppo=(math.pi/180)*pdeg
        local px1=px+prad*(math.sin(ppo))
        local py1=py-prad*(math.cos(ppo))
        return px1,py1
    end

    cairo_set_line_width(cr,t.thickness)
    cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND)
-- вывод фона
    cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.bg_color[1]))

    for i = t.min_i, t.max_i do
        rad1 = (i*1)*t.rad_i
        deg1 = t.start_deg+((i*1)*t.deg_i)
        x1, y1 = pt(t.x,t.y,rad1,deg1)
        rad2 = t.rad_i*(((i+1) or i)*1)
        deg2 = t.start_deg+(t.deg_i*(((i+1) or i)*1))
        x2,y2=pt(t.x,t.y,rad2,deg2)
        cairo_move_to(cr,x1,y1)
        cairo_line_to(cr,x2,y2)
        cairo_stroke(cr)
    end
-- вывод индикатора
    cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.fg_color[1]))
       
    local long = (t.max_i - t.min_i)/t.max_par
       
    local str=''
    local value=0
-- забираем параметр
    str=string.format('${%s %s}', t.name, t.arg)
    str=conky_parse(str)

    value=tonumber(str)
    if ( value == nil ) then value = 0 end

    for i = t.min_i, t.min_i+(long*value) do   
        rad1 = (i*1)*t.rad_i
        deg1 = t.start_deg+((i*1)*t.deg_i)
        x1, y1 = pt(t.x,t.y,rad1,deg1)
        rad2 = t.rad_i*(((i+1) or i)*1)
        deg2 = t.start_deg+(t.deg_i*(((i+1) or i)*1))
        x2,y2=pt(t.x,t.y,rad2,deg2)
        cairo_move_to(cr,x1,y1)
        cairo_line_to(cr,x2,y2)
        cairo_stroke(cr)
    end
end
Удачных коньков
 


Оффлайн olgmen

  • Пользователь
  • *
  • Сообщений: 18
  • Кто ищет, тот всегда найдет
  • Jabber: olgmen@jabber.ru
Re: Изучаем conky
« Ответ #93 : 11 Ноябрь 2012, 17:58:17 »
Небольшой скриптик для вывода календаря такого вида



работает как на conky-1.9 так и на conky-2.0

Можно взять здесь https://dl.dropbox.com/u/22038871/calendar_10112012.lua

Удачных коньков
 

Оффлайн Изжог

  • Местный житель
  • ***
  • Сообщений: 120
Re: Изучаем conky
« Ответ #94 : 10 Январь 2013, 17:56:08 »
Недавно поставил коньки из репов. При старте системы они появляются, но в момент, когда графика полностью загрузилась(когда курсор из кружочка становится стрелочкой) они пропадают. При этом после пересохранения конфига в гедите из-под рута они снова появляются, и так и держатся. Пауза стоит 10. Вот конфиг:
Spoiler: ShowHide
alignment middle_middle
background no
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
double_buffer yes
draw_borders no
draw_graph_borders no
draw_outline no
draw_shades no
use_xft yes
xftfont DejaVu Sans Mono:size=12
gap_x 5
gap_y 60
minimum_size 5 5
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no
own_window no
own_window_class Conky
own_window_type desktop
stippled_borders 0
update_interval 1.0
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no
top_cpu_separate no

TEXT
${scroll 16 $nodename - $sysname $kernel on $machine | }
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
 / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color grey}Networking:
Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0}
$hr
${color grey}Name              PID   CPU%   MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
${color lightgrey} ${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5}

Debian 6 , Gnom 2
Это лечится?
 

Оффлайн vladimir_ar

  • Ветеран
  • *****
  • Сообщений: 1624
Re: Изучаем conky
« Ответ #95 : 10 Январь 2013, 18:37:20 »
Поставте длиннее паузу.
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M
 

Оффлайн Изжог

  • Местный житель
  • ***
  • Сообщений: 120
Re: Изучаем conky
« Ответ #96 : 10 Январь 2013, 20:54:24 »
Попробовал увеличивать до 30, та же история.
 

Оффлайн qupl

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 4658
  • memento mori
  • Jabber: qupl@jabber.ru
Re: Изучаем conky
« Ответ #97 : 10 Январь 2013, 21:10:04 »
Изжог, где конфиг лежит и какие на него права?

Оффлайн Изжог

  • Местный житель
  • ***
  • Сообщений: 120
Re: Изучаем conky
« Ответ #98 : 10 Январь 2013, 21:39:14 »
Конфиг-по умолчанию- /etc/conky/conky.conf . Вот права:


Сообщение объединено: 10 Январь 2013, 22:40:13
Прописал в автозагрузке conky -p 10 , а до этого была команда conky --pause=10 . Сейчас нормально работает :)
« Последнее редактирование: 10 Январь 2013, 22:40:13 от Изжог »
 

Оффлайн olgmen

  • Пользователь
  • *
  • Сообщений: 18
  • Кто ищет, тот всегда найдет
  • Jabber: olgmen@jabber.ru
Re: Изучаем conky
« Ответ #99 : 11 Январь 2013, 06:43:33 »
Недавно поставил коньки из репов.

Вставь в conkyrc выше слова TEXT следующую строку

total_run_times 0
она запретит выключаться.
 

Оффлайн Изжог

  • Местный житель
  • ***
  • Сообщений: 120
Re: Изучаем conky
« Ответ #100 : 11 Январь 2013, 16:13:18 »
olgmen, всё решилось у меня- сейчас не выключается, паузу по-другому прописал.
 

Оффлайн olgmen

  • Пользователь
  • *
  • Сообщений: 18
  • Кто ищет, тот всегда найдет
  • Jabber: olgmen@jabber.ru
Re: Изучаем conky
« Ответ #101 : 02 Февраль 2013, 13:21:38 »
Не знаю, делал это кто нибудь раньше, но возникла идея используя одни conky вывести разные данные на разных рабочих столах. Это может пригодиться тем, у кого размеры рабочего стола не позволяют вывести всю желаемую информацию. Вот небольшой ролик о работе моих интерактивных conky.

http://youtu.be/TI897sSOmyI

Оказалось это очень просто сделать. Вот результат деления одного классического conkyrc.

Вывод на первый рабочий стол



Вывод на второй рабочий стол



Дальше не стал делать, так как принцип деления можно объяснить и на этом примере.

Напоминаю, что пример для классических conky. Всё что необходимо редактировать находится в conkyrc ниже слова TEXT

Для деления команд используем команду

${if_match ${desktop}==1}

.. команды которые выводим на первый рабочий стол ..

$endif
${if_match ${desktop}==2}

# команды которые выводим на второй рабочий стол

$endif

ну и так далее

Для деления conky+lua я делал так

Создаем переменную

local desk = conky_parse("${desktop}")
А дальше почти как и в классических conky

if desk == 1 then

-- функции которые выводят данные на первый рабочий стол

end

if desk == 2 then

-- функции которые выводят данные на второй рабочий стол

end

и так далее

Возможно это не будет работать при использовании компиза, проверить не могу, компизом не пользуюсь

Удачных коньков
 

Оффлайн Malaheenee

  • Ветеран
  • *****
  • Сообщений: 2565
  • Учтите, мы можем дать и вредный совет.
Re: Изучаем conky
« Ответ #102 : 02 Февраль 2013, 14:11:20 »
olgmen, а с какой версии "коньков" появилась такая возможность? Или она всегда была, просто недокументирована?
Debian Sid: XFCE x 1, openbox x 2.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн olgmen

  • Пользователь
  • *
  • Сообщений: 18
  • Кто ищет, тот всегда найдет
  • Jabber: olgmen@jabber.ru
Re: Изучаем conky
« Ответ #103 : 02 Февраль 2013, 14:38:41 »
Даже не знаю. Команда desktop была ещё в conky-1.8.1
 

Оффлайн Consul

  • Активный пользователь
  • **
  • Сообщений: 50
Re: Изучаем conky
« Ответ #104 : 07 Май 2013, 05:37:18 »
Вопрос:
После обновления до Wheeze появилась проблема - при запуске окно conky не прозрачно, а отображается на сером фоне. После клика правой кнопкой мышки на рабочем столе (вызова контекстного меню) все нормализуется. На Squeeze все было нормально.
Как исправить?
Настройки xfce после обновления обнулял (rm ~/.config/xfce) и настраивал заново. Не помогло.
« Последнее редактирование: 07 Май 2013, 05:39:29 от Consul »
Debian Wheezy XFCE
 

Теги: conky