Conky и все что с ними связано

Правила форума
Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа.
Аватара пользователя

Chocobo
Сообщения: 5110
Зарегистрирован: 27 авг 2016, 19:57
Решено: 122
Откуда: НН
Благодарил (а): 384 раза
Поблагодарили: 1330 раз

Conky и все что с ними связано

Сообщение Chocobo » 09 окт 2017, 17:36

darkfenix писал(а): Что с этим со всем делать? Как доставить cairo? И как теперь подключается lua в коньки?
Все молча взлетело без ругани на lua_load или кайро
Снимок экрана от 2017-10-09 20-29-16.png
Более того. отдельно интерпретатор в систему не установлен:
Снимок экрана от 2017-10-09 20-30-54.png

Код: Выделить всё

own_window yes
own_window_type desktop
own_window_transparent yes
background yes
alignment top_right
cpu_avg_samples 4
use_xft yes
xftfont DejaVu Sans Mono:size=12
update_interval 0.5
total_run_times 0
update_interval_on_battery 10
double_buffer yes
default_bar_size 80 8
gap_y 20
gap_x 20
use_spacer left
pad_percents 3
temperature_unit Celsius
lua_load /mnt/share/conky.lua
lua_draw_hook_pre conky_main

TEXT

${color red}$alignc$kernel $sysname
#${color red} ${alignc}System: $nodename
${alignc}Аптайм: ${uptime}
$alignc $gw_ip / ${execi 3600 curl ifconfig.co}
${hr}
$alignc ЦПУ
${hr}
${color green}Ядро_1: ${cpu cpu1}%  ${cpubar cpu1} ${freq_g 1}Ghz
Ядро_2: ${color green}${cpu cpu2}%  ${cpubar cpu2} ${freq_g 2}Ghz
Ядро_3: ${color green}${cpu cpu3}%  ${cpubar cpu3} ${freq_g 3}Ghz
Ядро_4: ${color green}${cpu cpu4}%  ${cpubar cpu4} ${freq_g 4}Ghz
Temperature: ${acpitemp} C
Общая утилизация: ${cpu cpu0}% ${cpubar cpu0}
${color red}$hr
$alignc RAM 
$hr
${color green}Всего: $memmax
Занято: $mem 
Свободно: $memfree	
Используется $memperc% ${membar memperc}
${color red}$hr
$alignc Погода
$hr
${color green}${execi 600 curl -H "Accept-Language: ru" wttr.in/?0pq -q | sed '3,37!d' |  perl -pe 's/\e\[?.*?[\@-~]//g'}

Код: Выделить всё

 ▶ cat /mnt/share/conky.lua 
require 'cairo'
function conky_main()
end
У вас нет необходимых прав для просмотра вложений в этом сообщении.


linubuntu
Сообщения: 27
Зарегистрирован: 27 авг 2017, 05:52
Благодарил (а): 1 раз

Conky и все что с ними связано

Сообщение linubuntu » 09 окт 2017, 18:00

КРАСИВО, УКРАШАЕТ РАБОЧИЙ СТОЛ :thumbs: ... И НЕ БОЛЕЕ...
ПРОСТО ОДИН ВОПРОС - ДЛЯ ЧЕГО ???
ТАКОЕ ВПЕЧАТЛЕНИЕ, ЧТО ВЫ СОБИРАЕТЕСЬ ОТСЛЕЖИВАТЬ СИНТЕЗ ЯДЕРНЫХ ЧАСТИЦ В ЯДЕРНОМ ЭНЕРГОБЛОКЕ... :-D
ЭТО ВЕДЬ ВСЕГО ЛИШЬ OS LINUX....
ДЛЯ ЧЕГО СИЕ ЧУДО(CONKY) , КАКАЯ НЕОБХОДИМОСТЬ В ЭТОЙ УТИЛИТЕ ?

Аватара пользователя

Dja
Сообщения: 2117
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 309 раз
Поблагодарили: 231 раз

Conky и все что с ними связано

Сообщение Dja » 10 окт 2017, 05:30

