Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: CONKY от olgmen 2  (Прочитано 44993 раз)

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

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #15 : 15 Января 2011, 16:50:12 »
КНОПКА В ОКНЕ CONKY

Для включения/выключения любого скрипта в моих коньках я использую скрипт adesk написанный by ADcomp <david.madbox@gmail.com>.

Я не знаю языка python, но разобрался как прикрутить его к моим конькам с помощью скрипта выложенного на http://crunchbanglinux.org/forums/post/100040/#p100040

Для работы всего этого необходимы:

Скрипт adesk который выводит на экран монитора изображение кнопки, отслеживает положение курсора и запускает скрипт button1.sh. При наведении курсора на кнопку, изображение кнопки изменяется, так же и при щелчке мышью по кнопке.

(Нажмите, чтобы показать/скрыть)

Настройка скрипта производится редактированием строк

## Default config
POS_X = 1142
POS_Y = 118
WIDTH = 48
HEIGHT = 48
THEME = 'images'
CMD = "~/conky_12.01.2011/conkybar/button1.sh"

Здесь

POS_X - расстояние по горизонтали от правой кромки ЭКРАНА МОНИТОРА до левой кромки иконки кнопки. Заметьте, от края монитора, а не от кромки окна conky.

POS_Y - расстояние по вертикали от верхней кромки ЭКРАНА МОНИТОРА.

WIDTH, HEIGHT - ширина и высота иконки кнопки

THEME - название папки в которой лежат иконки.

Небольшое отступление. Скрипт adesk и папка themes, с изображениями иконок по замыслу автора находится в папке adesk, я просто оставил как есть.

CMD - путь к скрипту button1.sh

Скрипт button1.sh записывает в файл batton1.txt 0 - если кнопка не нажата и 1 - при нажатии кнопки

(Нажмите, чтобы показать/скрыть)

Файл batton1.txt простой текстовый файл. Первоначально в файл необходимо записать 0

Теперь об иконках для кнопки

Строки в скрипте adesk

(Нажмите, чтобы показать/скрыть)


Первая строка выводит изображение кнопки в состоянии "покоя".
Вторая строка выводит изображение при наведении мыши на кнопку.
Третья строка выводит изображение при щелчке мышью.

Я брал иконки из своей папки с темами, чтобы они не очень выпадали из установленной темы, можете использовать любые иконки. Главное чтобы они находились в папке images которая находится в папке themes.

Ну и в завершении как всё это запустить. Я запускаю эти коньки с панели, как и все остальные, с помощью кнопки

(Нажмите, чтобы показать/скрыть)


Данный скрипт toggle.sh при первом нажатии запускает коньки и пять скриптов adesk, по одному на каждую кнопку, при повторном нажатии коньки и скрипты выключаются.

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

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

Дополнения:

Работа кнопок в "классических" коньках

Для вывода строк кода которые заменят выведенные ранее строки

${if_match ${execpi 1 cat ~/путь_к_месту_размещения_файла/button1.txt} == 0}
строчки conkyrc запускаемые по умолчанию
${else}
строчки conkyrc запускаемые нажатием кнопки, необходима коррекция с помощью команды ${voffset -10}
число -10 зависит от того расколько необходимо поднять вводимые строки
${endif}

Для вывода строк кода на свободное место

${if_match ${execpi 1 cat ~/путь_к_месту_размещения_файла/button1.txt} == }
строчки conkyrc запускаемые нажатием кнопки
${endif}

« Последнее редактирование: 25 Января 2011, 10:43:44 от olgmen »
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #16 : 25 Января 2011, 11:02:12 »
Ещё немного о настройке скрипта adesk_1

Строка

CMD = "~/conky_16.01.2011/conkybar/button1.sh"
Можно писать как полный путь к текстовому файлу button1.txt, так и сокращенный

Если изменить строку на строку такого вида

CMD = 'touch ~/conky_16.01.2011/conkybar/button1.txt; echo "1" > ~/conky_16.01.2011/conkybar/button1.txt; sleep 10s && echo "0" > ~/conky_16.01.2011/conkybar/batton1.txt'
получаем возможность выводить необходимую часть кода на определенное время.
Время устанавливается редактированием

