15 дек. 2012 г.

Встаем на коньки

На улице идет дождь, а у нас идет концерт

В одной из прошлых записок было рассказано про то, как показать погоду в conky. А теперь давайте узнаем что же это такое и с чем его едят.
Спросим википедию: Conky — программа для системного мониторинга под X Window System... и так далее.
В двух словах: Conky - это такая программа, которая может показывать какую-либо информацию прямо на рабочем столе Linux'а. На самом деле не совсем на рабочем столе (даже совсем не на рабочем столе), но можно conky настроить так, что будет всё выглядеть так, как-будто всё выводится прямо на рабочий стол.
Естественно сама по себе эта программа ничего показывать не будет. Как и всё (ну или почти всё) в мире Linux эта программа требует предварительной настройки. Далее и будет рассказано про то, что там настраивается и как.

Мне нравится. Заверните!

Как обычно начинаем всё с установки. Открываем консоль и пишем:
sudo apt-get install conky
После установки можно его запустить (там же в консоли)
conky
и... тут же остановить (Ctrl+C). Всё уныло и мерцает. Так и должно быть. Потому что не настроено еще ничего. Берем напильник и киянку и творим шедевр мировой культуры.

Ну-ка, поглядим, как тут избы делают?

Итак, конфигурационный файл для conky лежит в домашней папке пользователя и называется .conkyrc. Сразу после установки такого файла может не оказаться. Не беда! Просто создаем его
gedit ~/.conkyrc
Строго говоря никто не мешает создать этот конфигурационный файл с каким угодно именем и сложить его туда где удобно пользователю. Просто в дальнейшем conky должен быть запущен с параметром -c. Вот примерно так
conky -c /path/to/conky/config/file

Что в свою очередь это позволяет распихивать все свистульки-бубенцы по разным конфигам и запускать несколько процессов conky, а не хранить всё в одном монструозном конфиге.
Что мы имеем? Чистый лист. Начнем с того, что в этом чистом листе нажмем пару раз кнопочку Enter и напишем ключевое слово TEXT. Это ключевое слово делит конфиг на две части:

  1. Часть, которая выше этого слова отвечает за внешний вид и положение всей области в которую будет выводится вся интересующая нас инфомация
  2. Часть, которая ниже этого слова будет содержать все то, ЧТО мы хотим видеть в этой области.

Первая часть марлезонского балета!

Как правило первая часть конфига у всех одинакова: области прозрачны и обновляются каждые 2-3 секунды.
#Время обновления в секундах
update_interval 2

#Использование шрифтов со сглаживанием
use_xft yes

#Шрифт по-умолчанию
xftfont Arial:size=10

#Будем использовать юникод для текста
override_utf8_locale yes

#Использование своего собственного окна для вывода
own_window yes

#Указываем conky на то, что мы хотим,
#чтоб всё выглядело так,
#как-будто всё выводится прямо на рабочий стол
own_window_type desktop

#Прозрачность своего окна
own_window_transparent yes

#Двойная буферизация
#или убираем "мерцание"
double_buffer yes

#Цвет по-умолчанию белый
default_color white

#Окно будет расположено в левой верхней части экрана
alignment top_left 

#Зазоры от края экрана до границ окна вывода
#а то вдруг там панельки какие-то
gap_x 80
gap_y 40

#Тут закончили декларативную часть
#и переходим к свистулькам-бубенцам
TEXT

Фигура вторая - печальная!

Переходим ко второй части конфига. Вот в ней-то и начинается все самое интересное. Вот здесь-то и проявляются чудеса. Вот тут-то и становится понятно у кого тараканов в голове больше фантазия шибко развита.
По большей части этот раздел конфига содержит в себе переменные/функции, из которых можно получить какую-либо информацию. И всё, что в этом разделе будет обнаружено будет выведено на экран.
Формат этих переменных/функций очень простой:
${<имя_переменной> [параметры_если_есть]}
Ну что ж, давайте сделаем первый шаг. Выведем на экран следующие параметры:
  • Сегодняшнюю дату и время
  • Версию ядра и время с последней перезагрузки/включения
  • Загрузку процессора и оперативной памяти
  • Выведем список Top 5 самых жадных до процессора активных процессов
  • Загрузку корневого раздела системы
  • Ну и какую-нибудь свистулечку в виде картинки (куда же без картинок?)
