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

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

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

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

26.01.10 00:32 digiwhite

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
21
22
23

#!/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 (или другое, которое вам удобно) и не забываем выставить для него права на выполнение:
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", затем "Закрыть". Собственно говоря, на этом все :). Теперь при клике на папку у нас будет появляется контекстное меню, содержащее наше новое, созданное нами, действие:
66710638.th.png

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



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

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

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

Лучшие блоги (все 140)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 2734 из 212 городов)
Топ пользователей Топ блогов
welinux.ru

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

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


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

Online video HD

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

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

Full HD video online

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

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

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