¿Cómo personalizo el menú contextual en Nautilus?


29

De vez en cuando se me ocurren ideas de acciones que me gustaría tener disponibles en el menú contextual de Nautilus. ¿Cómo los agrego allí? ¿Hay algo así como un complemento Thunar UCA para Nautilus?


para "Crear nuevo documento" al hacer clic con el botón derecho, consulte askubuntu.com/questions/777711/…
HMagdy

Respuestas:


25

La siguiente respuesta está desactualizada: esta es una respuesta actualizada recientemente .


Los menús contextuales de Nautilus solían ser personalizables por las extensiones de Nautilus . Tenga en cuenta que este enlace conduce a un documento archivado; Los desarrolladores de Gnome eliminaron esa documentación y ya no admiten ese tipo de personalización. Sin embargo, aún puede funcionar.

También puede colocar scripts de shell simples en el directorio ~/.local/share/nautilus/scripts( ~/.gnome2/nautilus-scriptsen versiones anteriores), y aparecerán en el menú contextual del archivo en el submenú Scripts .


3
Tenga en cuenta que, como se dice en askubuntu.com/questions/281062/… si está en ubuntu 13.04 que usa una versión más nueva de Nautilus, se supone que debe usar la ~/.local/share/nautilus/scriptscarpeta para colocar sus scripts. E incluso entonces solo se mostrarán scripts cuando haces clic derecho en un archivo o carpeta y no espacio vacío.
Logan

2
no es esto anticuado?

@cipricus lo es. Respondido en 2011, que es hace 6 años . 12 lanzamientos de Ubuntu anteriores.
ulidtko

la pregunta no está marcada como edición específica y hay respuestas muy recientes

@dessert: no veo ningún punto en ajustar la pregunta a una respuesta desactualizada solo porque esa respuesta se marcó como definitiva en el pasado. Eso haría que la respuesta actualizada (y más votada) se vea fuera de lugar aquí, cuando el camino a seguir sería simplemente marcar la última respuesta como definitiva. - Otra forma de hacerlo sería agregar una pequeña edición a la respuesta definitiva, ahora obsoleta, que se vincula con la actualizada: lo que acabo de hacer.

30

Actualización para Ubuntu 18.04

En la fecha en que se lanzó Ubuntu 18.04, Nautilus-Actions estaba / ya no está disponible. También parece haber sido reemplazado por un nuevo programa, llamado Filemanager-Actions, que de lo contrario parece idéntico.


Para instalar este programa, vea esta solución.


Acciones Nautilus

Podemos definir nuestros propios elementos del menú contextual con el botón derecho del mouse con nautilus-actions Instalar acciones nautilus .

  • Ejecute la herramienta de configuración de acciones Nautilus desde el tablero o desde un terminal con

    nautilus-actions-config-tool
    

ingrese la descripción de la imagen aquí

  • En la pestaña Acción, asigne a su acción una etiqueta sensible, por ejemplo, "Abrir en Terminator" y elija mostrar esto en la selección o en el menú contextual.

  • Luego abra la pestaña Comando para ingresar los comandos a ejecutar

ingrese la descripción de la imagen aquí

  • Entregue la ruta completa a su comando ( /usr/bin/command_to_run) y opciones de programa.

  • Después de cerrar sesión y volver a iniciarla, se mostrará el menú contextual del botón derecho a continuación:

ingrese la descripción de la imagen aquí



1
¿Esto todavía está actualizado?
RolandiXor

2
Las acciones de Nautilus funcionan como se esperaba en 12.04
Takkat


11

Se puede usar la extensión python-nautilus como alternativa a nautilus-actions.

Instalar:

sudo apt-get install python-nautilus

Un simple ejemplo:

import os

from gi.repository import Nautilus, GObject

class ColumnExtension(GObject.GObject, Nautilus.MenuProvider):
    def __init__(self):
        pass
    def menu_activate_cb(self, menu, file):
         os.system("write here your simple bash command & pid=$!")

    def get_background_items(self, window, file):
        item = Nautilus.MenuItem(name='ExampleMenuProvider::Foo2', 
                                         label='Name of your item', 
                                         tip='',
                                         icon='')
        item.connect('activate', self.menu_activate_cb, file)
        return item,

Copie este script de Python en ~/.local/share/nautilus-python/extensionsy reinicie nautilus. Cuando hace clic derecho en el escritorio y selecciona su elemento, se ejecutará su simple comando bash :)


puede que tenga que crear nautilus-pythony extensionscarpetas si no están allí.
souravc

