Пользовательские действия в контекстном меню pcmanfm

Модератор: adventurer

Аватара пользователя

Автор темы
adventurer
Супермодератор
Сообщения: 3196
Зарегистрирован: 15 июн 2011, 18:24

Re: Пользовательские действия в контекстном меню pcmanfm

#31

Сообщение adventurer » 25 дек 2015, 08:09

Если установить пакет madebits-pca, то соответствующие desktop-файлы будут находится в каталоге:

Код: Выделить всё

/usr/local/share/file-manager/actions
Потому как нужно добавить подсказки на русском языке.

Чего-то не работает открытие файла в leafpad с правами root! Открывается текущий каталог с правми root.
С mime-типом что-то не так?

Аватара пользователя

google_online
Сообщения: 15
Зарегистрирован: 19 сен 2015, 11:15

Re: Пользовательские действия в контекстном меню pcmanfm

#32

Сообщение google_online » 30 дек 2015, 21:06

У меня контекстное меню "Открыть папку с правами root" работает а контектное меню "Set As Wallpaper" проявилось но не работает, точнее не устанавливает в качестве обоев.

Pcmanfm версия: 1.2.0-1

Аватара пользователя

Автор темы
adventurer
Супермодератор
Сообщения: 3196
Зарегистрирован: 15 июн 2011, 18:24

Re: Пользовательские действия в контекстном меню pcmanfm

#33

Сообщение adventurer » 31 дек 2015, 07:43

Мне сначала показалось, что устанавливает обои только в формате png, но потом оказалось, что и в формате jpg тоже.

PS
А через свойства рабочего стола выбранные обои устанавливаются?

PPS
Может, после перезагрузки заработает? Потому что у меня работает.

Аватара пользователя

google_online
Сообщения: 15
Зарегистрирован: 19 сен 2015, 11:15

Re: Пользовательские действия в контекстном меню pcmanfm

#34

Сообщение google_online » 02 янв 2016, 23:33

Здрасвтуйте!
Зделал я на втором компьютере тоже самое и всё заработоло.
Файловый менеджер открывает каталоги с правами суперпользователя и контекстное меню для смены обоев на рабочем столе тоже работает. Видимо на ноутбуки я что то не правильно зделал и смуту на сеял.

Аватара пользователя

Автор темы
adventurer
Супермодератор
Сообщения: 3196
Зарегистрирован: 15 июн 2011, 18:24

Пользовательские действия в контекстном меню pcmanfm

#35

Сообщение adventurer » 10 дек 2017, 16:56

У кого-нибудь работает создание ссылки на рабочем столе (+ Create Desktop Shortcut)?

Аватара пользователя

DAlver
Сообщения: 7
Зарегистрирован: 03 июл 2018, 20:32
Откуда: Смоленская обл.

Пользовательские действия в контекстном меню pcmanfm

#36

Сообщение DAlver » 03 июл 2018, 21:19

Lubuntu 18.04 lts , PCManFm 1.2.5 возникли проблемы при создании доп. пунктов контекстного меню.

1) В 18.04 gksu нет, её функции перекинуты на pkexec, которой требуются правила безопастности. В принципе я нашел на форуме (не помню где и на каком) выкладку как их делать ( используя как шаблон файл от синаптика ) по адресу /usr/share/polkit-1/actions (и это работает) , но там же было сказано, что правила могут затираться с обновлениями, и есть вариант использования в /etc/polkit-1 , однако создание /etc/polkit-1/actions с правилами не срабатывает. Кто подскажет куда надо кидать правила в /etc/polkit-1 , если там это вообще может работать :oops:

2) Столкнулся с тем фактом что у меня pcmanfm не передаёт параметры в контекстное меню.
Что не так в этом скрипте ? %f, %u, %d - не работает ничего из этого

Код: Выделить всё

[Desktop Entry]
Type=Action
Profiles=profile-zero;
Name[en_US]=Open Folder As Root
Name[en]=Open Folder Folder As Root
Name[C]=Open Folder As Root
Name[ru]=Открыть Папку как Root
Icon=stop

[X-Action-Profile profile-zero]
MimeTypes=inode/directory;
Exec=/usr/bin/pkexec /usr/bin/pcmanfm %d
Name=Default profile

Аватара пользователя

DAlver
Сообщения: 7
Зарегистрирован: 03 июл 2018, 20:32
Откуда: Смоленская обл.

Пользовательские действия в контекстном меню pcmanfm

#37

Сообщение DAlver » 04 июл 2018, 00:47

