Небольшая статейка в продолжение темы хоткеев в Nautilus. В прошлый раз я настроил себе очистку корзины по хоткею, сегодня добавим в файловый менеджер открытие выделенной папки/файла в другом приложении.
Как и многим другим программистам, мне довольно часто приходится открывать тот или иной путь в VS Code или терминале из файлового менеджера. На маке эту проблему я решил очень давно и очень просто – настроив пару системных хоткеев:
- cmd+5 – открыть в терминале
- cmd+6 – открыть в vscode через скрипт Automator (сейчас там вроде бы уже есть встроенный скрипт)
В стандартном файловом менеджере Gnome, который Nautilus, тоже можно настроить горячие клавиши, но, к сожалению, не через настройку горячих клавиш системы, а только через собственный конфиг файл nautilus и только для собственных nautilus-скриптов.
nautilus-script
Благо, это не какой–то собственный язык или диалект — в качестве скрипта может выступать вообще любой исполняемый файл находящийся в специальном каталоге.
Таким образом можно и что–то супер простое накидать в виде шелл-скрипта, так и что–то очень замороченное – хоть на python, хоть на Си.
Мне в контексте статьи ничего сложного не нужно — в моих чаяниях помогут простые советские bash–скрипты.
Скрипты эти должны располагаться в каталоге ~/.local/share/nautilus/scripts. Внутри этих скриптов можно получить путь выделенных в nautilus объектов через т.н. переменные окружения.
Всего Nautilus устанавливает 3 переменные окружения для скриптов:
- NAUTILUS_SCRIPT_CURRENT_URI – URI текущего каталога
- NAUTILUS_SCRIPT_SELECTED_URIS – список URI выделенных элементов, разделённый переводом строки
- NAUTILUS_SCRIPT_SELECTED_FILE_PATHS – список путей выделенных элементов, разделённый переводом строки
Никакие URI нам не интересны, а потому будем использовать переменную $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS:
Добавляем к скриптам поддержку горячих клавиш
Для того чтобы прописать своим скриптам поддержку хоткеев, нужно отредактировать дополнительный файл конфигурации, который лежит по пути ~/.config/nautilus/scripts-accels.
Синтаксис файла очень простой – комбинация пробел имя nautilus–скрипта, по одному хоткею на строку:
Я настроил себе открытие терминала в папке по комбинации 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