linubuntu писал(а): КАКАЯ НЕОБХОДИМОСТЬ В ЭТОЙ УТИЛИТЕ ?
Как и в любой другой. Необходимости в той или иной утилите нет хотя бы потому что есть аналоги. Скорей вопрос в другом: добро или зло. Если от утилиты зла нет, то почему бы не юзать? И наоборот, нафига ставить то, что отнимает время, не развивает да еще и систему тормозит. Вопрос приоритетов и ценностей.
Новичок? - ознакомься с правилами

В поисках истины :grabli:

Аватара пользователя

darkfenix
Сообщения: 454
Зарегистрирован: 27 июн 2017, 10:36
Решено: 6
Благодарил (а): 29 раз
Поблагодарили: 76 раз

Conky и все что с ними связано

Сообщение darkfenix » 10 окт 2017, 07:28

Chocobo, спасибо. Разобрался теперь работает. Вот такой виджет получился. Нужно только с настройками коньков поиграться чтоб сделать прозрачность и размер окна.
2017-10-10-122621_260x209_scrot.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

darkfenix
Сообщения: 454
Зарегистрирован: 27 июн 2017, 10:36
Решено: 6
Благодарил (а): 29 раз
Поблагодарили: 76 раз

Conky и все что с ними связано

Сообщение darkfenix » 10 окт 2017, 07:39

darkfenix писал(а): Нужно только с настройками коньков поиграться чтоб сделать прозрачность и размер окна
Как задавать ширину окна разобрался. А вот как задать высоту?
UPD: разобрался

Код: Выделить всё

minimum_size 90 90
первое число ширина, второе число высота
Последний раз редактировалось пользователем 2 darkfenix; всего редактировалось раз: 10

Аватара пользователя

Dja
Сообщения: 2117
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 309 раз
Поблагодарили: 231 раз

Conky и все что с ними связано

Сообщение Dja » 10 окт 2017, 07:41

darkfenix писал(а): А вот как задать высоту?
а вот высота от шрифта зависит. Меняете шрифт - меняется высота. Высота не может быть меньше текста.
Новичок? - ознакомься с правилами

В поисках истины :grabli:

Аватара пользователя

darkfenix
Сообщения: 454
Зарегистрирован: 27 июн 2017, 10:36
Решено: 6
Благодарил (а): 29 раз
Поблагодарили: 76 раз

Conky и все что с ними связано

Сообщение darkfenix » 10 окт 2017, 07:52

Теперь выглядит так
2017-10-10-124600_186x164_scrot.png
Скрипт календаря взял тут

Код: Выделить всё

require 'cairo'

function calpage(cr, xc, yc, size, font_name, bgc, fgc, alpha, lang)

-- функция перекодировки цвета

    local function rgb_to_r_g_b(colour, alpha)
        return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
    end

-- рисуем фон для календаря

    local function rrect()
        cairo_move_to(cr, x0 + 0.1*size, y0)
        cairo_line_to(cr, x0 + 0.9*size, y0)
        cairo_curve_to(cr, x0 + size, y0, x0 + size, y0, x0 + size, y0 + 0.1*size)
        cairo_line_to(cr, x0 + size, y0 + 0.9*size)
        cairo_curve_to(cr, x0 + size, y0 + size, x0 + size, y0 + size, x0 + 0.9*size, y0 + size)
        cairo_line_to(cr, x0 + 0.1*size, y0 + size)
        cairo_curve_to(cr, x0, y0 + size, x0, y0 + size, x0, y0 + 0.9*size)
        cairo_line_to(cr, x0, y0 + 0.1*size)
        cairo_curve_to(cr, x0, y0, x0, y0, x0 + 0.1*size, y0)
        cairo_close_path(cr)  
    end
    local function background()
        local r, g, b, a = rgb_to_r_g_b(bgc, alpha)
        rrect()
        cairo_set_source_rgba(cr, r, g, b, a)
        cairo_fill_preserve(cr)
        linpat = cairo_pattern_create_linear(xc, yc, xc, yc + size)
        cairo_pattern_add_color_stop_rgba(linpat, 0, 1.0, 1.0, 1.0, 0.2*a)
        cairo_pattern_add_color_stop_rgba(linpat, 1, 1.0, 1.0, 1.0, 0)
        cairo_set_source(cr, linpat)
        cairo_fill_preserve(cr)
        cairo_clip(cr)        
        rrect()
        cairo_set_source_rgba(cr, r, g, b, a)
        cairo_set_line_width(cr, 0.05*size)
        cairo_stroke_preserve(cr)
      
        cairo_new_path(cr)
        cairo_arc(cr, xc, yc - size, size, 0, 2*math.pi)
        radpat = cairo_pattern_create_radial(xc, yc - size, 0, xc, yc - size, size)
        cairo_pattern_add_color_stop_rgba(radpat, 0, 1.0, 1.0, 1.0, a)
        cairo_pattern_add_color_stop_rgba(radpat, 1, 1.0, 1.0, 1.0, 0.2*a)
        cairo_set_source(cr, radpat)
        cairo_fill(cr)
    end
