Базовый сценарий: выделил папку или файл — и сразу gnome-terminal в нужном каталоге. Если ничего не выбрано — открываю текущую папку.
Куда положить
Можно просто скачать скрипт Nautilus ниже и положить по этому пути. Скрипты Nautilus живут здесь:
~/.local/share/nautilus/scripts/
В свойствах файла включаю «Исполняемый как приложение» — без этого пункта в меню не будет.
Или через командную строку
- Ставлю зависимости
Нужен gnome-terminal. notify-send необязателен, но удобен.
sudo apt install -y gnome-terminal libnotify-bin - Создаю файл
Имя файла — то, что будет в меню: Открыть папку в терминале.
mkdir -p ~/.local/share/nautilus/scripts touch ~/.local/share/nautilus/scripts/"Открыть папку в терминале" - Даю права на исполнение
Без бита исполнения Nautilus скрипт не покажет.
chmod +x ~/.local/share/nautilus/scripts/"Открыть папку в терминале" - Открываю в редакторе
xdg-open поднимает графический редактор, не nano.
xdg-open ~/.local/share/nautilus/scripts/"Открыть папку в терминале" - Вставляю код и пользуюсь
Вставляю код ниже и пользуюсь: выделил файлы → ПКМ → «Сценарии». Чтобы меню подхватило файл:
nautilus -q
Код
#!/bin/bash
# Исправленная версия - открывает ВЫДЕЛЕННУЮ папку в терминале
# Отладка (можно закомментировать)
# echo "=== ОТЛАДКА ===" > /tmp/nautilus_debug.log
# echo "NAUTILUS_SCRIPT_SELECTED_FILE_PATHS: $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" >> /tmp/nautilus_debug.log
# echo "NAUTILUS_SCRIPT_CURRENT_URI: $NAUTILUS_SCRIPT_CURRENT_URI" >> /tmp/nautilus_debug.log
# Получаем путь к выбранной папке/файлу
SELECTED_PATH="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
# Если ничего не выбрано (например, вызвали из пустого места)
if [ -z "$SELECTED_PATH" ]; then
# Используем текущую папку
SELECTED_PATH="$NAUTILUS_SCRIPT_CURRENT_URI"
# Убираем префикс file://
SELECTED_PATH=$(echo "$SELECTED_PATH" | sed 's/file:////')
fi
# Убираем возможные проблемы с пробелами и спецсимволами
SELECTED_PATH=$(echo "$SELECTED_PATH" | sed 's/ / /g')
# Проверяем, что путь существует
if [ ! -e "$SELECTED_PATH" ]; then
echo "Ошибка: Путь '$SELECTED_PATH' не существует" >&2
exit 1
fi
# Определяем целевую директорию
if [ -f "$SELECTED_PATH" ]; then
# Если выбран файл - открываем терминал в папке с файлом
TARGET_DIR="$(dirname "$SELECTED_PATH")"
else
# Если выбрана папка - открываем в ней
TARGET_DIR="$SELECTED_PATH"
fi
# Открываем терминал
gnome-terminal --working-directory="$TARGET_DIR"
# Показываем уведомление (опционально)
if command -v notify-send &> /dev/null; then
notify-send "Терминал открыт" "в папке: $(basename "$TARGET_DIR")"
fi
exit 0
Комментарии
Пока нет комментариев — можете написать первый.