126 (01.08.2012 21:31 отредактировано Haron Prime)

Re: CONKY от olgmen

"cairo"
'imlib2'

это необходимые для работы скрипт пакеты
они установлены?


x = 30,
y = 700,

700 пикселей от верха
точно?

Conky: llua_load: /home/black/conky/train/main.lua:11: unexpected symbol near 'Ð'

плюётся на 11 строку скрипта - "неожиданный символ"
это строка name = "",
попробуй вставить туда что-нибудь в качестве названия или просто пробел, хотя у меня работает именно так.



если будут грабли - http://pastebin.mozilla-russia.org/110260
это скрипт bargraf.lua, которым пользуюсь я
закомментарованные строки можно удалить - остались со старых времён
и последний вопрос - main.lua && bargraf.lua даны права на исполнение?

я писал выше

lua_load /путь/к/main.lua
lua_draw_hook_pre conky_main
lua_draw_hook_pre widgets

в conkyrc при использовании main.lua
у тебя только

lua_load /home/black/conky/train/main.lua

это то, что я смог заметить беглым взглядом, возможно, что где-то ещё есть траблы

Don't worry! Die happy!

127

Re: CONKY от olgmen

2 Haron Prime: огромное СПАСИБИЩЕ, что ткнули носом и за драгоценное время, потраченное на разжевывание и просмотр моих косяков )
ща исправлю косяки и попробую заново

128 (02.08.2012 12:50 отредактировано lumberjack)

Re: CONKY от olgmen