Пока мой предыдущий пост кукует на модерации, по 2-му вопросу сам нашел ответ. :D
Сделал на Lubuntu 18.04 три простеньких дополнительных контекстных меню : Открыть Папку как Root , Редактировать текст как Root и Очистить корзину. Последний пункт это чтоб очистка всегда под рукой была :)

Действия в общем виде : Запускаю в терминале sudo pcmanfm и создаю/помещаю нужные файлы/папки , выставляю разрешения.
Файлы правил для pkexec помещаю (пока не разобрался с /etc) в /usr/share/polkit-1/actions , bash-скрипты в /usr/local/bin и выставляю разрешения на запуск, desktop-ярлыки меню в /usr/share/file-manager/actions и также выставляю разрешения на запуск.

Теперь по опциям:
Открыть Папку как RootПоказать
Правило для pkexec : com.ubuntu.pkexec.pcmanfm.policy

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

  <action id="com.ubuntu.pkexec.pcmanfm">
    <message>Authentication is required to run the file manager in root mode</message>
    <message xml:lang="ru">Для запуска файлового менеджера в режиме root требуется аутентификация</message>

    <icon_name>synaptic</icon_name>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/pcmanfm</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
  </action>

</policyconfig>
bash-скрипт : pcmanfm-pkexec

Код: Выделить всё

#!/bin/sh
pkexec "/usr/bin/pcmanfm" "$@"
Ярлык : open-folder-as-root.desktop

Код: Выделить всё

[Desktop Entry]
Type=Action
Profiles=profile-zero;
Name[en_US]=Open Folder As Root
Name[en]=Open Folder Folder As Root
Name[C]=Open Folder As Root
Name[ru]=Открыть Папку как Root
Icon=stop

[X-Action-Profile profile-zero]
MimeTypes=inode/directory;
Exec=/usr/local/bin/pcmanfm-pkexec  %u
Name=Default profile
Редактировать текст как RootПоказать
Правило для pkexec : com.ubuntu.pkexec.leafpad.policy

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

  <action id="com.ubuntu.pkexec.leafpad">
    <message>Authentication is required to run the leafpad in root mode</message>
    <message xml:lang="ru">Для запуска блокнота leafpad в режиме root требуется аутентификация</message>

    <icon_name>synaptic</icon_name>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/leafpad</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
  </action>

</policyconfig>
bash-скрипт : leafpad-pkexec

Код: Выделить всё

#!/bin/sh
pkexec "/usr/bin/leafpad" "$@"
Ярлык : edit-text-as-root.desktop

Код: Выделить всё

[Desktop Entry]
Type=Action
Profiles=profile-zero;
Name[en_US]=Edit text As Root
Name[en]=Edit text As Root
Name[C]=Edit text As Root
Name[ru]=Редактировать текст как Root
Icon=stop

[X-Action-Profile profile-zero]
MimeTypes=text/plain;
Exec=/usr/local/bin/leafpad-pkexec %f
Name=Default profile
Очистить корзинуПоказать
Здесь доустановил пакеты trash-cli и zenity.

bash-скрипт : Empty_Trash.sh

Код: Выделить всё

#!/bin/sh
zenity --question --title="Подтвердить "  --text="     Хотите  очистить  корзину  ?           " --no-wrap
if [ $? -eq "0" ]
then
/usr/bin/trash-empty
fi
Ярлык : Empty_Trash.desktop

Код: Выделить всё

[Desktop Entry]
Type=Action
Profiles=profile-zero;
Name[en_US]=Empty Trash
Name[en]=Empty Trash
Name[C]=Empty Trash
Name[ru]=Очистить корзину

Icon=user-trash-full

[X-Action-Profile profile-zero]
MimeTypes=inode/directory;all/allfiles;
Exec=/usr/local/bin/Empty_Trash.sh
Name=Default profile


ovechser1
Сообщения: 21
Зарегистрирован: 07 окт 2012, 21:29

Пользовательские действия в контекстном меню pcmanfm

#38

Сообщение ovechser1 » 05 июл 2018, 13:06

СпойлерПоказать
adventurer писал(а):
01 апр 2014, 18:25
В состав Lubuntu 14.04 входит обновлённая версия файлового менеджера pcmanfm (pcmanfm 1.2.0), которая имеет несколько новых функций. Появилась возможность настроить контекстное меню pcmanfm с собственными действиями для выбранных файлов и папок.
Всё, что вам нужно - это описать действия в файле с расширением .desktop и поместить его в каталог ~/.local/share/file-manager/actions (по умолчанию в Lubuntu 14.04 этого каталога не существует, вы сами должны его создать).

