GNOME — Смена изображения папки с помощью Nautilus Actions
Решил написать данный опус, поглядев на посты: "Python и плейлист Audacious" и "Картинка для nautilus folder". Все ниже описанное позволит нам через контекстное меню в Nautilus устанавливать любое выбранное нами изображение для указанной папки.
Итак, нам понадобятся: файловый менеджер Nautilus, расширение Nautilus Actions (как установить Nautilus Actions см. пост "Python и плейлист Audacious") и утилита zenity для выбора нужного изображения.
Далее, напишем небольшой bash скрипт, который положим себе в ~/scripts/nautilus/. Этот скрипт будет принимать в качестве параметра путь к папке, изображение которой мы хотим сменить:
UPD от 30.01.2010: добавил в скрипт расширение svg, забыл его как-то :).
Сохраняем данный скрипт под именем change_folder_image.sh (или другое, которое вам удобно) и не забываем выставить для него права на выполнение:
Скрипт прост. Сначала проверяем количество параметров (папка должна быть указана), затем переменной $FOLDER присваиваем имя переданной папки. if [ ! -d $FOLDER ] ; then ... fi проверяет, существует ли папка с указанным именем.
Далее интересный момент. Используем утилиту zenity. Эта утилита предоставляет некоторые полезные возможности для создания различных типов диалоговых окон. Например: диалог выбора файла(файлов), диалог ввода текста, диалоговое окно с прогрессбаром и т.п. (см. zenity --help). В нашем случае мы используем утилиту для выбора изображения, которое хотим установить в качестве изображения папки. Итак в качестве параметров zenity мы указываем:
Если мы выбрали файл, то zenity вернет нам полное имя выбранного файла (например /home/digiwhite/images/folder_image.png). Если же мы отказались выбирать файл, то zenity вернет пустую строку. Это как раз и проверяется в if [ ! $FOLDER_IMAGE ] ; then ... fi
Ну и в конце концов выполняем действие, описанное в посте "Картинка для nautilus folder".
Теперь пришло время создать Nautilus Actions. Делаем в консоли или Alt+F2 и вписываем:
Получаем такое вот окошко:
Нажимаем кнопку "Добавить". Получаем следующее окошко, где во вкладке "Action" вписываем приблизительно следующее:
Далее выбираем вкладку "Условия":
Выставляем радиокнопку "Только папки"-это заставит появляться наш элемент меню только для папок. В поле "Типы MIME" вписываем inode/directrory, что соответствует папке. Далее выбираем вкладку "Дополнительные условия" и устанавливаем глочку напротив схемы "file - Локальные файлы", если она не установлена:
Затем жмем "Ok", затем "Закрыть". Собственно говоря, на этом все :). Теперь при клике на папку у нас будет появляется контекстное меню, содержащее наше новое, созданное нами, действие:
P.S.: если новый элемент меню не появился, то возомжно надо перезапустить Nautilus либо вообще перелогиниться (если у вас Gnome).
Итак, нам понадобятся: файловый менеджер Nautilus, расширение Nautilus Actions (как установить Nautilus Actions см. пост "Python и плейлист Audacious") и утилита zenity для выбора нужного изображения.
Далее, напишем небольшой bash скрипт, который положим себе в ~/scripts/nautilus/. Этот скрипт будет принимать в качестве параметра путь к папке, изображение которой мы хотим сменить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
UPD от 30.01.2010: добавил в скрипт расширение svg, забыл его как-то :).
Сохраняем данный скрипт под именем change_folder_image.sh (или другое, которое вам удобно) и не забываем выставить для него права на выполнение:
chmod ug+x change_folder_image.sh
Скрипт прост. Сначала проверяем количество параметров (папка должна быть указана), затем переменной $FOLDER присваиваем имя переданной папки. if [ ! -d $FOLDER ] ; then ... fi проверяет, существует ли папка с указанным именем.
Далее интересный момент. Используем утилиту zenity. Эта утилита предоставляет некоторые полезные возможности для создания различных типов диалоговых окон. Например: диалог выбора файла(файлов), диалог ввода текста, диалоговое окно с прогрессбаром и т.п. (см. zenity --help). В нашем случае мы используем утилиту для выбора изображения, которое хотим установить в качестве изображения папки. Итак в качестве параметров zenity мы указываем:
- --file-selection - показать окно выбора файлов;
- --file-filter="*.png" --file-filter="*.ico" --file-filter="*.jpg" - установка фильтров для отображения файлов только заданного формата.
Если мы выбрали файл, то zenity вернет нам полное имя выбранного файла (например /home/digiwhite/images/folder_image.png). Если же мы отказались выбирать файл, то zenity вернет пустую строку. Это как раз и проверяется в if [ ! $FOLDER_IMAGE ] ; then ... fi
Ну и в конце концов выполняем действие, описанное в посте "Картинка для nautilus folder".
Теперь пришло время создать Nautilus Actions. Делаем в консоли или Alt+F2 и вписываем:
nautilus-actions-config
Получаем такое вот окошко:
Нажимаем кнопку "Добавить". Получаем следующее окошко, где во вкладке "Action" вписываем приблизительно следующее:
- Поле "Текст пункта меню" - это то, как будет называться пункт в контекстном меню;
- Поле "Подсказка" - так понимаю, подсказка к данному элементу :);
- Поле "Значок" - значок, соответствующий вашему элементу меню;
- Поле "Путь" - путь к нашему скрипту, который я описал выше;
- Поле "Аргументы" - тут указываем различные аргументы. У нас это формальный параметр %M, обозначающий, что в скрипт будет передаваться полное имя выбранной директории.
Далее выбираем вкладку "Условия":
Выставляем радиокнопку "Только папки"-это заставит появляться наш элемент меню только для папок. В поле "Типы MIME" вписываем inode/directrory, что соответствует папке. Далее выбираем вкладку "Дополнительные условия" и устанавливаем глочку напротив схемы "file - Локальные файлы", если она не установлена:
Затем жмем "Ok", затем "Закрыть". Собственно говоря, на этом все :). Теперь при клике на папку у нас будет появляется контекстное меню, содержащее наше новое, созданное нами, действие:
P.S.: если новый элемент меню не появился, то возомжно надо перезапустить Nautilus либо вообще перелогиниться (если у вас Gnome).