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

14

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

Glutanimate
источник

Ответы:

37

Допустим, вы хотите установить следующий скрипт, который вы нашли во время просмотра 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. Поэтому лучше выберите описательное имя для документа:

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

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

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

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

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

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

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

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

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

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

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

; (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 (/ubuntu//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, который я использовал для записи скринкастов этого ответа.

Glutanimate
источник
1
Возможно, этот ответ мог бы быть еще более расширенным, включая информацию о назначении значков сценариям с помощью окна свойств файла Nautilus или командной строки (например, askubuntu.com/a/376062/53738 ).
Десса