sleep 10s
В данном случае 10 секунд.

Ну и конечно при этом ненужен скрипт button.sh
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #17 : 30 Января 2011, 16:07:04 »
В дополнение к https://forum.ubuntu.ru/index.php?topic=123423.msg980263#msg980263

Индикация состояния переключателей NUM LOCK, CAPS LOCK, KEYBOARD в conky




Так как лимит вложений исчерпан, попробую уместиться здесь

conkyrc

(Нажмите, чтобы показать/скрыть)

скрипт main.lua

(Нажмите, чтобы показать/скрыть)

скрипт backgraund.lua

(Нажмите, чтобы показать/скрыть)

скрипт simple_text.lua

(Нажмите, чтобы показать/скрыть)

скрипты помещаем в папку scripts, тогда не потребуется редактирования скриптов
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #18 : 30 Января 2011, 17:05:48 »
А мне возвращает ошибку
Conky: llua_do_call: function conky_widgets execution failed: /home/ingward/scripts/backgraund.lua:87: attempt to perform arithmetic on global 'colour' (a table value)


(((

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #19 : 10 Февраля 2011, 21:41:23 »
Доделал скрипт backgraund.lua С его помощью можно не только выводить фон для коньков, но и рисовать кнопки, бары, всего ещё не перепробовал.



скрипт backgraund.lua

(Нажмите, чтобы показать/скрыть)

комментарии в скрипте, если что непонятно спрашивайте в личку, на мыло и джабер.

Более продвинутый скрипт смотрите здесь http://u-scripts.blogspot.com/2011/01/box-widget_27.html
« Последнее редактирование: 11 Февраля 2011, 08:33:36 от olgmen »
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #20 : 19 Февраля 2011, 22:12:51 »
Написал небольшой скрипт для изменения цвета выводимого параметра CPU, MEM, SWAP
Начальный цвет зелёный, но можно использовать любой цвет, плавно переходящий в желтый, при достижении 50%, и далее в красный.

Сам скрипт

--[[ change_colour.lua by olgmen 19.02.2011

Изменение цвета текста в зависимости от величины выводимого параметра

Color change depending on the output parameter

When writing used a script written Brenden Matthews
Copyright (c) 2009 Brenden Matthews, all rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Для запуска необходимо добавить в conkyrc следующие строки

lua_load ~/путь_к_скрипту/change_colour.lua

TEXT

# Для вывода нагрузки процессора

CPU0 ${lua_parse change_cpu_colour 0}${color} %
CPU1 ${lua_parse change_cpu_colour 1}${color} %
CPU2 ${lua_parse change_cpu_colour 2}${color} %

# Для вывода используемой памяти, свопа

mem ${lua_parse change_mem_colour memperc}${color} %
swap ${lua_parse change_mem_colour swapperc}${color} %

]]
require 'cairo'
function components_to_colour(r, g, b)
-- Take the RGB components r, g, b, and return an RGB integer
return ((math.floor(r + 0.5) * 0x10000) + (math.floor(g + 0.5) * 0x100) + math.floor(b + 0.5)) % 0xffffff -- no bit shifting operator in Lua afaik
end

function colour_to_components(colour)
-- Take the RGB components r, g, b, and return an RGB integer
return (colour / 0x10000) % 0x100, (colour / 0x100) % 0x100, colour % 0x100
end

function conky_change_colour (value, max, default_colour)

if value == nil then value = 0 end

local r, g, b = colour_to_components(default_colour)

r = r + (256 - r) * value/max * 2

if r > 255 then r = 255 end

if r < 255 then

g = g + (256 - g) * value/max * 2

if g > 255 then g = 255 end
else

g = 255 - 255/(max/2) * (value - max/2)
end

b = b - b/max * value * 2
 
if b < 0 then b = 0 end

colour = components_to_colour(r, g, b)


return string.format("${color #%06x}", colour)

end

function conky_change_cpu_colour(arg)

str = string.format('${cpu cpu%s}', arg)
str = conky_parse(str)
value = tonumber(str)

return conky_change_colour(value, 100, 0x3aca36) .. str
end

function conky_change_mem_colour(arg)

str = string.format('${%s}', arg)
str = conky_parse(str)
value = tonumber(str)

return conky_change_colour(value, 100, 0x3aca36) .. str
end

Прошу любителей коньков протестировать и подсказать выявленные ошибки
« Последнее редактирование: 19 Февраля 2011, 22:18:38 от olgmen »
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн kit_oz

  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #21 : 22 Февраля 2011, 00:16:54 »
чего лично мне не хватало в первоначальном варианте и, естественно, у Вас - возможность задать собственные цвета. первые попытки реализовать это я выложил, а сам пока копаюсь дальше..

ps сам не эксперт конечно, но..
переменные безопаснее создавать локальными - дабы при совпадении названий или множественном вызове функции не перекрывали друг друга.
ну и можно вложенные скобочки использовать
str = tonumber(conky_parse(string.format('${cpu cpu%s}', arg)))
# или я так подстановку делаю (минус вызов функции)
str = tonumber(conky_parse('${cpu cpu' .. arg .. '}'))
молчание не всегда доказывает присутствие ума, но доказывает отсутствие глупости

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #22 : 22 Февраля 2011, 06:26:25 »
Спасибо за подсказку, век живи, век учись. И это конечно не последний вариант.
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн kit_oz

  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #23 : 23 Февраля 2011, 23:07:56 »
а может возможно Ваши скрипты переписать для использования внутри TEXT ? ну хоть маалую часть.. ^^
ведь это будет гораздо проще для понимания и использования, чем изучение кучи малопонятных скриптов (эт не про Вас, это вообще так..)

не поверю, что невозможно придумать так, чтоб работало что-то подобное
${lua_parse ring hour pos_x rad_x rad_y .... }
молчание не всегда доказывает присутствие ума, но доказывает отсутствие глупости

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #24 : 24 Февраля 2011, 06:57:18 »
Конечно возможно, но тогда теряются некоторые функции, такие как разворот текста, баров.
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн kit_oz

  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #25 : 24 Февраля 2011, 12:36:39 »
как по мне - и это тоже можно..
вечером попробую залезть в дебри этого cairo и поэксперементировать
молчание не всегда доказывает присутствие ума, но доказывает отсутствие глупости

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #26 : 24 Февраля 2011, 16:32:04 »
Невозможно, так как коньки в классике выводят всё построчно согласно того, что написано ниже слова TEXT. Можно вывести иконки, погоды, бары, но развернуть текст - нет.

Но это моё личное мнение.
« Последнее редактирование: 24 Февраля 2011, 16:35:45 от olgmen »
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн kit_oz

  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #27 : 24 Февраля 2011, 20:15:06 »

часики узнаете? запущены ниже TEXT с минимальными изменениями - функция теперь возвращает один пробел, дабы коньки не ругались на отсутствие результата
получается что даже менять ничего не надо - все работает и так ;)
хотя, если подумать, так и должно быть - какая разница где функция вызывается?
молчание не всегда доказывает присутствие ума, но доказывает отсутствие глупости

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #28 : 25 Февраля 2011, 21:18:51 »
Я говорил немного о другом. Что таким образом нельзя развернуть строку. Например при выводе меняющих цвет данных cpu при их развороте, остальная строка останется горизонтально, т.е строки написанные ниже слова TEXT нельзя поворачивать.
кто хочет, тот добьется,
кто ищет, тот всегда найдет

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
Re: CONKY от olgmen 2
« Ответ #29 : 10 Марта 2011, 18:39:22 »
Небольшой скриптик для вывода календаря.



Верхний специально выложил на фоне с градацией, переход цвета заметнее. Календарь можно наклонять, раскрашивать с градацией, плавным переходом, в окраске нижнего использовано пять цветов. Все пояснения в скрипте.

(Нажмите, чтобы показать/скрыть)

Скрипт можно скачать здесь http://dl.dropbox.com/u/22038871/calendar.lua
« Последнее редактирование: 11 Марта 2011, 13:28:58 от olgmen »
кто хочет, тот добьется,
кто ищет, тот всегда найдет

 

Страница сгенерирована за 0.061 секунд. Запросов: 23.