Jak mogę zainstalować skrypt Nautilus?

14

Znalazłem skrypt nautilus, którego chciałbym użyć. Jak to zainstalować?

Glutanimate
źródło

Odpowiedzi:

37

Załóżmy, że chcesz zainstalować następujący skrypt znaleziony podczas przeglądania Zapytaj Ubuntu:

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

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

Zależności

Pierwszą rzeczą, którą zauważysz, jest to, że wiele skryptów nie wychodzi po prostu z pudełka. Czasami zależą od innych pakietów, które mogłeś zainstalować lub nie. W takim przypadku nasz skrypt zależy od tego notify-osd, który domyślnie jest dostarczany z Ubuntu.

W innych dystrybucjach może tak nie być i przed użyciem skryptu musisz zainstalować zależności. Jeśli zależność jest częścią oficjalnych repozytoriów, możesz ją łatwo zainstalować apt-get, np .:

sudo apt-get install notify-osd

Konfigurowanie skryptu

Teraz, gdy zaspokoiliśmy wszystkie zależności, możemy przejść i skopiować skrypt do naszego systemu. Aby to zrobić, najpierw tworzymy nowy dokument w naszym folderze skryptów, ~/.gnome2/nautilus-scriptsczyli ~/.local/share/nautilus/scripts/w wersji Ubuntu 13.04 lub nowszej. To jest ukryty folder. Aby do niego przejść, musisz otworzyć menedżera plików, naciśnij CTRL+ Li wklej ścieżkę katalogu do paska lokalizacji.

Następnie utworzymy nowy pusty dokument, klikając prawym przyciskiem myszy i wybierając Utwórz nowy dokumentPusty dokument . Nazwij go, jak chcesz, ale uwaga: wybrany tytuł to sposób, w jaki wpis skryptu pojawi się w menu kontekstowym nautilus. Lepiej więc wybierz opisową nazwę dokumentu:

wprowadź opis zdjęcia tutaj

Otwórz nowy dokument w wybranym edytorze tekstów, a następnie skopiuj i wklej do niego zawartość pola kodu powyżej. Zapisz i wyjdź z edytora tekstu.

Dzięki temu jest wykonywalny

W tym momencie skrypt jest poprawnie skonfigurowany, ale nadal nie działa, ponieważ system nie rozpoznaje go jeszcze jako pliku wykonywalnego. Aby plik był wykonywalny, kliknij plik prawym przyciskiem myszy i przejdź do WłaściwościUprawnienia . Ustaw znacznik przy Zezwalaj na wykonywanie jako program i zamknij okno dialogowe:

wprowadź opis zdjęcia tutaj

Stosowanie

Powinieneś teraz mieć dostęp do skryptu z menu kontekstowego nautilus. Wystarczy kliknąć wybrany plik prawym przyciskiem myszy i przejść do Skrypty -> Nazwa skryptu (tutaj: Przykładowy skrypt ). Kliknij pozycję, aby wykonać skrypt na wybranych plikach:

wprowadź opis zdjęcia tutaj

Przypisywanie skrótu klawiaturowego do skryptu

Skróty klawiaturowe dla skryptów Nautilus można przypisać, edytując plik akceleratora klawiatury Nautilus. W systemie Ubuntu 12.04 i niższych ten plik można znaleźć pod ~/.gnome2/accels/nautilus. W nowszych wersjach plik ten został przeniesiony do ~/.config/nautilus/accels. Uwaga: skrypt pojawi się w pliku akceleratora dopiero po ponownym uruchomieniu Nautilus (uruchom nautilus -q, a następnie uruchom ponownie Nautilus, klikając jego program uruchamiający).

Składnia pliku akceleratora może początkowo wyglądać nieco przytłaczająco, ale w rzeczywistości jest dość łatwa. Spójrz na ten fragment, na przykład:

; (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")

Każda linia reprezentuje pojedyncze przypisanie klucza. Pierwszy podwójnie cytowany segment oznacza akcję, a drugi przypisaną kombinację klawiszy. Linie zaczynające się od średnika są komentowane i obecnie nieaktywne.

Aby przypisać skrót do skryptu, będziesz musiał przeszukać ten plik w celu znalezienia nazwy skryptu i odkomentować odpowiedni wiersz, usuwając średnik. Następnie wpisz skrót klawiaturowy, który chcesz przypisać.

Oto dostępne modyfikatory i odpowiadające im kody klawiszy:

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

Możesz znaleźć poprawne kody wszystkich pozostałych kluczy, używając xev .

Oto jak musiałbyś zmodyfikować powyższą sekcję, aby przypisać przykładowy skrypt do 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")

W systemie Ubuntu 12.04 (i być może także w późniejszych wersjach) Nautilus czasami nadpisuje plik akceleratora przed wprowadzeniem jakichkolwiek zmian. Dobrym pomysłem może być wykonanie wszystkich zmian, które wprowadzasz, gdy Nautilus nie działa ( nautilus -q). Tak czy inaczej, będzie musiał ponownie uruchomić Nautilusa, aby zobaczyć zmiany.

Automatyzacja instalacji

Ten skrypt Nautilus automatycznie zainstaluje dla Ciebie skrypty Nautilus. Spójrz na komentarze, aby zobaczyć, co dzieje się za kulisami:

#!/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: $@"

Na marginesie: Oto skrypt nautilus, którego użyłem do nagrania screencastów tej odpowiedzi.

Glutanimate
źródło
1
Być może odpowiedź ta może być jeszcze bardziej ulepszona, w tym informacje o przypisywaniu ikon do skryptów za pomocą okna właściwości pliku Nautilus lub wiersza poleceń (np. Askubuntu.com/a/376062/53738 ).
dess