Перейти на главную страничку сайта (список статей, файлы для скачивания)
На момент написания этих строк файловым менеджером по умолчанию для популярной среды GNOME является Nautilus. Этот файловый менеджер поддерживает подключение произвольных скриптов (называемых G-Scripts), которые позволяют существенно расширить его функциональные возможности. G-Script - это исполняемый сценарий командного процессора (обычно BASH), который размещён в специальном каталоге файлового менеджера Nautilus.
Такие скрипты вызываются в Nautilus из меню по правой кнопке мыши. Подменю «Сценарии» этого меню позволяет выбрать конкретный скрипт, который необходимо вызвать на выделенных в настоящий момент в Nautilus файлах. Чтобы скрипт появился в меню, должны быть выполнены два условия: он должен быть помещён в каталог сценариев и быть исполняемой программой. Чтобы новый скрипт немедленно появился в меню, достаточно посетить каталог сценариев непосредственно из Nautilus, используя последний пункт в подменю «Сценарии» («Открыть папку сценариев»), или просто перезапустить Nautilus. Подменю «Сценарии» работает не только в открытых папках в окнах Nautilus, но и на Рабочем столе GNOME.
Каталог сценариев может находиться примерно в таких местах (это зависит от версии Nautilus, GNOME и т.п.):
~/.gnome2/nautilus-scripts ~/.gnome/nautilus-scripts ~/.nautilus/scripts ~/Nautilus/scripts
Подпунктами меню «Сценарии» будут являться папки, вложенные в каталог сценариев, т.е. меню будет отображать иерархию вашего каталога скриптов.
Для написания скриптов могут быть использованы разные языки сценариев (не обязательно BASH), например, Perl, Python и т.д.
В момент вызова сценария через подменю «Сценарии» Nautilus всегда устанавливает несколько переменных среды, которые могут использоваться этим сценарием:
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | разделённые переводами строк пути выбранных локальных файлов |
NAUTILUS_SCRIPT_SELECTED_URIS | разделённые переводами строк URI выбранных файлов |
NAUTILUS_SCRIPT_CURRENT_URI | текущее местоположение |
NAUTILUS_SCRIPT_WINDOW_GEOMETRY | позиция и размер текущего окна |
Выбранные файлы могут быть также получены в скрипте с помощью традиционных переменных BASH «$@» и «$*».
Пример обработки переданных путей файлов на BASH внутри вашего G-Script (пути могут содержать пробелы):
: > test.txt echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read line; do if [ ${#line} -gt 0 ]; then echo "$line" >> test.txt fi done
В примере выше переменная $line внутри цикла будет получать очередной путь.
Большое количество готовых полезных скриптов для Nautilus вы можете скачать на сайте проекта G-Scripts: http://g-scripts.sourceforge.net.
Если необходимо отображать скрипт в контекстном меню Nautilus только для определённого типа файлов, следует настроить меню «Открыть» в свойствах этого файла стандартным способом, назначив этот скрипт как открывающую программу. В этом случае специальные переменные среды Nautilus, описанные в таблице выше, не устанавливаются, но работают обычные переменные «$@», «$*», «$0» и «$1».
Существует консольная программа zenity (http://live.gnome.org/Zenity), которая может отображать различные диалоги, используя библиотеку GTK+ и принимая в качестве аргументов параметры создаваемого диалога. Помимо отображения информации с помощью zenity можно получать ввод пользователя. Такой механизм позволяет создавать графические диалоги даже на столь простом языке, как BASH.
Zenity позволяет создавать следующие типы простых диалоговых окон: календарь, выбор файла, список для выбора, всплывающее окошко уведомления, сообщение (ошибка, информация, вопрос, предупреждение), индикатор прогресса, ввод текста, отображение текстовой информации.
В последних русифицированных версиях GNOME вы можете найти обширное руководство по Zenity на русском языке, используя клавишу F1 на Рабочем столе. Кроме того, в консоли по команде «zenity --help» вы получите исчерпывающую справку, также на русском языке.
Небольшой пример использования Zenity в G-Script:
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read line; do if [ ${#line} -gt 0 ]; then zenity --info --text="$line" --title='Передан файл:' fi done userdate=`zenity --calendar --text='Укажите дату' --title='Пример'` zenity --info --text=$userdate' г.' --title='Выбранная дата:'
Вышеприведённый скрипт выводит пути переданных ему Nautilus'ом файлов в окнах сообщений, затем предлагает пользователю ввести дату в окне календаря, и наконец демонстрирует эту выбранную дату.
Людоговский Александр, 17.09.2008г.
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.