¿Cómo puedo instalar un script de Nautilus?

Respuestas:

37

Supongamos que desea instalar el siguiente script que encontró mientras exploraba Ask Ubuntu:

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

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

Dependencias

Lo primero que notará es que muchos scripts no se ejecutarán de inmediato. A veces dependen de otros paquetes que podría o no haber instalado. En este caso, nuestro script depende notify-osd, que viene con Ubuntu por defecto.

En otras distribuciones, este podría no ser el caso y tendrá que instalar las dependencias antes de usar el script. Si la dependencia es parte de los repositorios oficiales, puede instalarla fácilmente apt-get, por ejemplo:

sudo apt-get install notify-osd

Configurando el script

Ahora que hemos satisfecho todas las dependencias, podemos seguir adelante y copiar el script en nuestro sistema. Para hacerlo, primero creamos un nuevo documento en nuestra carpeta de scripts, que es ~/.gnome2/nautilus-scriptso ~/.local/share/nautilus/scripts/en Ubuntu 13.04 y superior. Esta es una carpeta oculta. Para dirigirte a él, tendrás que abrir tu administrador de archivos, presionar CTRL+ Ly pegar la ruta del directorio en la barra de Ubicación.

A continuación, crearemos un nuevo documento vacío haciendo clic derecho y seleccionando Crear nuevo documentoDocumento vacío . Póngale el nombre que desee, pero tenga cuidado: el título que elija es cómo aparecerá más adelante la entrada del script en el menú contextual de nautilus. Así que mejor elija un nombre descriptivo para el documento:

ingrese la descripción de la imagen aquí

Abra el nuevo documento en un editor de texto de su elección y copie y pegue el contenido del cuadro de código anterior en él. Guárdelo y salga del editor de texto.

Haciéndolo ejecutable

En este punto, su secuencia de comandos está configurada correctamente pero aún no funcionará, ya que el sistema aún no la reconoce como un archivo ejecutable. Para hacerlo ejecutable, haga clic derecho en su archivo y diríjase a PropiedadesPermisos . Establezca la marca de verificación en Permitir ejecución como programa y cierre el diálogo:

ingrese la descripción de la imagen aquí

Uso

Ahora debería poder acceder al script desde el menú contextual de nautilus. Simplemente haga clic derecho en un archivo de su elección y diríjase a Scripts -> Nombre del script (aquí: Script de muestra ). Haga clic en la entrada para ejecutar el script en los archivos que seleccionó:

ingrese la descripción de la imagen aquí

Asignación de un atajo de teclado al script

Los atajos de teclado para los scripts de Nautilus se pueden asignar editando el archivo acelerador de teclado de Nautilus. En Ubuntu 12.04 y debajo de este archivo se puede encontrar en ~/.gnome2/accels/nautilus. En versiones más recientes, este archivo se ha movido a ~/.config/nautilus/accels. Tenga en cuenta que su script solo aparecerá en el archivo acelerador después de reiniciar Nautilus (ejecute nautilus -q, luego inicie Nautilus nuevamente haciendo clic en su lanzador).

La sintaxis del archivo acelerador puede parecer un poco abrumadora al principio, pero en realidad es bastante fácil. Eche un vistazo a este extracto, por ejemplo:

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

Cada línea representa una asignación de tecla única. El primer segmento entre comillas dobles designa la acción, el segundo la combinación de teclas asignada. Las líneas que comienzan con un punto y coma se comentan y actualmente están inactivas.

Para asignar un acceso directo a su secuencia de comandos, deberá buscar en este archivo el nombre de la secuencia de comandos y descomentar la línea correspondiente eliminando el punto y coma. Luego proceda a escribir el método abreviado de teclado que desea asignar.

Estos son los modificadores disponibles y sus códigos clave correspondientes:

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

Puede encontrar códigos de clave válidos para todas las demás claves utilizando xev .

Así es como debería modificar la sección anterior para asignar su script de muestra 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")

En Ubuntu 12.04 (y tal vez versiones posteriores también) Nautilus a veces sobrescribirá el archivo acelerador antes de que pueda realizar cambios. Por lo tanto, puede ser una buena idea realizar todos los cambios que realice mientras Nautilus no se esté ejecutando ( nautilus -q). De cualquier manera, lo harás que reiniciar Nautilus para ver los cambios.

Automatizando la instalación

Este script de Nautilus instalará automáticamente los scripts de Nautilus por usted. Por favor, eche un vistazo a los comentarios para ver qué sucede detrás de escena:

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

Como comentario: aquí está el guión nautilus que usé para grabar los screencasts de esta respuesta.

Glutanimato
fuente
1
Posiblemente, esta respuesta podría mejorarse aún más, incluida la información sobre la asignación de iconos a los scripts utilizando la ventana de propiedades del archivo Nautilus o la línea de comandos (por ejemplo, askubuntu.com/a/376062/53738 ).
dess