Probé la mayoría de las soluciones en este tema y descubrí que la solución de Python es la mejor. Aunque no es perfecto, principalmente debido a la falta de documentación, permite una secuencia de comandos y portabilidad más flexibles.
Ricardo Rodrigues

3

Si desea poder hacer algo en cualquier momento, haga lo que dice ulidtko y úselo ~/.gnome2/nautilus-scripts.

Si desea poder personalizarlo cuando lo vea, instale el paquete nautilus-actions, luego vaya a Sistema-> Preferencias-> Configuración de acciones Nautilus.


3

29 de noviembre de 2016 era Ubuntu 14.04, 16.04 y 16.10 más versiones anteriores.

Consulte las instrucciones de Nautilus para crear su propio script aquí ( Ayuda Ubuntu - Nautilus Scripts How to ). Básicamente usted:

  • Navega al directorio ~/.local/share/nautilus/scripts/
  • Coloque su script (escrito en Bash, Perl o Python) allí.
  • Marque el script como ejecutable usando Nautilus o desde la terminal con chmod +x script_name
  • Nautilus pone a disposición del script las variables ambientales: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI y NAUTILUS_SCRIPT_WINDOW_GEOMETRY

Hay scripts de muestra ubicados en ( Ayuda Ubuntu - Scripts de muestra Nautilus ) para enviar archivos por correo electrónico, montar un archivo ISO, configurar archivos para solo lectura, editar archivos con privilegios ROOT de gedit, abrir el terminal en la ubicación actual, etc.

Revise los scripts y tome uno como plantilla para cifrar archivos, cargarlos en la nube, comprimirlos para hacer una copia de seguridad o lo que sea que necesite hacer.


2

TL; DR

La mejor solución para los desarrolladores de aplicaciones es usar python-nautilus .

Cree su script de Python ( siguientes ejemplos y documentación incorrecta ) y cópielo en la carpeta correcta:

mkdir -p ~/.local/share/nautilus-python/extensions && cp script.py ~/.local/share/nautilus-python/extensions

Explicación detallada

Digamos que desea crear una aplicación que el usuario instale con un script o un .debarchivo, con eso en mente explicaré por qué creo que python-nautiluses una mejor solución en comparación con las acciones nautilus y los scripts nautilus .

Acciones Nautilus

Esta es la única solución para ofrecer una GUI y, por lo tanto, facilita la creación de un comportamiento complejo, por ejemplo, decidir qué entradas del menú mostrar si el tipo MIME del archivo seleccionado es text/plain.

El principal problema con esta solución es que no es fácil (si es posible) importar las entradas a otra computadora sin la Herramienta de configuración y el usuario la importa, digamos que no sería posible hacerlo con un script.

Nautilus Scripts

Esta es la solución más sencilla, recoger un script, colocarlo en una carpeta y listo. Esto definitivamente permitiría un script de instalación o un .debarchivo para crear una nueva entrada en el menú contextual. ¿Cuáles son los problemas? Dónde empiezo...

  • Siempre aparece debajo de un submenú de Scripts.
  • No se muestra si no tiene nada seleccionado.
  • No le permite decidir si debe mostrar la entrada o no.
  • No permite información sobre herramientas o títulos diferentes. (Tal vez estoy siendo exigente)

Una buena aplicación no usa accesos directos como este, porque arruina la experiencia del usuario.

python-nautilus

No es tan fácil de crear como las soluciones anteriores, pero ofrece lo mejor de ambos mundos. Scripting y personalización.

Esta solución le permite crear un script python que recibe los archivos seleccionados en nautilus y le permite decidir si desea mostrar una entrada o no y qué hacer con esa entrada. También le permite crear submenús y / o cosas interesantes.

El inconveniente es la gran falta de documentación y los desarrolladores que solo desean agregar una entrada pueden encontrarse perdiendo un par de horas para crear un prototipo que funcione (en mi investigación encontré una solución basada en C que era mucho más complicada que esto).

Normalmente uso Visual Studio Code, mientras que en Windows ofrece una entrada de menú contextual Open with Visual Studio Code, carece de la misma funcionalidad en Linux, con la solución de Python sería fácil resolver el problema. Creo que muchas aplicaciones en Linux podrían beneficiarse de tener una integración nautilus.

Espero que esta explicación te haya ayudado a decidir qué elegir.


Esta es exactamente la razón por la que también quería agregar un menú contextual. ¿Podrías publicar tu solución python-nautilus "Abrir con código VS"? Gracias.
Sharpiro

Cra0zy mejoró mi versión en una solución adecuada: gist.github.com/cra0zy/f8ec780e16201f81ccd5234856546414
Ricardo Rodrigues
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.