Создание панелей Conky включающих только текст

Создание панелей Conky включающих только текст

Conky — очень многофункциональное приложение для создания панелей. Если поискать в интернете, то можно найти массу очень красивых примеров конфигураций conky с использованием lua. Мы же поговорим о создании панелей, включающих только текст (дешево и практично).

РЕКОМЕНДУЕМ: Лучший файл менеджер в Linux

Наша первая conky-панель

Создадим простую панель в нижней части экрана с помощью следующего кода:

Конфигурационный файл состоит из двух частей: описание свойств панели и само содержимое (после слова TEXT). Можете сохранить этот файл в домашнем каталоге под именем .conkyrc. Это имя конфигурационного файла по умолчанию. Если вы решите, что вам хватит одной панели, то можете просто запускать conky без дополнительных параметров. Если же вам требуется несколько панелей, то нужно использовать ключ -c. Например:

Разберем наиболее интересные параметры первой части:

  1. xftfont — шрифт, применяемый по умолчанию для отображения содержимого панели;
  2. update_interval — временной интервал между обновлениями содержимого. Обычно с помощью conky отображают полезную системную информацию, которая периодически меняется. Сам conky не может узнать, что выводимые значения изменились, поэтому он сам вынужден регулярно себя перерисовывать, чтобы показывать актуальные данные;
  3. own_window_argb_visual и own_window_argb_value. Первый включает возможность управлению прозрачностью панели, а второй — задает значение прозрачности (от 0 до 255). Значение 255 означает, что панель полностью НЕ прозрачна;
  4. minimum_size — задает минимальные размеры панели. Требует указания двух значений: минимальная ширина и минимальная высота. В примере выше для ширины выбран размер экрана виртуальной машины, а для высоты — 0. Ноль в данном случае означает, что масштабирование по высоте будет осуществляться на основании содержимого. Если вы решите использовать приведенную конфигурацию, то вам придется подправить этот параметр, чтобы панель соответствовала размерам экрана;
  5. default_bar_size — размер индикаторов, который будет использован по умолчанию. Индикаторы в conky чем-то похожи на индикаторы прогресса, но могут отображать всевозможные данные;
  6. alignment — определяет относительно какой позиции осуществлять выравнивание панели на экране. Допустимы значения bl (bottom_left), bm (bottom_middle), br (bottom_right), tl (top_left), tm (top_middle), tr (top_right), ml (middle_left), mm (middle_middle), mr (middle_right). Например, если выбрано значение bl, то левый нижний угол панели окажется в левом нижнем углу экрана, а если выбрано mm, то панель окажется ровно по середине и т.д.;
  7. gap_x и gap_y — отступ от точки выравнивания по оси x и по оси y. Например, если точка выравнивания — правый нижний угол, то отступы будут сделаны влево и вверх;
  8. own_window_colour — цвет фона. Этот параметр в примере не приводится, но может кого-то заинтересовать, поэтому я не мог его не указать;
  9. use_spacer — определяет необходимость использования заполнителей для выдерживания постоянной ширины выводимых на панели значений (например, объем доступной оперативной памяти или объем занятого swap-пространства). Без этого параметра надписи в панели будут «плавать».

Панель закреплена вдоль всей нижней части экрана, чтобы она располагалась в противовес панели задач tint2, которая находится сверху.

Теперь немного относительно содержимого. Если вы хотите вывести какой-то текст, то можете его набрать и он отобразится в левом верхнем углу панели. Все просто, но не особо интересно. Гораздо больший интерес для нас представляют conky-переменные:

  1. cpubar — индикатор нагрузки на процессор. В качестве параметра принимает имя ядра;
  2. membar — индикатор использования оперативной памяти;
  3. swapbar — индикатор использования swap-раздела;
  4. fs_bar — индикатор занятого пространства файловой системы, указанной в качестве параметра;
  5. mixerbar — индикатор громкости;
  6. mem и memmax — объем занятой и доступной памяти;
  7. swap и swapmax — объем занятой и доступной памяти в swap-разделе;
  8. mixer — текущий уровень громкость (от 0 до 100);
  9. uptime — время работы системы;
  10. execi — результат выполнения консольной команды или скрипта;
  11. offset — отступ в пикселях по оси x, который нужно сделать между выводимыми надписями;
  12. color — цвет, который должен иметь выводимый текст (по умолчанию — белый).

