Добавить новое действие контекстного меню Nautilus без использования `nautilus-actions`

HELP 1

Из-за пробелов вам нужно процитировать:

INPUT= "${file##*/}" OUTPUT= "${file%.txt}"_exd.txt

Это кажется немного странным, что между INPUT = и именем файла есть пробел.

HELP 3

Если у вас есть файл input_1.txt , тогда $ {file% .txt} _1.txt становится input_1_1.txt .

Я бы сопоставил точное имя файла:

for file in ~/Desktop/parent\ folder/*/input_1.txt; do
    bioTool INPUT1= "${file}" INPUT2= "${file%_1.txt}_2.txt" OUTPUT= "${file%%.*}"
done

HELP 4

Это вообще не оболочка.

переход в подкаталоги

for file in ~/Desktop/parent\ folder/*/input_1.txt; do
    subdir="${file%/*}"
    pushd "$subdir" &>/dev/null
    file="${file##*/}"
    bioTool INPUT1= "${file}" INPUT2= "${file%_1.txt}_2.txt" OUTPUT= "${file%%.*}"
    popd &>/dev/null
done
6
28.03.2018, 13:13
1 ответ

Напоминание:

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


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

Создайте папку ~/.local/share/file-manager/actions.

Чтобы создать готовый файл действий, сделайте:

gedit ~/.local/share/file-manager/actions/new-action.desktop

Вот такими строками:

[Desktop Entry]

Type=Action
ToolbarLabel=<name-of-action>
Name=<name-of-action>
Profiles=profile-zero;

#TargetContext=false
#keep the above commented if you WANT the action to appear when you select files of the type specified by the line MymeTypes; un-comment it if you DO NOT WANT your new action to appear when you select the specified files

#TargetLocation=true
#keep the above commented if you DO NOT WANT the action to appear when right clicking an empty area; remove the comment when you WANT that.

[X-Action-Profile profile-zero]
Folders=*;
Exec=
Name=Default profile
MymeTypes=
#the above line specifies the types of files for which your new action appears when you select them (remove the line 'TargetContext=false' to achieve that)

#DO NOT SAVE directly after editing!

#USE "SAVE AS" TO SAVE YOUR NEW ACTION FILE! 

И сохраните его.


Конечно, к нему можно обратиться напрямую, но приятнее иметь более простой способ открыть готовый файл. Это можно сделать через launcher файл:

gedit ~/.local/share/applications/Nautilus_action.desktop

С таким содержимым:

[Desktop Entry]
Type=Application
Name=New Nautilus action
Icon=nautilus
Categories=System;Settings;
Exec=sh -c 'gedit ~/.local/share/file-manager/actions/new-action.desktop'

Сделать его исполняемым:

chmod +x ~/.local/share/applications/Nautilus_action.desktop

После этого его можно запустить из меню или программы запуска приложений:

enter image description here


Вышеописанное предназначено для того, чтобы открыть общий ~/.local/share/file-manager/actions/new-action.desktop, отредактировать и сохранить его с другим именем.

Как это сделать:

  • Запустите программу запуска "New Nautilus action"

  • Когда общий файл будет открыт в gedit, отредактируйте эти строки, которые определят ваше новое действие меню Nautilus (то есть: имя меню, имя action-файла и команду для выполнения):

ToolbarLabel=

Name=

Exec=


TargetContext=false

  • Приведенные выше строки должны быть закомментированы (иметь # перед собой), если вы хотите, чтобы действие меню появлялось при выборе файлов (типов, указанных в строке MymeTypes; см. ниже о ! ). Если вы не хотите, чтобы он появлялся при выделении (редкий случай, когда вы хотите, чтобы действие только появлялось на пустой области внутри папок), удалите комментарий (#).

TargetLocation=true

  • Учитывая вышеприведенную строку, если вы не хотите, чтобы ваше новое действие меню появлялось при щелчке правой кнопкой мыши на пустой области, добавьте перед ним #; удалите комментарий, если вам нужно, чтобы действие появлялось при щелчке на пустой области внутри папок.

  • Добавьте в следующую строку mime-типы файлов, при выборе которых появляется ваше новое действие (для этого удалите/закомментируйте строку 'TargetContext=false'):

MymeTypes=;

Добавьте mime-типы, например: inode/directory для папок, audio/* для аудио и т.д., чтобы указать, для какого выбора вы хотите, чтобы действие появилось; чтобы исключить определенный тип mime, используйте ! перед ним. (Например, если вы используете действие для преобразования аудио в mp3, вы хотите, чтобы оно появлялось для всех аудио, кроме mp3-файлов; в этом случае оно должно быть MymeTypes=!audio/mp3;audio/*). Посмотрите в свойствах файла (Basic/Type) в Nautilus, чтобы узнать его mime-тип.

  • НЕ СОХРАНЯЙТЕ ФАЙЛ напрямую, иначе ваше новое действие перезапишет общий файл действия!

  • Используйте 'Сохранить как', чтобы сохранить файл с ДРУГИМ ИМЕНЕМ.


7
27.01.2020, 20:27

Теги

Похожие вопросы