Я нашел скрипт наутилуса, который хотел бы использовать. Как мне это установить?
источник
Я нашел скрипт наутилуса, который хотел бы использовать. Как мне это установить?
Допустим, вы хотите установить следующий скрипт, который вы нашли во время просмотра 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")
Каждая строка представляет собой одно назначение клавиш. Первый сегмент в двойных кавычках обозначает действие, второй - назначенную комбинацию клавиш. Строки, начинающиеся с точки с запятой, комментируются и в настоящее время неактивны.
Чтобы назначить ярлык вашему сценарию, вам нужно будет найти в этом файле имя сценария и раскомментировать соответствующую строку, удалив точку с запятой. Затем наберите комбинацию клавиш, которую вы хотите назначить.
Это доступные модификаторы и соответствующие им коды клавиш:
<Primary>
<Alt>
<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, который я использовал для записи скринкастов этого ответа.