Как добавить пользовательские действия в Nautilus
Важно: инструкция предназначена для GNOME/Nautilus. Для других файловых менеджеров (Nemo, Thunar) концепция похожа, но шаги и названия пакетов отличаются.

Что такое nautilus-actions и зачем он нужен
Nautilus — стандартный файловый менеджер окружения GNOME. Пакет nautilus-actions (иногда встречается как Nautilus-Actions Configuration Tool) добавляет графический интерфейс управления пользовательскими действиями, которые появляются в правом клике на файле или папке. Каждое действие — это привязка команды или скрипта к условию показа (тип файла, mimetype, локальный/удалённый ресурс и прочее).
Короткое определение: nautilus-actions — GUI-инструмент для добавления кастомных пунктов в контекстное меню Nautilus.
Польза:
- Автоматизация повторяющихся задач (конвертация, архивация, отправка по почте).
- Удобный доступ к командам без открытия терминала.
- Снижение числа шагов при работе с файлами.
Требования и подготовка
- Установленный Nautilus (GNOME Files).
- Пакет nautilus-actions (или его современный эквивалент в вашей дистрибуции).
- Команда или скрипт, который будет выполнять нужное действие (например, ffmpeg для конвертации видео).
Примеры установки (Ubuntu/Debian-подобные):
sudo apt update
sudo apt install nautilus-actions ffmpeg
# После установки перезапустите Nautilus, если требуется:
nautilus -q && nautilus &Где найти бинарь утилиты, если не знаете путь:
whereis ffmpegШаг за шагом: создание действия для конвертации .flv в .mp4 (iPod)
Ниже приведён подробный пример, который демонстрирует все ключевые моменты и опции. Вы можете адаптировать команду под свою задачу.
- Откройте конфигуратор nautilus-actions: «Система > Параметры > Nautilus Actions» или запустите из меню приложений.
- Нажмите «Добавить».
В поле «Label» введите текст, который будет отображаться в контекстном меню, например: Конвертировать для iPod. По желанию задайте иконку и подсказку.
Переход на вкладку Path and Parameters (Путь и параметры):
- Path — полный путь к утилите, в нашем примере /usr/bin/ffmpeg.
- Parameters — параметры, которые будут подставлены при вызове. Пример команды для ffmpeg (вставьте целиком):
-i %d/%f -f mp4 -vcodec libxvid -maxrate 01000 -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec aac -s 480x320 -ab 0128000 -b 400000 %d/%f.mp4Пояснения:
- %d — директория выбранного файла.
- %f — имя выбранного файла.
- %M — заменяет список выбранных файлов, если хотите обрабатывать несколько файлов одновременно.
Примечание: параметры ffmpeg в примере служат демонстрации. Подберите кодек, битрейт и размер по своим требованиям.
- Во вкладке «Условия» (Condition) задайте, для каких файлов будет виден пункт меню. В поле filename введите *.flv и отметьте, что действие применяется только к файлам.
Во вкладке «Дополнительные условия» можно ограничить показ только для локальных файлов, Samba, FTP и т. п. Для простоты выберите «локальные файлы».
Сохраните действие нажатием OK.
Теперь в Nautilus найдите .flv-файл, кликните правой кнопкой и увидите пункт «Конвертировать для iPod». После запуска в той же папке появится .mp4 с тем же именем плюс .mp4.
Советы по отладке и расширению
- Сначала тестируйте команду в терминале с реальным файлом, чтобы убедиться, что параметры работают.
- Для сложных процедур создавайте скрипт (например, /usr/local/bin/convert_for_ipod.sh), делайте в скрипте логирование и вызов из nautilus-actions выглядит проще: /usr/local/bin/convert_for_ipod.sh “%d/%f”.
- Если действие редактируется редко, экспортируйте настройки и храните резервную копию.
- Для нескольких файлов используйте %M и реализуйте цикл обработки в скрипте.
- При базе скрипта указывайте абсолютные пути ко всем утилитам, чтобы избежать проблем с PATH.
Пример простого скрипта-обёртки (сохраните как /usr/local/bin/nautilus_convert_ipod и сделайте chmod +x):
#!/bin/bash
# $1 — путь к файлу, например /home/user/Video/input.flv
INPUT="$1"
DIR=$(dirname "$INPUT")
BASE=$(basename "$INPUT")
/usr/bin/ffmpeg -i "$INPUT" -f mp4 -vcodec libxvid -acodec aac "$DIR/${BASE}.mp4"Альтернативные подходы
- Nautilus scripts (папка ~/.local/share/nautilus/scripts) — простой способ добавлять сценарии без GUI; скрипты появляются в меню «Сценарии».
- Nemo Actions — если вы используете Cinnamon/Nemo, у Nemo есть собственный конфигуратор actions.
- Thunar custom actions — для окружения XFCE.
- Расширения на Python/Perl для Nautilus — для сложной интеграции с интерфейсом.
Когда nautilus-actions не подходит:
- Если вам нужно динамическое диалоговое окно с прогрессом и управлением — лучше писать плагин или внешнее приложение с GUI.
- Для массовой пакетной обработки тысяч файлов удобнее использовать отдельные скрипты и планировщик задач.
Ментальные модели и эвристики
- Правило трёх: если вы выполняете одну и ту же операцию больше 3 раз в неделю — автоматизируйте её.
- Разделение обязанностей: GUI‑пункт должен быть «тонкой» обёрткой над командой; сложную логику выносите в скрипт.
- Минимизация прав: не давайте командному пункту права суперпользователя без явной нужды.
Чек-лист перед публикацией действия для команды
Для разработчика/администратора:
- Команда проверена в терминале.
- Скрипт имеет shebang и права на исполнение.
- Используются абсолютные пути к бинарям.
- Логирование ошибок реализовано и доступно.
Для пользователя/дизайнера:
- Название пункта меню понятно и коротко.
- Иконка и подсказка информативны.
- Условие показа (mimetype/маска) корректно задано.
Безопасность и приватность
- Не выполняйте команды с SSE-переменными или пользовательскими аргументами без санитаризации; избегайте прямой вставки неочищённых строк в shell-выражения.
- Если действие обращается к удалённым ресурсам или отправляет файлы по сети, предупредите пользователя о возможной передаче данных.
- Убедитесь, что скрипты и команды не читают секретные файлы и не записывают конфиденциальные данные в логи.
Совместимость и миграция
- В разных версиях GNOME/Nautilus API и имена пакетов могут отличаться; проверяйте актуальность пакета nautilus-actions в репозитории вашей дистрибуции.
- Для перехода на новый менеджер окон (Nemo/Thunar) потребуется адаптировать настройки или написать новый набор скриптов.
Критерии приёмки
- Пункт меню отображается только для целевых типов файлов.
- Выполнение действия создаёт ожидаемый результат (файл с нужным расширением и форматом).
- Ошибки обрабатываются и записываются в лог; при ошибке пользователь получает информативное сообщение.
- Действие не требует прав суперпользователя для работы с пользовательскими файлами.
Частые ошибки и способы их устранения
- Ничего не происходит при клике на пункт меню — проверьте путь к бинарю и права на выполнение.
- Появляется сообщение о «Permission denied» — проверьте права доступа к папке/файлу и права на исполнение скрипта.
- Пункт меню виден для всех файлов — проверьте маску filename или mimetype, используйте точные условия.
Примеры использования и сценарии
- Конвертация видео в формат для мобильных устройств.
- Объединение нескольких PDF в один файл через pdftk или qpdf.
- Быстрое создание архивов tar.gz или zip для отправки.
- Отправка выбранного файла через локальный почтовый скрипт или внутренний инструмент обмена файлами.
FAQ
Q: Нужно ли перезапускать Nautilus после установки nautilus-actions?
A: Часто требуется перезапуск Nautilus, чтобы он подхватил новые настройки. Выполните nautilus -q && nautilus & или выйдите и снова войдите в сессию GNOME.
Q: Как обрабатывать несколько файлов за один раз?
A: Используйте %M в параметрах или передавайте список файлов в скрипт и обрабатывайте их циклом.
Q: Могу ли я использовать диалоги для запроса опций у пользователя?
A: Да — в скрипте можно вызвать zenity или yad для отображения GUI-диалогов и получения дополнительных параметров.
Q: Опасно ли давать доступ к sudo в action?
A: Лучше избегать использования sudo из пунктов контекстного меню. Если необходимо, реализуйте безопасный рабочий процесс с подтверждением и учётом рисков.
Заключение
Nautilus-actions — простой и мощный инструмент для повышения эффективности рабочего процесса в GNOME. Он подходит для пользователей, которые хотят превратить часто выполняемые команды в удобные пункты контекстного меню. Начните с простой команды, протестируйте в терминале, затем перенесите её в действие; для сложной логики используйте скрипты и сохраняйте резервные копии конфигураций.
И ещё: экспериментируйте. Иногда простая автоматизация экономит минуты каждый день и часы в месяц.
Краткое резюме
- nautilus-actions добавляет пункты в контекстное меню Nautilus и запускает команды или скрипты.
- Проверьте команду в терминале, используйте %d/%f/%M для передачи аргументов.
- Для сложной логики выносите код в скрипты; используйте абсолютные пути и логирование.
Спасибо за чтение. Понравилась идея? Поделитесь своими действиями и сценариями в комментариях — возможно, вы вдохновите других.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента