Я@R

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Я@R » Претечи » PCManFM-Qt. Custom Actions


PCManFM-Qt. Custom Actions

Сообщений 1 страница 8 из 8

1

PCManFM-Qt
Custom Actions

Пользовательские действия  могут быть определены и добавлены в меню правой кнопкой мыши (контекстное меню) файлов/папок.Каждое действие может быть ограничено определенными типами файлов или определенными местами, так что оно отображается только с этими типами и внутри этих мест.

Чтобы Pcmanfm-qt увидел изменение пользовательских действий, его необходимо перезапустить из настройки сеанса сессии Lxqt. Находим пп.Рабочий стол и кликаем по кнопке Остановить, в затем запускаем кнопкой Запустить
https://forumupload.ru/uploads/0019/ba/df/2/69919.png

2

Определение действия

Пользовательское действие-определяется файлом «name.desktop», причем имя файла не обязательно должно совпадать с  именем действия, указанном в параметре Name (см. ниже), и является идентификатором действия, который определяет связь в файловой системе. Идентификатор используется в описателе действия для типа - меню!.
Все эти файлы находятся в папке ~/.local/share/file-manager/actions/
Файл начинается с группы [Desktop Entry]. Следом указываются параметры описания действя и его отображения:

Параметры

1. Type= - может иметь два значения - то Action или Menu.
     Последний создает подменю с большим количеством действий. (см. Определение меню).
2. Name= - Название действия, при отображении в контекстном меню.
    Может быть добавлен локализованный вариант названия.  например, Name[ru] = ....
3. Icon=  - значок названия. Если - имя - то икона выбирается из темы; иначе указывается  URL.
4. Description= - Описание действия. Млжет отсутстввать
5. Enabled=true - по умолчанию. Юзер может отключить отображние действия установив == false, и включить снова == true

-**- только для Type=Action ---
6. Profiles= - список профилей действия, указанные через точку_с_запятой [;]
   Профилей может быть несколько, причем должен быть хотябы один.

-**- только для Type=Menu ---
  6. ItemsList= - список имен файлов описания действия , указанные через точку_с_запятой [;] Например  ==root-editor;set_wallpaper;

3

Профиль исполнения

В профиле описывается действию: кто выплняет и при каких условиях. Каждый профиль должен быть определен в группе [X-Action-Profile Profile-id], где «Profile-id» указывается в списке ключа Profiles. Группа должна содержать один и из следующих ключей.

Описание ключей группы профиля

1. Name - фоормальное имя профиля - может отсутствовать.
2. Exec - команда для выполнения. Аргументы либо определяются самой командой, либо определяет параметры источника исполнения. Конкретно параметры источника описаны здесь.

*** Далее указываются фильтры исполнения. Контекст вызова сам определяет активность всей группы, опираясь на ключи фильтров профиля. Общие правила для всей группы фильтров - это список параметров, разделенный [;](точка-с-запятой) и без пробелов. Так же есть возможность указать инверсию фильтра, поставив перед фильром знак[!](восклицательный знак). Кроме того фильтр может быть указан не только полностью, но и как шаблон в виде замены части фильтра знаком [*](звездочка)

3. MimeTypes - Список типов MIME.Так же могут использовать общие майм-типы в виде:
● all/all - соответствует всем элементам
● all/allfiles - выбираютя только файлы
● inode/directory - выбираются только каталоги.
● пример: video/mp4;image/*;!image/jpeg;
  -- действие отображается в контексте для видео-mp4, всех типов изображений, кроме JPEG

4. Basenames - Список имен файлов в виде шаблонов. По умолчанию [*;](все).
● пример: *;!*.h;
  -- действие отображается для всех фйлов, кроме файов с расширением (*.h)

5. Folders - Список каталогов где отображаются это действие. По умолчанию [/;](все от корня). Элемент списка может быть задан  в виде шаблона.
● пример: /music;/video;! */secret;
-- действие отображается в каталогах /music и /video кроме подкаталогов  */secret и /video/secret;