так и не получается нарисовать бар... видать, чего-то недоваривает мой чугунок (((
пробовал 2 разных bargraph.lua (один с офф. сайта, второй по ссылке: http://pastebin.mozilla-russia.org/110259
уже все в conkyrc убрал ниже TEXT и вроде все косяки в main.lua исправил, ан нет, чего-то еще не хватает...
хоть и стыдно с нубскими вопросами доставать, и читал http://olgmen.blogspot.com/2011/12/luacairo.html, (скриншотик выше, кстати, оттуда) и Haron Prime разжевал, все же прошу помощи...

$ conky -c ~/conky/train/conkyrc -- терминал плюется:

Conky: use_spacer should have an argument of left, right, or none.  'yes' seems to be some form of 'true', so defaulting to right.
Conky: llua_load: /home/black/conky/train/main.lua:11: unexpected symbol near 'Ð'
Conky: desktop window (260) is root window
Conky: window type - override
Conky: drawing to created window (0x1a00001)
Conky: drawing to double buffer
Conky: llua_do_call: function conky_widgets execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_widgets execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_widgets execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_widgets execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_widgets execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_widgets execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_widgets execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_widgets execution failed: attempt to call a nil value
... и так до бесконечности

в conkyrc сейчас так:

use_xft yes
xftfont Sans:size=10
xftalpha 0.9
text_buffer_size 2048

update_interval 1
total_run_times 0

own_window yes
own_window_transparent yes
own_window_type override
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

double_buffer yes
no_buffers yes 

minimum_size 300 300
maximum_width 300

draw_shades yes
draw_outline no
draw_graph_borders no
draw_borders no
stippled_borders 0

default_color white
default_shade_color black
#default_outline_color white
own_window_colour white

alignment top_left

gap_x 3
gap_y 3

uppercase no

override_utf8_locale yes

use_spacer yes

imlib_cache_size 0
pad_percents 2 
color1 red
color2 gray

lua_load /home/black/conky/train/main.lua
lua_draw_hook_pre conky_main
lua_draw_hook_pre widgets

TEXT

main.lua такой:

require "cairo"
require 'imlib2'

usrhome = os.getenv("HOME")

dofile (usrhome .."/conky/train/bargraph.lua")

bar_settings = {

{
name = "disk",
arg = (conky_parse('${fs_used_perc /}')),
max = 100,
bg_colour = {0xFFFFFF, 0.075},
fg_colour = {0x1144DD, 0.4},
alarm_colour = {0xFF0000,0.9},
blocks = 20,
x = 70,
y = 70,
blocks = 100,
space = 1,
height = 2,
width = 10,
angle = 90,
smooth = true,    
mid_colour={{0.5, 0x99CCFF, 1}}
}
}

129

Re: CONKY от olgmen

Ответ на предыдущее сообщение.

name = "disk"

недопустимый параметр, оставь пустые кавычки.

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

130

Re: CONKY от olgmen

После "отдыха" на даче нашел кое-что интересное.

Первое - появились conky-2.0.0rc, немного сыроваты, но на CranchBang-11 встали нормально. Пока замечаний практически нет.
Второе - нашел способ нарисовать спираль в коньках, сейчас делаю индикатор и довожу до ума. Требуется чистка лишнего и комментирование. Работает как на conky-1.9 так и на conky-2.0. Пока имеет такой вид

http://storage1.static.itmages.ru/i/12/1105/s_1352121319_8608619_67ec1266f6.png

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

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

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

131

Re: CONKY от olgmen

Здорово, выглядит интересно. Если спиралька постепенно заполняется, наверное, выглядит завораживающе.

You know you're right.

132

Re: CONKY от olgmen

Чем дальше, тем интересней

http://storage6.static.itmages.ru/i/12/1106/s_1352182460_3415138_113f96dc44.png

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

--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

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

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

133

Re: CONKY от olgmen

Начал заточку новых коньков OS Cranchbang-11, CONKY-2.0. Решил использовать весь стол.

Что получается можно посмотреть  http://youtu.be/gZ6wGDcaWgs

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

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

134

Re: CONKY от olgmen

olgmen, офигительно!

http://bfolder.ru/_ph/42/2/703645427.jpg
Я Патрег с комплексом человека. Атеист, сатанист, шизофреник.
Можешь им также сказать, что виндовз юзеры — это говно, пидоры и гниды (с). anon, LOR

135

Re: CONKY от olgmen

выглядит очень хорошо, ждем конечный результат

http://storage1.static.itmages.ru/i/11/0509/h_1304942896_a4f95acba1.png

136

Re: CONKY от olgmen

shrm пишет:

выглядит очень хорошо, ждем конечный результат

Буду потихонечку выкладывать скрипты, может кому-нибудь и пригодятся. Постараюсь, чтобы все скрипты могли работать не зависимо, т.е. отдельно от моих коньков. Все проверки провожу на conky-1.9 и conky-2.0.

http://storage9.static.itmages.ru/i/12/1111/s_1352641063_9436424_0dfe0d6efb.png

Скрипт можно взять здесь https://dl.dropbox.com/u/22038871/calendar_10112012.lua

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

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

137

Re: CONKY от olgmen

с такими познаниями в lua прямая дорога на awesome вместо openbox

http://storage1.static.itmages.ru/i/11/0509/h_1304942896_a4f95acba1.png

138

Re: CONKY от olgmen

shrm пишет:

с такими познаниями в lua прямая дорога на awesome вместо openbox

Посмотрю, может и понравится

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

139

Re: CONKY от olgmen

обязательно. там конфиги на lua, много наших форумчан awesome используют.

http://storage1.static.itmages.ru/i/11/0509/h_1304942896_a4f95acba1.png

140 (14.11.2012 19:55 отредактировано olgmen)

Re: CONKY от olgmen

Сбылась мечта идиота. Выбил вывод обложки для Radiotray. Правда пока только с радио Paradise

http://storage8.static.itmages.ru/i/12/1114/s_1352880539_4740303_e83d6cc597.png

Работа продолжается.

Добавил скрипт, пока только выводит обложку только для радио Paradise

-- radiotray_v.4.lua by olgmen 13.11.2012
--[[
Для CONKY-2.0
    lua_load            = '/home/путь к скрипту/radiotray_v.4.lua',
    lua_draw_hook_pre     = 'radio_tray',
    
Для CONKY-1.9
    lua_load  /home/путь к скрипту/radiotray_v.4.lua
    lua_draw_hook_pre radio_tray
]]

require "cairo"
require "imlib2"

image_tmp = "/tmp/cover.png" -- Место хранения обложки
file_img = "/tmp/cover.jpg"

start = 1
radio_file = "/tmp/radio.txt"

function conky_radio_tray()

    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)
    local cr = cairo_create(cs)
    
-- Здесь задаем все настройки
-- обложка, заставка
    local xi = 30                    -- координаты по горизонтали
    local yi = 20                    -- координаты по вертикали
    local width = 100                -- ширина
    local height = 100                -- высота
-- текст
    local x = 150                    -- координаты по горизонтали
    local y = 40                    -- координаты по вертикали первой строки, остальные автоматом
    local font_name = "Liberation Sans Mono"    -- название шрифта
    local font_size = 14            -- размер шрифта
    local color = 0xffffff            -- цвет шрифта
    local alpha = 1                    -- насыщенность цвета
-- создаем базу данных
    local data = {}
-- настраиваем шрифт
    cairo_select_font_face(cr, font_name, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD)
    cairo_set_font_size(cr,font_size)
    cairo_set_source_rgba (cr, rgb_to_r_g_b(color, alpha))

    local searchresults = 0
-- очищаем промежуточный файл
    if io.open(radio_file, "r") ~= nil then
        io.output(io.open(radio_file, "w+"))
        io.write("")
        io.close()
    end    
-- проверяем работает ли Radio Tray
    if tonumber(conky_parse("${if_running radiotray}1${else}0${endif}")) == 1 then
-- забираем данные о радиостанции и помещаем в файл /tmp/radio.txt
        os.execute("qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio >> /tmp/radio.txt")
        
-- забираем данные об артисте, песне и помещаем в /tmp/radio.txt
        os.execute("qdbus net.sourceforge.radiotray /net/sourceforge/radiotray getCurrentMetaData >> /tmp/radio.txt")        
            
-- считываем данные    из файла /tmp/radio.txt
        fh = io.open(radio_file,"r")
        if fh ~= nil then
            radio = fh.read(fh)
            artist = fh.read(fh)
            fh:close()
        end
        
        if radio == "Radio Paradise" then
            web = "http://www.radioparadise.com/rp2-content.php?name=Home"
            searchresults = 1
        else
            searchresults = 0
        end

        local f = io.popen("curl --max-time 60 '"..web.."' | sed 's/%//g'")
        alldata = f:read("*a")
        f:close()
        alldata = string.gsub(alldata, "[\n\r]", "")

-- если нет названия радио

        if radio == nil or radio == "not playing" then
            radio = "Radio Tray"
        end
    
-- выводим название радиостанции
        cairo_move_to(cr, x, y)
        cairo_show_text(cr, radio)
        cairo_stroke(cr)
-- артист, песня
        if radio ~= "Radio Tray" then
            have = string.split(artist, "- ")
            for i = 1, #have do
                cairo_move_to(cr, x, y + font_size*2 + (i-#have/2)*font_size)
                cairo_show_text(cr, have[i])
                cairo_stroke(cr)
            end
        end
-- данные об обложке
        local a,b,nowplaying = string.find(alldata, "<div id=\"playlist_content\">(.*)\" class = \"cover_art\"")        
        local s,f,t = string.find(nowplaying, "<img src=\"(.*)")
        if t ~= nil then
            local f = io.popen('wget -O \"/tmp/cover.jpg\" ' .. t ..' ')
            coverart = f:read("*a")
            f:close()
            local s = 128
            convert_to_square(file_img, image_tmp, s)
            img = image_tmp
            if img == nil or searchresults == 0 then img = "/usr/share/radiotray/images/radiotray.png" end
            if radio == "Radio Tray" then img = "/usr/share/radiotray/images/radiotray_off.png" end
            image = cairo_image_surface_create_from_png (img)
            w_image = cairo_image_surface_get_width (image)
            h_image = cairo_image_surface_get_height (image)
            cairo_translate (cr, xi, yi)
            cairo_scale (cr, width/w_image, height/h_image)
            cairo_set_source_surface (cr, image, 0, 0)
            cairo_paint (cr)
            cairo_surface_destroy (image)
            cairo_destroy(cr)
        end
    end
end
-- функция перекодировки цвета
function rgb_to_r_g_b(colour,alpha)
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function string:split(delimiter)

    local result = {}
    local from  = 1
    local delim_from, delim_to = string.find(self, delimiter, from)
    while delim_from do
        table.insert(result, string.sub(self, from , delim_from - 1))
        from  = delim_to + 1
        delim_from, delim_to = string.find(self, delimiter, from)
    end
    table.insert(result, string.sub(self, from))
    return result
end
function convert_to_square(fileIn, fileOut, s)

    local imageInput = imlib_load_image(fileIn)
    imlib_context_set_image(imageInput)
    local w = imlib_image_get_width()
    local h = imlib_image_get_height()
    imlib_image_set_format("png")
            
    local x0 = 0
    local y0 = 0
    local out_size

    if w > h then
        out_size = h
        x0 = (w - out_size)/4
    else
        out_size = w
        y0 = (h - out_size)/4
    end

    local buffer = imlib_create_image(s, s)
    imlib_context_set_image(buffer)
    imlib_blend_image_onto_image(imageInput, 0, x0, y0, out_size, out_size, 0, 0, s, s)
    imlib_save_image(fileOut)
    imlib_free_image()

    imlib_context_set_image(buffer)
    imlib_free_image()
    imlib_context_set_image(imageInput)
    imlib_free_image()
end

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

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

141

Re: CONKY от olgmen

Продолжение работы. Запуск приложений из коньков

http://youtu.be/IM4FXjRA17E

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

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

142

Re: CONKY от olgmen

Начал заново, сменил концепцию

http://storage1.static.itmages.ru/i/12/1120/s_1353414548_2649964_6751f9b7f3.png

работа продолжается

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0

143

Re: CONKY от olgmen

olgmen пишет:

Начал заново, сменил концепцию

http://storage1.static.itmages.ru/i/12/1120/s_1353414548_2649964_6751f9b7f3.png

работа продолжается

титан! нет слов!

144

Re: CONKY от olgmen

Сделал перестановку и сменил иконку для радио

http://storage5.static.itmages.ru/i/12/1126/s_1353941187_7188522_68ce3ccc41.png

доработал переключалку, но объяснять долго, лучше посмотреть http://youtu.be/uJmPva1nlOU

Продолжаю шлифовку и огранку. Ищу однотипные иконки в .png формате

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

Crancbang-10 Cranchbang-11
Conky-1.9 Conky-2.0