Разберём эту "фичу" на следующем примере. В pcmanfm 1.2.0 из соображений безопасности удалён пункт меню [Инструменты/Открыть текущую папку с правами root]. Вы можете вернуть это действие, добавив его в контекстное меню pcmanfm (на мой взгляд замена не равнозначная :)). Итак, если вы ещё этого не сделали, то самое время создать каталог:

Код: Выделить всё

~/.local/share/file-manager/actions/
Далее, переходим в этот каталог и создаём файл:

Код: Выделить всё

open-folder-as-root.desktop
вставляем следующий текст:

Код: Выделить всё

[Desktop Entry]
Type=Action
Tooltip=Open Folder As Root
Name=Open Folder As Root
Name[ru]=Открыть папку с правами root
Profiles=profile-zero;
Icon=gtk-dialog-authentication

[X-Action-Profile profile-zero]
MimeTypes=inode/directory;
Exec=/usr/bin/gksu /usr/bin/pcmanfm %u
Name=Default profile
 
Сохраняем, меняем сеанс ("выйти" или "сменить пользователя") и проверяем, появился ли новый пункт в контекстном меню pcmanfm. Проверять на любой папке не из каталога /home.

И "на закуску" ещё одно пользовательское действие "Установить в качестве обоев". Создаём файл:

Код: Выделить всё

set-as-wallpaper.desktop
вставляем следующий текст:

Код: Выделить всё

[Desktop Entry]
Type=Action
ToolbarLabel[en_US]=Set As Wallpaper
ToolbarLabel[en]=Set As Wallpaper
ToolbarLabel[C]=Set As Wallpaper
Name[en_US]=Set As Wallpaper
Name[en]=Set As Wallpaper
Name[C]=Set As Wallpaper
Profiles=profile-zero;
Icon=gtk-orientation-landscape

[X-Action-Profile profile-zero]
MimeTypes=image/*;
Exec=pcmanfm -w %f
Name[en_US]=Default profile
Name[en]=Default profile
Name[C]=Default profile

сохраняем, проверяем.

Дополнительная информация здесь:
http://madebits.com/blog/index.php?m=03 ... 317-141947

Всё это прекрасно работало на моих компах, до установки лубунты 18.04. В этой версии строка в контекстном меню появляется но ничего не работает. Как быть кто знает.

Аватара пользователя

DAlver
Сообщения: 7
Зарегистрирован: 03 июл 2018, 20:32
Откуда: Смоленская обл.

Пользовательские действия в контекстном меню pcmanfm

#39

Сообщение DAlver » 05 июл 2018, 21:33

ovechser1 писал(а):
05 июл 2018, 13:06
Всё это прекрасно работало на моих компах, до установки лубунты 18.04. В этой версии строка в контекстном меню появляется но ничего не работает. Как быть кто знает...
Прочтите 2 моих предыдущих поста.
В 18.04 по соображениям безопасности удалено gksu, а pkexec - который вместо него, требует иного подхода. Ему требуется наличие правила безопасности для запускаемого приложения, плюс напрямую из ярлыка передать параметры для открываемого приложения не выходит, нужен дополнительный скрипт запуска.

Да я в "Открыть папку как Root" в en-названии 2 раз Folder написал, сорри :oops:

Аватара пользователя

DAlver
Сообщения: 7
Зарегистрирован: 03 июл 2018, 20:32
Откуда: Смоленская обл.

Пользовательские действия в контекстном меню pcmanfm

#40

Сообщение DAlver » 07 июл 2018, 00:16

Как правило в большинстве случаев не пользуюсь корзиной, но очень редко бывает нужна. Поэтому сделал финт ушами - отключил корзину в параметрах pcmanfm и написал простой ярлык для переноса файлов в корзину ( запрос не выдаёт, выделять можно либо файлы, либо папки )
Пакет trash-cli должен быть установлен.
Move_to_Trash.desktopПоказать

Код: Выделить всё

[Desktop Entry]
Type=Action
Profiles=profile-zero;
Name[en_US]=Move to Trash
Name[en]=Move to Trash
Name[C]=Move to Trash
Name[ru]=В  Корзину

Icon=user-trash-full

[X-Action-Profile profile-zero]
MimeTypes=inode/directory;all/allfiles;
Exec=/usr/bin/trash %f
Name=Default profile

Ответить