6. SelectionCount= - лействие отображается от числа выбраных объектов для действия. По умолчании [>0](больше 0). Допустимы формы "{< | = | >} число".
● примеры: = 1,> 1, <10 (не забывайте о знаке [=] , сразу после ключа).

4

Список параметров, используемых с ключом Exec
(наиболее распространенными являются %f, %F, %u и %U):
Параметры выбраных элементов указываются ввиде двух символов, [%]+[латинская буква]. Параметры могут указываться в строке много раз. Латинская буква указывается - строчной или прописной. Прописная буква передает список выбраных параметров, разделенных пробелами.

%c число выбранных элементов
%b Имя файла
%B Список имен файла
%d Каталог файла
%D Список  каталогов файлов
%f Полное имя файла от корня [/]
%F Список полных имен файлов
%h Имя хоста
%n Имя пользователя
%s схема URI
%m MimeType файла
%M Список миметипов файлов
%u URI файла
%U Список URI файлов
%w Имя файла без расширения
%W Список имен файлов без расширения
%x Расширение файла
%X Список расширений файла
%% Передача знака [%]

5

Порядок действий

По умолчанию действия верхнего уровня появляются в алфавитном порядке (если они вообще могут появиться вместе), но вы можете дать им другой порядок, создав  в каталоге
~/.local/share/file-manager/action/ файл level-zero.directory как:

Код:
[Desktop Entry]
ItemsList=action1_id;action2_id;action3_id;...;

Itemslist, как в определении меню, но здесь он определяет порядок действий на высшем уровне, как они появляются в контекстном меню

6

set-exec.desktop
-- пример очень простой. Его назначение сделать скрипт исполняемым.
В каталоге: ~/.local/share/file-manager/actions/
создаем файл set-exec.desktop
привожу код

Код:
[Desktop Entry]
Type=Action
Name[en]=Set Exec
Name[ru]=Сделать файл исполняемым
Icon=stop
Profiles=profile-zero;

[X-Action-Profile profile-zero]
MimeTypes=text/x-python3;application/x-shellscript
Exec=chmod +x %f
SelectionCount==1 

по майме-типу выясняем, что даннй контекст появляется, если вы выбрали скрипт. Система сама определяет этот тип
Так же контекст имеет силу если выбран только один файл

7

exec-python.desktop
-- часто требуется запустить прогу на Python не используя теминал.

Код:
[Desktop Entry]
Type=Action
Name=Exec to Python
Name[ru]=Исполнить в Python
Icon=python3
Profiles=profile-zero;

[X-Action-Profile profile-zero]
MimeTypes=text/x-python;text/x-python3
Exec=python3 %f
SelectionCount==1


по майме-типу выясняем, что даннй контекст появляется, если вы выбрали текст с Python
Так же контекст имеет силу если выбран только один файл
Исполнение простейшее - текст с Python вставляется аргументом к запуску интерпритатора Python3

8

shortcut-desktop.desktop
-- созлает ярлык на рабочий стол

Код:
[Desktop Entry]
Type=Action
Icon=desktop
Name=The shortcut to your desktop
Name[ru]=Ярлык на рабочий стол
Profiles=profile-zero;

[X-Action-Profile profile-zero]
MimeTypes=all/all;
Basenames=*;!*.desktop;
Exec=shortcut-desktop %f
SelectionCount==1 

Здесь проясним где лучше всего разместить скрипты.
Это  каталог ~/.local/bin и там мы размещаем скрипт
shortcut-desktop

Код:
#!/bin/bash
# Создание ярлыка на рабочем столе

trg="$HOME/Рабочий стол"
if [ ! -d "$trg" ] 
then 
	trg="$HOME/Desktop"
fi

# echo $trg

ln -s --target-directory=$trg "$1"

Скрипт создает символическую ссылку  объекта на "рабочий стол"


Вы здесь » Я@R » Претечи » PCManFM-Qt. Custom Actions