Хакер № 05/07 (101)
Столовый декор
Сергей «grinder» Яремчук
Хакер, номер #101, стр. 108
(grinder@ua.fm)
SuperKaramba: инструмент для размещения апплетов на рабочем столе KDE
В Linux существует множество способов приукрасить и сделать индивидуальным свое рабочее окружение. Перестройке поддается практически все. Можно изменить обои, значки, оконный менеджер, использовать 3D-окружение вроде XGL или AIGLX. Одним из интересных вариантов является SuperKaramba - программа для графического интерфейса KDE, позволяющая создавать на рабочем столе интерактивные приложения (widget). Получается не только очень красиво, но и весьма удобно, так как нужное приложение или индикатор всегда находится под рукой.
Что такое SuperKaramba
Первой ласточкой была Karamba (karamba.sf.net), созданная автором Хансом Карлсоном (Hans Karlsson). Она включала в себя ряд модулей и настраивалась исключительно с помощью конфигурационных файлов. Сейчас проект заброшен, последняя версия 0.17 датирована 14 апреля 2003 года. Но хорошие идеи зря не пропадают, и упавший флаг был вскоре подхвачен энтузиастами. Приблизительно так и возник проект SuperKaramba (netdragon.sf.net), совместимый по модулям с Karamba. Кстати, если до недавнего времени этот проект, можно сказать, развивался отдельно, то теперь он официально входит в состав последней версии KDE.
Вообще говоря, SuperKaramba представляет собой стартовую площадку, которая сама по себе ничего не делает, да и не умеет. Все функции реализуются с помощью дополнительных модулей-апплетов. Имеющиеся сегодня модули позволяют управлять проигрыванием музыки и видео, показывать различную системную информацию, а также информацию из интернета (сводки новостей, погоды, наличие почты на сервере). С помощью SuperKaramba можно создавать панели различного назначения, выводить на рабочий стол небольшие игры.
Установка SuperKaramba
Пакеты SuperKaramba присутствуют в репозитариях практически всех популярных дистрибутивов. Так, для установки в Kubuntu следует ввести «sudo apt-get install superkaramba». В AltLinux пакет называется kdeutils-superkaramba.
После установки значок для запуска помещается в меню KDE. При первом запуске SuperKaramba появляется окно настройки, позволяющее установить апплеты. Апплеты представляют собой файлы с расширением skz (переименованный zip) или theme. Первые обычно включают в себя три составляющие: тестовый файл, в котором определен внешний вид .theme; скрипты на Python (.py), задача которых добавить интерактивность; графические ресурсы, используемые для украшения.
Очень большой список апплетов находится на сайте www.kde-look.org. Самые популярные удобнее отбирать и загружать в самой SuperKaramba. В этом случае, чтобы получить апплет, необходимо нажать «Скачать апплеты», после чего появится окно, предназначенное для их выбора. В самом правом окне отображается краткая информация о выбранном апплете, а иногда и маленький экранный снимок. Для каждого апплета выводится номер версии и рейтинг, выставленный пользователями.
Обрати внимание, что окно имеет три вкладки. В «Highest Rated» показаны апплеты, имеющие наибольший рейтинг, в «Most download» - наиболее часто скачиваемые, а в «Latest» - недавно вышедшие версии. Щелкнув по «Details», можно получить более детальную информацию. Нажатие на «Установить» закачает модуль. При этом файл скачивается в /tmp и затем запускается из него. Но учти, что этот каталог после перезагрузки будет очищен и модуль придется скачивать заново, поэтому к такому варианту следует обращаться только при ознакомлении с работой модуля. При постоянном использовании создай подкаталог superkaramba в /usr/share/kde/apps или в домашнем каталоге пользователя ~/.kde/share/apps.
Далее, нажимаем «Локальный файл» и указываем на файл с расширением skz или theme, принадлежащий выбранному апплету. А можно просто дважды щелкнуть по нему в файловом менеджере Konqueror - при этом стартует SuperKaramba, которая загрузит его автоматически. Правда, при следующем запуске в списке известных апплетов его не будет, и придется повторять все сначала. Еще одним вариантом является перечисление всех апплетов в строке запуска superkaramba:
$ superkaramba karss-03.skz
Большую часть апплетов после запуска можно и даже нужно настраивать. Для этого щелкаем по нужному апплету правой кнопкой мыши и вызываем контекстное меню, в котором должен быть активным пункт «Настроить апплет». Чтобы расположить апплет в выбранном месте, просто схвати его мышкой и перетащи туда. Бывает, что это не удается :). Тогда в контекстном меню выбираем «Фиксированная позиция», чтобы изображение замка пропало, и после перемещения возвращаем замок на место. Кроме того, в рабочем каталоге пользователя имеется подкаталог .superkaramba. В нем после настройки апплета создается файл, в котором описывается его местоположение на рабочем столе и иногда задаются некоторые настройки. Ручное редактирование этого конфига может понадобиться в том случае, если апплет вдруг спрячется за другой апплет или выскочит за рабочий стол и его не получится достать мышкой. Чтобы остановить отдельный апплет, выбери «Убрать апплет».
Полезные апплеты
Описать все разнообразие существующих апплетов абсолютно невозможно, да и на сайте представлены далеко не все. Например, nanoramba2 - простой апплет, показывающий загрузку процессора, объем занятой оперативной памяти и swap, работу сетевого интерфейса. А wCPU умеет выводить только информацию о загрузке процессора. Тот, кому этого будет недостаточно, может попробовать GlassMonitor, который выдает значительно больше информации: имя узла и информацию о системе, загрузку процессора и его температуру, использование памяти, работу сетевого интерфейса, в том числе скорость и количество отправленных и полученных данных, свободное место на смонтированных разделах жесткого диска. В BuildAMon (Build Your Own System Monitor), который фактически состоит из двух апплетов, имеющих разный внешний вид, основной упор сделан на вывод информации о температуре компонентов компьютера и скорости вращения кулеров. В апплете donmon system monitor также показывается напряжение, выдаваемое блоком питания.
Есть целая группа апплетов, предназначенная для работы с различными сервисами интернета. Например, true-nature, кроме системной информации, выводит данные о наличии писем в РОР3 или IMAP почтовых ящиках. Для того чтобы контролировать почтовые ящики, необходимо указать их параметры в файлах mails_pop3.pl и imap.pl, которые находятся в подкаталоге true-nature/programs. Например:
my $account = 'my account at UA.FM';
my $ServerName = 'ua.fm';
my $UserName = 'grinder';
my $Password = 'my_password';
Если для обмена сообщениями ты пользуешься Kopete, то обрати внимание на апплет Skopete. Работать с такой парочкой приятнее.
Тому, кто получает новости через каналы RSS, можно посоветовать karss. Для его работы нужен PyXML, который в KUbuntu устанавливается командой sudo apt-get install python-xml. После установки и первого запуска апплета необходимо зайти в каталог ~/.superkaramba/karss и отредактировать файл feedlist.xml, прописав в нем свои любимые RSS-каналы примерно так:
<feed>
<name>Slashdot</name>
<URL>http://rss.slashdot.org/Slashdot/slashdot</URL>
</feed>
После этого требуется перезапуск апплета.
А название Wikipedia search говорит само за себя. После его запуска достаточно ввести интересующее слово в появившемся окне, чтобы открылся веб-браузер с результатом поиска. Тот, кто часто заходит на Wikipedia, оценит удобство этого апплета.
Популярностью пользуется апплет Liquid Weather (liquidweather.net), он имеет наивысший рейтинг. После его установки необходимо выбрать в контекстном меню «Настроить апплет -> Configure theme», а затем указать во вкладке «General» в выпадающем списке «Select Translation» русский язык и выйти из настроек. После повторного захода все подсказки будут на русском. Теперь в поле «Единицы» активируем «Использовать метрические», переходим во вкладку «Местность» и в строке поиска внизу вводим название своего города (на английском). Затем находим его в результатах поиска, нажимаем «Добавить в список» и активируем месторасположение в «Сохраненные города». После перезапуска Liquid Weather будет показывать погоду на ближайшие 5 дней.
Обрати внимание, что еще есть вкладка «Веб-камеры». На рабочем столе очень хорошо смотрятся снимки космической тематики, взятые с сайта ridingwithrobots.org, - нужно лишь установить апплет Riding With Robots.
Также есть апплеты, позволяющие управлять видео- и аудиопроигрывателями. Например, AmaroKKontrol, который не только позволяет управлять одноименным музыкальным проигрывателем, но и выводит рейтинг песни, рисунок альбома и системную информацию. Есть решения и с более простой функциональностью, вроде Simplarok или Mini-Amarok.
Не менее полезен апплет Multi_Search, который представляет собой интерфейс к нескольким наиболее популярным настольным поисковым системам.
Кроме одиночек, доступны и целые наборы апплетов. К примеру, AeroG. Его отдельные окна в виде шариков выводят каждый свою информацию, при этом некоторые апплеты дублируют друг друга. Так, есть 2 апплета, предоставляющих информацию о наличии почты на РОР3-серверах, но aeroG-mail-mini отслеживает только один ресурс, а aeroG-mail – два. Для редактирования параметров доступа открываем файл aeroG-mail(-mini).py и указываем их в строках server1, server2, servername1, servername2, username1, username2, password1 и password2. Другим подобным набором является TDE, который выводит в отдельных окнах сведения по загрузке системы, календарь, список зарегистрировавшихся пользователей, процессы, заметки, сетевую статистику и многое другое. Для запуска сразу всех модулей достаточно использовать файл all.theme.
Создаем свою тему
Владея простейшими навыками программирования, ты легко можешь создать свой апплет самостоятельно. Подробности ищи в документации проекта; также есть неплохой документ на русском языке - HOWTO_SuperKaramba (ru.gentoo-wiki.com/HOWTO_SuperKaramba). В принципе, ничего сложно здесь нет, просто нужно время и желание.
Для удобства рекомендую скачать с сайта проекта файл-шаблон template.py (netdragon.sf.net/template.py) или использовать один из готовых апплетов. Переименовываем его в mytheme.theme и открываем в редакторе. Апплет может содержать следующие записи:
- karamba – определяет внешний вид интерфейса, тему, размер, фоновые рисунки, шрифты, области, позволяющие вызвать приложение нажатием мышки;
- sensors – набор предустановленных датчиков, выводящих информацию о системе (загрузка процессоров, память, сеть), запущенных приложениях;
- meters – автоматически обновляющиеся индикаторы, выводящие значения датчиков. Для удобства однотипные индикаторы рекомендуется разбивать на группы.
Кроме того, SuperKaramba имеет большое количество функций, неплохо помогающих в настройке.
Итак, открываем свой любимый редактор и конфигурируем. Помни, мы имеем дело с Python, который не терпит лишних пробелов и табуляций. Нумерация строк приведена исключительно для удобства разбора и более никакой роли не играет:
- karamba x=0 bottom=true w=120 h=140 locked=false interval=2000 default font="Sans" fontsize=10 shadow=2 color=255,255,255
- <GROUP> x=10 y=10
- text x=12 y=0 sensor=time fontsize=12 format="hh:mm:ss"
- text x=12 y=15 sensor=time format="ddd dd.MM.yyyy"
- clickarea x=0 y=0 w=120 h=34 onclick="xterm"
- </GROUP>
- 7. <GROUP> x=10 y=50
- 8. text x=12 y=0 value="MEM"
- 9. text x=45 y=0 sensor=memory format="%fmb Mб"
- 10. text x=12 y=15 value="CPU"
- 11. GRAPH x=45 y=15 w=70 h=12 color=255,255,255 points=100 sensor=cpu
- 12. text x=12 y=30 value="IN"
- 13. text x=45 y=30 h=12 w=70 color=255,255,255 points=100 sensor=network device="ppp0" format="%in kB/s" interval=1000 decimals=1
- 14. text x=12 y=40 value="OUT"
- 15. text x=45 y=40 h=12 w=70 color=255,255,255 points=100 sensor=network device="ppp0" format="%out kB/s" interval=1000 decimals=1
- 16. </GROUP>
Теперь разберем пример. В общем случае любой апплет может состоять из одной первой строки. Тогда будет выведено пустое окно шириной 120 и высотой 140 пикселей; интервал обновления для всех элементов составит 2000 мс; для представления информации будет применяться шрифт Sans белого цвета высотой 10. Для группировки отдельных элементов используются тэги <GROUP>, </GROUP>. Такой подход упрощает совместное перемещение, форматирование и оформление. Можно задействовать вложенные группы. Параметры x и y при объявлении группы указывают на горизонтальное и вертикальное положение ее верхнего угла. Чтобы выделить группу, можно использовать рисунок, изображающий ее назначение и подключающийся такой конструкцией:
image x=5 y=5 path="system.png"
В качестве альтернативы подключают заготовленный файл темы:
theme path=1.theme
В строках 3 и 4 вызываем датчик time, показывающий информацию о системном времени. Для форматирования вывода любого датчика используется функция format. Датчик имеет несколько параметров format, каждый из которых выводит результат по-разному. В нашем случае в первой строке время будет представлено в формате «14:13:09», а ниже будет идти дата «Вос 03.03.2007». В строке 5 показан вариант реакции апплета на щелчок мышкой по указанной области (если locked=false, то необходим двойной щелчок). В нашем примере будет запущен xterm, но это может быть любой исполняемый файл или скрипт с некоторыми параметрами. В группе 7/16 в поле апплета будет показываться системная информация. Строки 8, 9, 12 и 14 выведут текст, который будет использован для заголовка сенсора. А следующие строки активируют уже сами детекторы. В SuperKaramba имеются следующие детекторы:
- memory – выводит информацию о доступной памяти и свап;
- cpu – показывает загрузку процессора, поддерживаются многопроцессорные системы;
- disk – информация о разделах жесткого диска и смонтированных сетевых ресурсах;
- network – информация о работе сетевых интерфейсов;
- noatun, xmms – если на компьютере запущен Noatun (или xmms), такой датчик будет выводить информацию о его работе (заголовок текущей песни, ее продолжительность, автор и прочее);
- program – информация со стандартного вывода указанной программы (program="whoami");
- sensor – этот датчик покажет информацию о температуре, вольтаже, скорости вращения кулеров и т.д.;
- textfile – вывод в поле указанного файла (sensor=textfile path=/etc/passwd);
- time – дата и время;
- uptime – время непрерывной работы системы.
Вывод любого датчика может быть в текстовом виде (text), либо для его оформления можно использовать один из индикаторов. Так, индикатор GRAPH в строке 11 будет показывать загрузку процессора в виде непрерывной линии. При применении индикатора BAR информация будет выводиться в виде строки статуса. Полоса рисуется с помощью картинки, переданной параметром path:
bar x=0 y=0 w=10 h=200 vertical=true path="img.png" sensor=cpu
Индикатор IMAGE покажет изображение в указанной позиции. Само изображение можно соединять с датчиком, либо просто выводить как украшение. Апплет A-FOTO, показывающий фотографии из указанного каталога прямо на рабочем столе, для вывода использует именно IMAGE. Примерно так:
image x=10 y=10 interval=4000 sensor=program program="pictures.pl"
Как видишь, ничего сложно здесь нет. Требуется лишь желание. Надеюсь, SuperKaramba тебе понравится.
Конкуренты SuperKaramba
К слову сказать, у SuperKaramba есть конкурент, работающий в среде GNOME Desktop Applets, - GDesklets (www.gdesklets.org). Он обладает практически такими же возможностями, но не ограничен работой только в одной среде. В настоящее время GDesklets функционирует в большинстве современных рабочих столов Unix, в том числе KDE и Xfce. Количество доступных десклетов здесь на порядок меньше, чем для SuperKaramba, но при этом и шансов запутаться меньше. Для того чтобы они были видны программе, их необходимо распаковать в каталог ~./gdesklets/Controls.
Не стоит забывать и о GKrellM (members.dslextreme.com/users/billw/gkrellm/gkrellm.html), который имеет большое количество встроенных функций мониторинга (диск, сеть, память, процессор, время, почта) и множество плагинов на самые разнообразные темы.
Для оконных менеджеров AfterStep, WindowMaker, FVWM и BlackBox док-приложения (dock-apps) можно взять на сайте dockapps.org. Здесь 6 категорий, в которых находится около 300 решений на все случаи жизни.
Содержание
|
 |
|