Online video hd

Смотреть русский видео

Официальный сайт ysaa 24/7/365

Смотреть видео бесплатно

digiwhite 26.01.2010 00:32

GNOMEСмена изображения папки с помощью Nautilus Actions

Решил написать данный опус, поглядев на посты: "Python и плейлист Audacious" и "Картинка для nautilus folder". Все ниже описанное позволит нам через контекстное меню в Nautilus устанавливать любое выбранное нами изображение для указанной папки.

Итак, нам понадобятся: файловый менеджер 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
#!/bin/bash

if < $# != 1 > ; then
exit 3
fi

FOLDER_NAME=$1

if < ! -d $FOLDER_NAME > ; then
exit 3
fi

FOLDER_IMAGE=`zenity --file-selection --file-filter="*.svg" --file-filter="*.png" --file-filter="*.ico" --file-filter="*.jpg"`

if < ! $FOLDER_IMAGE > ; then
exit 3
fi


gvfs-set-attribute -t string "$FOLDER_NAME" metadata::custom-icon file://$FOLDER_IMAGE



UPD от 30.01.2010: добавил в скрипт расширение svg, забыл его как-то :).

Сохраняем данный скрипт под именем change_folder_image.sh (или другое, которое вам удобно) и не забываем выставить для него права на выполнение:
1
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 и вписываем:
1
nautilus-actions-config


Получаем такое вот окошко:


Нажимаем кнопку "Добавить". Получаем следующее окошко, где во вкладке "Action" вписываем приблизительно следующее:
Поле "Текст пункта меню" - это то, как будет называться пункт в контекстном меню;
Поле "Подсказка" - так понимаю, подсказка к данному элементу :);
Поле "Значок" - значок, соответствующий вашему элементу меню;
Поле "Путь" - путь к нашему скрипту, который я описал выше;
Поле "Аргументы" - тут указываем различные аргументы. У нас это формальный параметр %M, обозначающий, что в скрипт будет передаваться полное имя выбранной директории.
Далее выбираем вкладку "Условия":


Выставляем радиокнопку "Только папки"-это заставит появляться наш элемент меню только для папок. В поле "Типы MIME" вписываем inode/directrory, что соответствует папке. Далее выбираем вкладку "Дополнительные условия" и устанавливаем глочку напротив схемы "file - Локальные файлы", если она не установлена:


Затем жмем "Ok", затем "Закрыть". Собственно говоря, на этом все :). Теперь при клике на папку у нас будет появляется контекстное меню, содержащее наше новое, созданное нами, действие:
66710638.th.png

P.S.: если новый элемент меню не появился, то возомжно надо перезапустить Nautilus либо вообще перелогиниться (если у вас Gnome).


Тэги: bash gnome nautilus nautilus actions zenity
+ 7 -
Похожие Поделиться

Волег 26.01.2010 07:33 #
+ 1 -
А ещё изображение папки можно сменить из окна свойств папки, что быстрее и проще.
exelens 26.01.2010 08:34 #
+ -1 -
А ещё можно не умничать, а посмотреть внимательно топик + вникнуть в суть проблемы.
digiwhite 26.01.2010 09:42 #
+ 0 -
Проще-да :) Быстрее? Фактически-нет :)

Смысл был еще раз показать, что есть пути расширения функциональности файл-менеджера в гноме, причем сложностей оно никаких не предоставляет.

ЗЫ: еще есть идея более глубоко поковыряться где и как оно устроено и, тогда, попробовать запаковать это в deb. Ну чтобы оно было доступно для всех :)
xT 26.01.2010 08:39 #
+ 2 -
Автору на заметку: Alt+PrintScreen делает снимок активного окна, а не всего экрана в целом : ) Облегчает создание шотов, так как не надо обрезать
exelens 26.01.2010 09:11 #
+ -1 -
Alt+PrintScreen делает снимок активного окна, а не всего экрана в целом
только в Гноме
digiwhite 26.01.2010 09:35 #
+ 0 -
У меня сейчас гном, так что будет полезно знать. Спасибо за подсказку :)
xT 26.01.2010 10:04 #
+ 0 -
в КДЕ нет?!
exelens 26.01.2010 10:25 #
+ 0 -
У меня и у Краплакса =) Принтскрин по умолчанию вообще не делал скриншот =) Он ничего не делал =) Нужно было назначать
Username 26.01.2010 11:35 #
+ 0 -
ksnapshot по умолчанию не стоял просто
exelens 26.01.2010 22:13 #
+ 0 -
Стоял =) но на принтскрин он не был назначен
Username 26.01.2010 10:27 #
+ 1 -
в кедах вызывается ksnapshot, который и захватит нужное окно, и вырежет что нужно, и задержку сделает
exelens 26.01.2010 22:14 #
+ 0 -
Ты не прав.
У меня принтскрин вызывает кнсапшот это да =)
А вот альт + принскрин уже не работает
Username 26.01.2010 22:29 #
+ 0 -
я не про то, что по альт+прнтскрн вылезет он. Я к тому, что в нем куча плюшек, чтобы это сделать, уже его запустив
ZogG 26.01.2010 10:30 #
+ 0 -
вот тут я писал о гтк проге для скриншотов удобной если что
ZogG 26.01.2010 09:54 #
+ 0 -
а я тут недавно столкнулся с проблемой, надо было много файлов распечатать. пришлось открывать каждый и запускать на печать по отдельности. можно ли как то добавить в контекстное меню файлов функцию печати. ну и желательно не только наутилус но и на тунар решение, а лучше и в кде(тут много кдеешников)
exelens 26.01.2010 10:26 #
+ 0 -
Вопрос отдельным топиком?
ZogG 26.01.2010 10:31 #
+ 0 -
ну думаю маловато для отдельного топика, у меня щас времени нет, потом поищу решения(может уже есть) и зарепорчу фичуар реквест на тунаре и наутилусе, а в кедах может кто из вас
digiwhite 26.01.2010 10:38 #
+ 0 -
Думаю это возможно. Надо только понять-как заслать на печать файл не из под ООо (или другого пакета)
digiwhite 27.01.2010 00:35 #
+ 0 -
В конце недели думаю запилю топики по вашей тематике + упаковка всего этого дела в deb (но т.к. у вас гента, то эта часть вам вряд ли будет интересна).
ZogG 27.01.2010 00:48 #
+ 0 -
сделай сурсом тогда, а я поламаю голову как ебилд сделать
digiwhite 27.01.2010 06:30 #
+ 0 -
Дык так и придется делать.
guineapig 26.01.2010 12:54 #
+ 0 -
Кстати, хочу заметить что использование Nautilus скриптов, может ухудшить производительность.
Daria 26.01.2010 13:23 #
+ 1 -
чем именно?
digiwhite 26.01.2010 13:23 #
+ 0 -
Хотелось бы побольше информации.
guineapig 26.01.2010 14:31 #
+ 0 -
Боюсь что ничем кроме собственного опыта не могу поделиться.
После установки как уже существующих скриптов, так и самописных, наутилус начинал глючить, и тормозить до жути.
Конечно это может быть связано с моим тормозом компьютером или с слишком сырой версией убунты, а может просто гном старый был. Но я вынес тот факт что он начинает глючить.
Я как-нить попробую опять воспользоваться, чтобы подтвердить или опровергнуть свои слова.
Если окажется что я ошибался - я сообщу!
digiwhite 30.01.2010 15:25 #
+ 0 -
Добавил расширение *.svg для выбора :). А то как-то досадно забыл про него.

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн