Come posso installare uno script Nautilus?


Risposte:


37

Supponi di voler installare il seguente script che hai trovato durante la navigazione Chiedi a Ubuntu:

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

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

dipendenze

La prima cosa che noterai è che molti script non si esauriranno immediatamente. A volte dipendono da altri pacchetti che potresti aver installato o meno. In questo caso dipende il nostro script notify-osd, che viene fornito di default con Ubuntu.

In altre distro questo potrebbe non essere il caso e dovrai installare le dipendenze prima di utilizzare lo script. Se la dipendenza fa parte dei repository ufficiali, è possibile installarla facilmente apt-get, ad esempio:

sudo apt-get install notify-osd

Impostazione dello script

Ora che abbiamo soddisfatto tutte le dipendenze su cui possiamo passare e copiare lo script sul nostro sistema. Per fare ciò creiamo prima un nuovo documento nella nostra cartella degli script, che è ~/.gnome2/nautilus-scriptso ~/.local/share/nautilus/scripts/su Ubuntu 13.04 e versioni successive. Questa è una cartella nascosta. Per raggiungerlo dovrai aprire il tuo file manager, premi CTRL+ Le incolla il percorso della directory nella barra degli indirizzi.

Successivamente creeremo un nuovo documento vuoto facendo clic con il tasto destro e selezionando Crea nuovo documentoDocumento vuoto . Assegnalo al nome che preferisci, ma fai attenzione: il titolo che scegli è il modo in cui la voce dello script apparirà successivamente nel menu di scelta rapida di nautilus. Quindi meglio scegliere un nome descrittivo per il documento:

inserisci qui la descrizione dell'immagine

Apri il nuovo documento in un editor di testo a tua scelta e procedi a copiare e incollare il contenuto della casella di codice sopra in esso. Salvalo ed esci dall'editor di testo.

Rendendolo eseguibile

A questo punto il tuo script è impostato correttamente ma continua a non funzionare poiché il sistema non lo riconosce ancora come file eseguibile. Per renderlo eseguibile, fai clic destro sul tuo file e vai su ProprietàAutorizzazioni . Impostare il segno di spunta su Consenti esecuzione come programma e chiudere la finestra di dialogo:

inserisci qui la descrizione dell'immagine

uso

Ora dovresti essere in grado di accedere allo script dal menu contestuale di nautilus. Basta fare clic con il tasto destro su un file a scelta e andare su Script -> Nome script (qui: Script di esempio ). Fare clic sulla voce per eseguire lo script sui file selezionati:

inserisci qui la descrizione dell'immagine

Assegnare una scorciatoia da tastiera allo script

Le scorciatoie da tastiera per gli script Nautilus possono essere assegnate modificando il file dell'acceleratore da tastiera di Nautilus. Su Ubuntu 12.04 e precedenti questo file è disponibile sotto ~/.gnome2/accels/nautilus. Nelle versioni più recenti questo file è stato spostato ~/.config/nautilus/accels. Si noti che lo script verrà visualizzato nel file dell'acceleratore solo dopo aver riavviato Nautilus (eseguire nautilus -q, quindi riavviare Nautilus facendo clic sul relativo programma di avvio).

La sintassi del file acceleratore potrebbe sembrare un po 'travolgente all'inizio, ma in realtà è piuttosto semplice. Dai un'occhiata a questo estratto, ad esempio:

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

Ogni riga rappresenta una singola assegnazione di tasti. Il primo segmento tra virgolette indica l'azione, il secondo la combinazione di tasti assegnata. Le righe che iniziano con un punto e virgola sono commentate e attualmente inattive.

Per assegnare un collegamento al tuo script dovrai cercare in questo file il nome dello script e rimuovere il commento dalla riga corrispondente rimuovendo il punto e virgola. Quindi procedi a digitare la scorciatoia da tastiera che desideri assegnare.

Questi sono i modificatori disponibili e i corrispondenti codici chiave:

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

Puoi trovare codici chiave validi per tutte le altre chiavi usando xev .

Ecco come dovresti modificare la sezione sopra per assegnare il tuo script di esempio a 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")

Su Ubuntu 12.04 (e forse anche versioni successive) Nautilus a volte sovrascriverà il file dell'acceleratore prima di poter apportare modifiche. Quindi potrebbe essere una buona idea eseguire tutte le modifiche apportate mentre Nautilus non è in esecuzione ( nautilus -q). In entrambi i casi, si avrà necessario riavviare Nautilus per vedere i cambiamenti.

Automatizzare l'installazione

Questo script Nautilus installa automaticamente gli script Nautilus per te. Dai un'occhiata ai commenti per vedere cosa succede dietro le quinte:

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

A parte: ecco lo script nautilus che ho usato per registrare i screencast di questa risposta.


1
Probabilmente, questa risposta potrebbe essere ancora più migliorata, comprese le informazioni sull'assegnazione di icone agli script utilizzando la finestra delle proprietà del file Nautilus o la riga di comando (ad esempio askubuntu.com/a/376062/53738 ).
Dess
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.