Найти тему
Tominoff

Nautilus: открыть папку в приложении используя комбинацию клавиш

Оглавление

Небольшая статейка в продолжение темы хоткеев в Nautilus. В прошлый раз я настроил себе очистку корзины по хоткею, сегодня добавим в файловый менеджер открытие выделенной папки/файла в другом приложении.

Как и многим другим программистам, мне довольно часто приходится открывать тот или иной путь в VS Code или терминале из файлового менеджера. На маке эту проблему я решил очень давно и очень просто – настроив пару системных хоткеев:

  • cmd+5 – открыть в терминале
  • cmd+6 – открыть в vscode через скрипт Automator (сейчас там вроде бы уже есть встроенный скрипт)

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

nautilus-script

Благо, это не какой–то собственный язык или диалект — в качестве скрипта может выступать вообще любой исполняемый файл находящийся в специальном каталоге.

Таким образом можно и что–то супер простое накидать в виде шелл-скрипта, так и что–то очень замороченное – хоть на python, хоть на Си.

Мне в контексте статьи ничего сложного не нужно — в моих чаяниях помогут простые советские bash–скрипты.

Скрипты эти должны располагаться в каталоге ~/.local/share/nautilus/scripts. Внутри этих скриптов можно получить путь выделенных в nautilus объектов через т.н. переменные окружения.

Всего Nautilus устанавливает 3 переменные окружения для скриптов:

  1. NAUTILUS_SCRIPT_CURRENT_URI – URI текущего каталога
  2. NAUTILUS_SCRIPT_SELECTED_URIS – список URI выделенных элементов, разделённый переводом строки
  3. NAUTILUS_SCRIPT_SELECTED_FILE_PATHS – список путей выделенных элементов, разделённый переводом строки

Никакие URI нам не интересны, а потому будем использовать переменную $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS:

Простенький bash-скрипт - в случае, если у нас есть переменная – открываем в цикле терминалы в выбранных папках, а если нет – открываем домашнюю директорию в терминале
Простенький bash-скрипт - в случае, если у нас есть переменная – открываем в цикле терминалы в выбранных папках, а если нет – открываем домашнюю директорию в терминале

Добавляем к скриптам поддержку горячих клавиш

Для того чтобы прописать своим скриптам поддержку хоткеев, нужно отредактировать дополнительный файл конфигурации, который лежит по пути ~/.config/nautilus/scripts-accels.

Синтаксис файла очень простой – комбинация пробел имя nautilus–скрипта, по одному хоткею на строку:

Пример файла scripts-accels
Пример файла scripts-accels

Я настроил себе открытие терминала в папке по комбинации alt+T и открытие VSCode через alt+E.

Вообще, поддерживаются следующие модификаторы — <alt>, <control>, <shift>, <super> и их, теоретически, можно комбинировать, например <control><alt>T.

ПРИМЕЧАНИЕ

Почему–то с shift у меня ни одна комбинация не заработала – видимо какой-то баг.

ПРИМЕЧАНИЕ №2

К сожалению, комбинации пользовательских скриптов не перезаписывают стандартные, поэтому упомянутые в начале статьи <alt>+5, <alt>+6 либо не будут работать, либо будут срабатывать со второго раза — Nautilus использует эти комбинации для переключения вкладок

Есть кстати утилита для настройки хоткеев в графическом режиме, но в репозиториях Fedora я её не обнаружил, да и проект уже судя по всему давно умер.

Применение изменений

Чтобы применить изменения нужно перезапустить Nautilus.

Внимание – приведённая ниже команда закроет все окна Nautilus, поэтому если у вас там открыто что–то важное или идёт загрузка по smb или копирование/удаление файлов, то я всё же рекомендую сначала дождаться завершения этих фоновых операций!

Команда для перезапуска: nautilus -q