MyTetra Share
Делитесь знаниями!
Nautilus Scriptilius
30.07.2019
22:14
Текстовые метки: bash
Раздел: Script

Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Nautilus Scriptilius

На момент написания этих строк файловым менеджером по умолчанию для популярной среды 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 При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования