суббота, 26 февраля 2011 г.

Вывод текста в классических конках

Первое, что необходимо для вывода текста, это шрифт. Шрифты для конки хранятся в скрытой папке .fonts расположенной в домашней директории. При работе, конки ищет шрифт сначала в папке .fonts, а затем в папке по адресу /usr/share/fonts. Для добавления шрифтов необходимо нужный шрифт, я предпочитаю брать шрифты с сайта http://www.dafont.com/, распаковать в папку .fonts и дать команду подключения шрифтов

$ sudo fc-cache -v -f

 После этого новый шрифт будет доступен.

В conkyrc шрифт, который будет использоваться по умолчанию, прописывается выше слова TEXT в таком виде

use_xft yes  # Используется ли Xft?
xftfont Ubuntu:size=12 # когда Xft доступен, здесь можно ввести название и размер любого шрифт

Все команды, для работы с конки, можно посмотреть на своем компьютере в папке /usr/share/doc/conky-all, правда там всё на английском, но я по мере надобности буду описывать работу этих функций и команд.

Все примеры привожу согласно выложенному во втором посте тексту conkyrc.


Для вывода текста в классических конках достаточно ниже слова TEXT ввести сам текст. Всё, что находится ниже слова TEXT выводится на экран в том порядке как записано, то есть построчно. Начиная с CONKY-1.8.1 строки ниже слова TEXT можно комментировать при помощи знака #. Знак действует до конца строки.

Для примера возьмем вывод времени, для этого в классических  вводим такую строку.

${time %H:%M:%S}

$ -  указывает программе, что далее следует команда. Все команды в классических конках начинаются знаком $ и заключены в фигурные скобки
time - означает, что будет выводится время или дата
%H - часы в формате 00 .. 23
: - разделитель между часами, минутами ... . Можно использовать любой символ.
%M - минуты в формате 00 .. 59
%S - секунды в формате 00 .. 59

В окне конки будет выведены вот такие часы.

Вывод времени в других форматах можно посмотреть набрав в терминале

$ man date

При создании конок я всегда включаю вывод рамки для нормального центрирования текстов. Это можно сделать отредактировав строку выше TEXT

# окантовка окна, бордюр
draw_borders no

Заменив "no" на "yes", без кавычек.

Вид получился конечно не очень, но всё это легко исправляется. Для изменения шрифта перед командой вводим команду для изменения шрифта

${font Ubuntu:size=24:bold}${time %H:%M:%S}${font}

font - указывает, что дальше будет установлен шрифт
Ubuntu - название шрифта, здесь можно ввести название любого находящегося в папке .font шрифта
size=24 - размер шрифта, зависит от ваших желаний
bold - будет выведен жирный шрифт
${font} - возвращает установки шрифта по умолчанию

Для сравнения вывожу вид до и после редактирования

Цвет шрифта и всего, что выводится в окно конки, прописывается в строках

# --- цвет ---
# основной цвет по умолчанию
default_color ffffff
# цвет тени
default_shade_color black
# цвет окантовки
default_outline_color ffffff
# дополнительные
color0 FFFF00
color1 white
color2 yellow
color3 red


default_color ffffff - цвет по умолчанию, вводится в шестнадцатеричном формате, в данном случае белый, возможно так же водить название цвета словами, в данном примере white, но какие цвета поддерживают такой ввод я не знаю.
default_shade_color black - по умолчанию цвет тени
default_outline_color ffffff - окантовка вокруг текста и выводимых объектов
color0 .. color9 - дополнительные цвета, которые можно использовать вводя в команду только слово с номером.

Раскрашиваем текст.

${color3}${font Ubuntu:size=24:bold}${time %H:%M:%S}${font}${color}
или
${font Ubuntu:size=24:bold}${color3}${time %H:%M:%S}${font}${color}
 
 ${color3} - устанавливаем третий дополнительный цвет
или
${color ff0000} - устанавливаем тот же цвет, красный, таким образом можно ввести команду смены цвета, можно писать и так - FF0000, это как кому нравится.
${font} - возвращает цвет установленный по умолчанию.

Текст можно сдвинуть в любом направлении в границах окна конки. Это делается следующими командами
${goto 10} - сдвигает текст вправо на 10 пикселей, для того кто ещё не знает, все размеры в конках задаются в пикселях, т.е точках. Число может быть любым, главное оставаться в окне конок, при больших числах возможен выход за пределы окна и как следствие просто пропадания текста из видимости.
${voffset 10} - сдвигает строку на 10 пикселей вниз, весь текст расположенный ниже этой строки , так же сдвигается вниз.
${voffset -10} - сдвигает строку и всё, что ниже этой строки, вверх на 10 пикселей. Минус пишется слитно с числами, иначе эта функция не работает.
${alignc} - выравнивает выводимый текст по центру. Возможны следующие варианты
${alignc 10} - выравнивание по центру со сдвигом влево на 10 пикселей, -10 сдвиг вправо
${alignr} - выравнивание по правой кромке окна
${alignr -10} - выравнивание по правой кромке с отступом от кромки в 10 пикселей.

Такая строка центрует вывод часов в окне конки

${alignc 30}${color3}${font Ubuntu:size=24:bold}${time %H:%M:%S}${font}${color}

 Так как длинные тексты читать тяжело, а писать тем более, вывод текста луа-скриптом выложу в следующем посте.

1 комментарий:

  1. Спасибо за подробное и очень доброжелательное описание всех нюансов написания conky-скрипта. Для освоения системы Linux такие статьи весьма необходимы и полезны, потому что именно новичкам нужно скрупулёзно объяснить значение каждого слова и символа в команде. Очевидно, автор сам прошёл "школу новичка" и всё это прекрасно понимает. Спасибо Вам!

    ОтветитьУдалить