Как я могу установить скрипт Nautilus?

Я нашел скрипт наутилуса, который хотел бы использовать. Как мне это установить?

1 ответ

Решение

Скажем, вы хотите установить следующий скрипт, который вы нашли во время просмотра Ask Ubuntu:

#!/bin/bash
## Sample Script 0.1
## Dependencies: notify-osd

notify-send "Sample nautilus script" "You Selected $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"

зависимости

Первое, что вы заметите, это то, что многие скрипты не будут запускаться из коробки. Иногда они зависят от других пакетов, которые вы могли или не могли установить. В этом случае наш скрипт зависит от notify-osd, который поставляется с Ubuntu по умолчанию.

На других дистрибутивах это может быть не так, и вам придется установить зависимости перед использованием скрипта. Если зависимость является частью официальных репозиториев, вы можете легко установить ее с apt-getНапример:

sudo apt-get install notify-osd

Настройка сценария

Теперь, когда мы удовлетворили все зависимости, мы можем перейти и скопировать скрипт в нашу систему. Для этого мы сначала создаем новый документ в нашей папке скриптов, которая ~/.gnome2/nautilus-scripts или же ~/.local/share/nautilus/scripts/ на Ubuntu 13.04 и выше. Это скрытая папка. Чтобы перейти к нему, вам нужно будет открыть свой файловый менеджер, нажать CTRL+L и вставить путь к каталогу в адресную строку.

Далее мы создадим новый пустой документ, щелкнув правой кнопкой мыши и выбрав Создать новый документПустой документ. Называйте его как угодно, но будьте осторожны: название, которое вы выбираете, - это то, как запись скрипта будет позже отображаться в контекстном меню nautilus. Поэтому лучше выберите описательное имя для документа:

введите описание изображения здесь

Откройте новый документ в любом текстовом редакторе и перейдите к копированию и вставке в него содержимого поля кода выше. Сохраните его и выйдите из текстового редактора.

Делаем его исполняемым

На этом этапе ваш скрипт настроен правильно, но все равно не будет работать, так как система еще не распознает его как исполняемый файл. Чтобы сделать его исполняемым, щелкните правой кнопкой мыши по файлу и перейдите в " Свойства"→ " Разрешения". Установите флажокРазрешить выполнение как программу и закройте диалог:

введите описание изображения здесь

использование

Теперь вы сможете получить доступ к сценарию из контекстного меню наутилуса. Просто щелкните правой кнопкой мыши по файлу по вашему выбору и перейдите к Scripts -> Script name(здесь:Sample Script). Нажмите на запись, чтобы выполнить скрипт для выбранных вами файлов:

введите описание изображения здесь

Назначение сочетания клавиш для сценария

Сочетания клавиш для сценариев Nautilus можно назначить, отредактировав файл ускорителя клавиатуры Nautilus. На Ubuntu 12.04 и ниже этот файл можно найти в ~/.gnome2/accels/nautilus, В новых версиях этот файл был перемещен в~/.config/nautilus/accels, Обратите внимание, что ваш скрипт появится в файле акселератора только после перезапуска Nautilus (выполнитьnautilus -q, затем снова запустите "Наутилус", нажав на его панель запуска).

Поначалу синтаксис файла ускорителя может показаться немного сложным, но на самом деле это довольно просто. Взгляните на этот отрывок, например:

; (gtk_accel_path "<Actions>/ShellActions/ZoomInAccel2" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ShellActions/TabsNext" "<Primary>Page_Down")
; (gtk_accel_path "<Actions>/ScriptsGroup/script_file:\\s\\s\\shome\\sglutanimate\\s.gnome2\\snautilus-scripts\\sSample%20script" "")
; (gtk_accel_path "<Actions>/ShellActions/Search" "<Primary>f")
; (gtk_accel_path "<Actions>/ShellActions/Forward" "<Alt>Right")

Каждая строка представляет собой одно назначение клавиш. Первый сегмент в двойных кавычках обозначает действие, второй - назначенную комбинацию клавиш. Строки, начинающиеся с точки с запятой, комментируются и в настоящее время неактивны.

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

Это доступные модификаторы и соответствующие им коды клавиш:

  • CTRL=<Primary>
  • ALT=<Alt>
  • SHIFT=<Shift>

Вы можете найти действительные коды клавиш для всех других ключей с помощью xev.

Вот как вы должны изменить вышеприведенный раздел, чтобы назначить свой пример сценария ALT+SHIFT + S:

; (gtk_accel_path "<Actions>/ShellActions/ZoomInAccel2" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ShellActions/TabsNext" "<Primary>Page_Down")
(gtk_accel_path "<Actions>/ScriptsGroup/script_file:\\s\\s\\shome\\sglutanimate\\s.gnome2\\snautilus-scripts\\sSample%20script" "<Alt><Shift>s")
; (gtk_accel_path "<Actions>/ShellActions/Search" "<Primary>f")
; (gtk_accel_path "<Actions>/ShellActions/Forward" "<Alt>Right")

В Ubuntu 12.04 (и, возможно, в более поздних выпусках) Nautilus иногда перезаписывает файл ускорителя, прежде чем вы сможете внести какие-либо изменения. Так что было бы неплохо выполнить все изменения, которые вы делаете, пока Nautilus не запущен (nautilus -q). В любом случае вам придется перезапустить Nautilus, чтобы увидеть изменения.

Автоматизация установки

Этот скрипт Nautilus автоматически установит скрипты Nautilus для вас. Пожалуйста, посмотрите на комментарии, чтобы увидеть, что происходит за кулисами:

#!/bin/bash
# AUTHOR:       Glutanimate (https://Ask-ubuntu.ru/users/81372/)
# LICENSE:      GNU GPLv3 (http://www.gnu.de/documents/gpl-3.0.en.html)
# NAME:         Nautilus Scripts Installer
#
# DESCRIPTION:  This script will install Nautilus scripts on Ubuntu 12.04 and above.
#               Note: scripts of the same name in the destination folder will be
#               overwritten without warning


# general purpose notification function
gui_notify(){
    notify-send -i gnome-app-install "Nautilus Scripts Installer" "$1"
}


# check if any files selected
if [[ -z "$@" ]]
  then
      gui_notify "Error: No files selected."
      exit 1
fi


RELEASE="$(lsb_release -r | cut -f2)"   # detect Ubuntu release

if [[ "$RELEASE" = "12.04" ]]           # set script folder accordingly
  then
      ScriptFolder="$HOME/.gnome2/nautilus-scripts"
  else
      ScriptFolder="$HOME/.local/share/nautilus/scripts/"
fi


for Script in "$@"; do

  ScriptFilename="${Script##*/}"                # get filename via bash string manipulation

  cp "$Script" "$ScriptFolder/"                 # Move script to destination
  chmod u+x "$ScriptFolder/$ScriptFilename"     # Make it executable for the user

done

gui_notify "The following scripts have been installed: $@"

В качестве отступления: вот сценарий nautilus, который я использовал для записи скринкастов этого ответа.

Другие вопросы по тегам