Сделаю несколько замечаний. В приведенной панели для отображения текущей температуры процессора используется вывод команды sensors, входящей в состав пакета lm_sensors. Однако у меня на виртуальной машине она не работает, поэтому вывод пуст. На физическом компьютере такие проблемы не наблюдаются. Если у вас больше ядер и позволяет размер монитора, то дополните список до нужного количества. То же самое касается любых накопителей или разделов жесткого диска, для которых вам может быть интересно узнать объем занятого пространства. Обращаю внимание, что новая строка в разделе TEXT из файла конфигурации панели означает новую строку и при ее отображении на экране. Чтобы выводить длинные цепочки значений, как в примере, используется символ \. Сам он не выводится, но указывает, что переход на новую строку учитывать при отображении не следует.

Для работы переменных mixerbar и mixer требуется включенный модуль ядра snd_pcm_oss. Не могу не привести быстрые клавиши для изменения громкости и отключения звука в Openbox (добавьте в ~/.config/openbox/rc.xml):

Выделяем место для панели

Если вы запустите какое-нибудь приложение на весь экран, то оно перекроет нашу панель. А нам бы хотелось, чтобы она была видна постоянно. Но есть простое решение. Для этого нам потребуется только obconf. Измените с помощью этой утилиты нижний отступ.

Больше панелей

Еще не лишне иметь панель, на которой отображается время, сетевая нагрузка и уведомления о почте. Удобнее всего разместить все это на отдельном мониторе, но попробуем в качестве эксперимента разместить все на одном (над уже имеющейся панелью). Я бы хотел, чтобы часы были выровнены по центру, сетевая нагрузка — по правому краю, а почтовые уведомления — по левому. Конечно, все это можно разместить и на одной панели, но учитывайте интервалы обновления, которые для этих данных отличаются.

Сначала создадим файл ~/.conkyrc1:

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

Далее создаем файл ~/conkyrc2:

Здесь вам может понадобится поменять имя сетевого интерфейса (в примере — enp0s3). К тому же, для визуализации динамики использования сети используются элементы downspeedgraph и upspeedgraph, которые показывают не только текущее значение, как обычный индикатор. но и хронологию изменений за последнее время.

И наконец ~/.conkyrc3:

Информацию о наличии входящих сообщений получает следующий простой скрипт (в целях безопасности рекомендую ограничить права на чтение по максимуму):

После запуска всех панелей (conky -c ~/.conkyrc1 и т.д.) и дополнительной настройки отступов.

И это еще не все

Добавим еще несколько полезных панелей. Первая из них — календарь:

Не будем особо разбираться в содержимом. Единственное, что важно: для корректного отображения панели в системе должны быть установлены шрифты DejaVu и EtcherSkesch Inverse.

Аналогично создадим панель для отображения активных процессов:

Для ее отображения вам понадобятся те же шрифты.

Их уже можно будет увидеть не всегда, а только на чистом рабочем столе, но не так часто это и требуется (для быстрого сворачивания-разворачивания окон используйте стандартное сочетание клавиш Win + D).

Не забудьте про автостарт conky

Чтобы все панели появлялись автоматически при запуске Openbox, сначала создадим подобный скрипт (~/.scripts/start_conky.sh):

Если не использовать задержку (sleep) при запуске двух последних панелей, то они могут не отобразиться.

А теперь, как обычно, добавляем этот скрипт в список приложений для автозапуска в наш ~/.config/openbox/autostart:

Заключение

На этом мы пока что завершаем серию статей про настройку Openbox. Конечно, существуют и другие интересные утилиты, которые позволяют сделать Openbox еще красивее и ярче, но мой опыт работы с ними ограничен. В результате многочисленных экспериментов я пришел к описанному сочетанию, которое меня устраивает. Думаю, что вы без труда сможете сами расширить свой Openbox (если понадобится) и подобрать то, что подходит именно вам.

РЕКОМЕНДУЕМ: Самые быстрые и легкие дистрибутивы Linux

Понравилась статья? Поделиться с друзьями:
Добавить комментарий