Код второй части документа может выглядеть примерно так:
#${goto 50}
#    смещает вывод текста на 50 пикселей вправо
#    Эти 50 пикселей мы оставим для картинки
#${exec date +"%d %B %Y %R"}
#    выполняет в консоли команду
#    date +"%d %B %Y %R" и выводит результат
${goto 50}${exec date +"%d %B %Y %R"}
#${execi 10 uname -r}
#    Выполняет в консоли команду
#    uname -r
#    раз в 10 секунд и выводит результат
${goto 50}${execi 10 uname -r}
#${uptime}
#    Одна из многочисленных
#    переменных в conky отображает
#    время с последнего запуска системы
${goto 50}${uptime}
#${cpubar 10, 100}
#    Отображает загрузку процессора
#    в виде полосы высотой в 10 пикселей
#    и шириной в 100 пикселей
#${cpu}
#    Показывает загрузку процессора в процентах
CPU:${goto 50}${cpubar 10, 100} ${cpu}%
#${membar 10, 100} и ${memperc}%
#    Аналогично cpubar и cpu
#    но только для оперативной памяти
MEM:${goto 50}${membar 10, 100} ${memperc}%

#Выставляем желтый цвет и выводим текст
# name   cpu   pid
#Возвращаемся к цвету по-умолчанию
${color yellow}name${goto 90}cpu${goto 170}pid${color}
#${top name 1} выводит имя (name) процесса первого (1)
#    из списка процессов отсортированного по
#    использованию процессора
#${top cpu 1} выводит процент использования процессора
#    процессом под номером 1 из вышеуказанного списка
#${top pid 1} выводит pid процесса под номером 1 из
#    вышеуказанного списка
#${alignr} выравнивает весь текст после этого параметра
#    по правой границе окна вывода
${top name 1}${goto 80}${top cpu 1}${alignr}${top pid 1}
#Далее все по аналогии для процессов под номером 2,3,4 и 5
${top name 2}${goto 80}${top cpu 2}${alignr}${top pid 2}
${top name 3}${goto 80}${top cpu 3}${alignr}${top pid 3}
${top name 4}${goto 80}${top cpu 4}${alignr}${top pid 4}
${top name 5}${goto 80}${top cpu 5}${alignr}${top pid 5}

#${fs_bar 10,100 /} отображает количество занятого 
#    пространства по пути / в виде полосы высотой
#    в 10 пикселей и шириной в 100 пикселей
#${fs_used_perc /} выводит процент занятого
#    пространства по пути /
root:${goto 50}${fs_bar 10,100 /} ${fs_used_perc /}%
#${image ~/Pictures/tux.png -p 0,0 -s 40x40} 
#    выводит картинку ~/Pictures/tux.png
#    в позицию 0,0 относительно окна вывода
#    и масштабирует ее до размеров 
#    40 пикселей на 40 пикселей
${image ~/Pictures/tux.png -p 0,0 -s 40x40}
В результате мы получим картинку

Скачать весь конфиг целиком можно отсюда. Картинка лежит тут

Ури! Ури! Где у него кнопка?

Параметров, которые можно выводить на экран с помощью conky видимо-невидимо. Учитывая то, что есть возможность выводить на экран результаты работы консольного скрипта, то всё ограничивается только фантазией. Так же conky поддерживает работу со скриптами, написанными на языке LUA, что позволяет и оформление делать таким, каким пожелаете.

Посмотреть полную информацию по настройкам можно на сайте производителя http://conky.sourceforge.net. Вся интересующая информация находится в разделе Documentation по ссылкам:
  • Pretty table of Conky config file settings (1.8.1) - это всё, что пишется перед ключевым словом TEXT
  • Pretty table of Conky variables (1.8.1) - это всё, что пишется после ключевого слова TEXT

На том же сайте производителя есть и примеры конфигов. Посмотреть их можно в разделе Screenshots

Так же посмотреть, что и как делают другие можно на сайте gnome-look.org. Вбиваем в поиске (слева снизу под боковым меню) слово conky и смотрим чужие конфиги.

Ну и опять же не забываем гуглить.

Комментариев нет :