[rus] Формирование меню из недавно запускавшихся приложений в
IceWM
Linux Gazette на русском | Выпуск #134 |
Тираж 8724 экз.
Здравствуйте! Сегодня у нас две новости. Первая -- это статья,
в которой Вадим Хохлов рассказал о способе формирования меню из недавно
запускавшихся приложений в IceWM. Вторая -- новый титанический труд
Андрея Киселёва, перевод Ipsysctl Tutorial.
За что им обоим огромное спасибо!
Кстати, перевод Ipsysctl Tutorial действительно не маленький, архив занимает
около 600Кб, поэтому милости прошу обращаться во-ооо-от по этой ссылке:
Формирование меню из недавно
запускавшихся приложений в IceWM Автор: Вадим Хохлов (xvadim at teko.kherson.ua)
Введение
В KDE есть интересная возможность - формирование меню из недавно
запускавшихся приложений. В результате при следующем их запуске нет
необходимости продираться через длинную цепь подменю. Я написал два
скрипта, которые решают аналогичную задачу для IceWM. Идею этих
скриптов можно реализовать и в других WM.
Формирование меню в IceWM
Файл главного меню в IceWM называется menu. Обычно
существует два таких файла - глобальный, для всей системы, и
локальный, для пользователя. Расположение глобального файла зависит от
дистрибутива. При установке IceWM из исходников он обычно
располагается в /usr/local/share/icewm. Локальный файл menu находится в
$ICEWM_PRIVCFG или, если эта переменная не установлена, в ~/.icewm
Файл menu является обычным текстовым файлом с простой
структурой. Элементы меню, соответствующие программам, имеют
следующий вид:
Для организации подменю используется следующая структура:
menu название_пункта_меню имя_файла_иконки
{
элементы подменю
}
Кроме слова prog могут использоваться ключевые слова menuprog, menufile,
runonce, ... (см. файл icewm-10.html, идущий с документацией к IceWM). Также с помощью слова include можно
включить в меню содержимое другого файла. Вот фрагмент моего файла
меню:
prog "Background options" background icebgset
separator
menu Недавние folder_green {
include /home/Vadim/.icewm/recent.menu
}
# End of Недавние menu
prog Терминал konsole rxvt
separator
prog KDevelop kdevelop.png icerrun.py kdevelop
separator
Принцип функционирования скриптов
Теперь становится понятна основная идея скрипта для формирования
меню из недавно запускавшихся приложений: при каждом запуске
необходимо модифицировать файл меню. Можно изменять сам файл menu,
но для упрощения скриптов лучше формировать специальный файл recent.menu и
включить его в основной с помощью ключевого слова include. Для этого
необходимо изменить формат запуска программы следующим образом:
Скрипт icerrun.py выполняет
следующее: записывает в начало файла recent.menu
командную строку, которую ему передали на выполнение, и затем исполняет её. Помимо этого,
он следит за тем, чтобы в этом меню было не более 10 элементов и
удаляет повторяющиеся.
Для того, чтобы IceWM перечитывал файл меню при его открытии,
необходимо в настройках IceWM (файл preferences, глобальный или локальный)
параметр AutoReloadMenus установить в 1.
Альтернатива icerrun.py
Для тех, кто не хочет воспользоваться скриптом, написанном на Python, могут
воспользоваться bash-версией скрипта icerrun.
Заключение
Возможно IceWM и не может тягаться по функциональным возможностям
с такими грандами как KDE или Gnome, которые уже давно не просто
оконные менеджеры, а оконные среды (Desktop Environment), но при
правильной настройке IceWM может превратится в лёгкий и удобный
инструмент, способный решать множество проблем, возникающих перед вами.
Об авторе
Я работаю программистом и преподаю в Херсонском
государственном техническом университете. С Linux
знаком с 1999 года. Общаюсь с ним, в основном, дома. Кроме этого, я являюсь разработчиком
IceWM Control Center - набора программ (в том числе и скриптов icerrun)
для настройки различных параметров IceWM. Одной из программ является
редактор меню, который позволяет вам формировать меню более наглядно.
Этот редактор поддерживает, описанные здесь, скрипты для формирования
меню недавно запускавшихся программ.
Copyright (c) July 2003, Vadim
Khohlov
Команда переводчиков: Александр Куприн, Андрей Киселев, Александр Михайлов, Александр Саввин,
Владимир Меренков, Иван Песин, Игорь Яровинский, Павел Соколов, Роман Шумихин,
Сергей Скороходов, Юрий Прушинский
Со всеми предложениями, идеями и комментариями обращайтесь к
Александру Куприну (ru_classic at mail.ru). Убедительная
просьба: указывайте сразу, не возражаете ли Вы против публикации
Ваших отзывов в рассылке.