-- расчет величины шрифта
    local function set_font_sizes()
        day_size = 1000.0
        date_size = 1000.0
        month_size = 1000.0
-- устанавливаем шрифт       
        local extents = cairo_text_extents_t:create()
        cairo_select_font_face(cr, font_name, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL)
        cairo_set_font_size(cr, day_size)
        cairo_text_extents(cr, day, extents)
        local w = math.abs(extents.width)
        local h = math.abs(extents.y_bearing)
        local scale_w = 0.8*size / w
        local scale_h = 0.1*size / h
        local scale
        if scale_w < scale_h then scale = scale_w else scale = scale_h end
        day_size = scale * day_size

        cairo_set_font_size(cr, date_size)
        cairo_text_extents(cr, date, extents)
        w = math.abs(extents.width)
        h = math.abs(extents.y_bearing)
        scale_w = 0.6*size / w
        scale_h = 0.6*size / h
        if scale_w < scale_h then scale = scale_w else scale = scale_h end
        date_size = scale * date_size
        cairo_set_font_size(cr, month_size)
        cairo_text_extents(cr, month, extents)
        w = math.abs(extents.width)
        h = math.abs(extents.y_bearing)
        scale_w = 0.8*size / w
        scale_h = 0.1*size / h
        if scale_w < scale_h then scale = scale_w else scale = scale_h end
        month_size = scale * month_size
          
        return day_size, date_size, month_size
    end
-- выводим текст
    local function draw_text()
        local extents = cairo_text_extents_t:create()
        cairo_set_source_rgba(cr, rgb_to_r_g_b(fgc, alpha))

        cairo_set_font_size(cr, day_size)
        cairo_text_extents(cr, day, extents)
        cairo_move_to(cr, x0 + size/2 - extents.x_advance/2, y0 + 0.2*size)
        cairo_show_text(cr, day)

        cairo_set_font_size(cr, date_size)
        cairo_text_extents(cr, date, extents)
        cairo_move_to(cr, x0 + size/2 - extents.x_advance/2, y0 + 0.5*size - extents.y_bearing/2)
        cairo_show_text(cr, date)

        cairo_set_font_size(cr, month_size)
        cairo_text_extents(cr, month, extents)
        cairo_move_to(cr, x0 + size/2 - extents.x_advance/2, y0 + 0.9*size)
        cairo_show_text(cr, month)
    end

    x0, y0 = xc - size/2, yc - size/2
-- переключения календаря с английского языка на русский

    if lang == "ru" then

-- для вывода календаря на русском языке

        day = conky_parse("${time %A}")
        date = conky_parse ("${time %d}")
        month = conky_parse ("${time %B}")

    else

-- для вывода календаря на английском языке  

        day = os.date("%A")
        date = os.date("%d")
        month = os.date("%B")

    end

    background()
    day_size, date_size, month_size = set_font_sizes()
    draw_text(day_size, date_size, month_size)
end
--[[ END SHINY CALENDAR WIDGET ]]

    function conky_widgets()
        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)
    calpage(cr, 50, 50, 100, "Petita Medium", 0x000000, 0xffffff, 1, "ru")
    cairo_destroy(cr)

end

В коньки добавляется так

Код: Выделить всё

lua_load ~/conky_lua/calendar.lua
lua_draw_hook_pre conky_widgets
перед блоком TEXT
Координаты вывода задаются в скрипте календаря тут

Код: Выделить всё

calpage(cr, 50, 50, 100, "Petita Medium", 0x000000, 0xffffff, 1, "ru")
первая цифра (у меня 50) - координата по X
фторая цифра (у меня 50) - координата по Y
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Вернуться в «Иное программное обеспечение»