Come personalizzo il menu contestuale in Nautilus?


29

Di tanto in tanto mi vengono in mente idee di azioni che vorrei avere disponibili nel menu contestuale di Nautilus. Come li aggiungo lì? Esiste qualcosa come un plug-in Thunar UCA per Nautilus?


per "Crea nuovo documento" con il tasto destro del mouse, fai riferimento a askubuntu.com/questions/777711/…
HMagdy,

Risposte:


25

La risposta di seguito è obsoleta: una risposta recentemente aggiornata è questa .


I menu di scelta rapida di Nautilus erano personalizzabili dalle estensioni di Nautilus . Si informa che questo collegamento porta a documenti archiviati; Gli sviluppatori di Gnome hanno rimosso quella documentazione e non supportano più quel tipo di personalizzazione. Potrebbe comunque funzionare comunque.

È inoltre possibile posizionare gli script di shell semplici nella directory ~/.local/share/nautilus/scripts( ~/.gnome2/nautilus-scriptsnelle versioni precedenti) e verranno visualizzati nel menu di scelta rapida dei file nel sottomenu Script .


3
Si noti che, come detto in askubuntu.com/questions/281062/… se si è su Ubuntu 13.04 che utilizza una versione più recente di Nautilus, è necessario utilizzare una ~/.local/share/nautilus/scriptscartella per inserire gli script. E anche in questo caso verranno visualizzati solo gli script quando fai clic destro su un file o una cartella e non spazio vuoto.
Logan,

2
non è obsoleto?

@cipricus lo è. Risposto al 2011, che è stato 6 anni fa . 12 versioni di Ubuntu precedenti.
Ulidtko,

la domanda non è contrassegnata come specifica per l'edizione e ci sono risposte molto recenti

@dessert - Non vedo alcun motivo per adattare la domanda a una risposta obsoleta solo perché quella risposta era stata contrassegnata come definitiva in passato. Ciò renderebbe la risposta aggiornata (e più votata) fuori posto qui, quando la strada da percorrere sarebbe semplicemente contrassegnare quest'ultima risposta come definitiva. - Un altro modo di procedere sarebbe aggiungere una breve modifica alla risposta definitiva ormai obsoleta che collega quella aggiornata: cosa che ho appena fatto.

30

Aggiornamento per Ubuntu 18.04

Alla data di rilascio di Ubuntu 18.04 Nautilus-Actions era / non è più disponibile. Sembra anche che sia stato sostituito da un nuovo programma, chiamato Filemanager-Actions, che altrimenti sembra identico.


Per installare questo programma, vedere questa soluzione.


Azioni Nautilus

Possiamo definire le nostre voci del menu contestuale del tasto destro del mouse con azioni nautilus Installa azioni nautilus .

  • Esegui lo strumento di configurazione Nautilus-Actions dalla Dash o da un terminale con

    nautilus-actions-config-tool
    

inserisci qui la descrizione dell'immagine

  • Nella scheda Azione assegna alla tua azione un'etichetta sensibile, ad esempio "Apri in Terminator" e scegli di visualizzarla nella selezione o nel menu contestuale.

  • Quindi aprire la scheda Comando per inserire i comandi da eseguire

inserisci qui la descrizione dell'immagine

  • Fornisci il percorso completo per il tuo comando ( /usr/bin/command_to_run) e le opzioni del programma.

  • Dopo la disconnessione e l'accesso, verrà visualizzato il menu di scelta rapida di seguito:

inserisci qui la descrizione dell'immagine



1
È ancora aggiornato?
RolandiXor

2
Le azioni di Nautilus si svolgono come previsto nel 12.04
Takkat,


11

Si può usare l' estensione python-nautilus come alternativa a nautilus-actions.

Installare:

sudo apt-get install python-nautilus

Un semplice esempio:

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,

Copia questo script Python in ~/.local/share/nautilus-python/extensionse riavvia nautilus. Quando fai clic con il tasto destro sul desktop e selezioni il tuo oggetto, il tuo semplice comando bash verrà eseguito :)


potrebbe essere necessario creare nautilus-pythone extensionscartelle se non ci sono.
souravc,

Ho provato la maggior parte delle soluzioni in questo argomento e ho scoperto che la soluzione Python è la migliore. Sebbene non sia perfetto, principalmente a causa della mancanza di documentazione, consente script e portabilità più flessibili.
Ricardo Rodrigues,

3

Se vuoi essere in grado di fare qualcosa in qualsiasi momento, fai come dice Ulidtko e usalo ~/.gnome2/nautilus-scripts.

Se vuoi essere in grado di personalizzare quando lo vedi, installa il pacchetto nautilus-actions, quindi vai su Sistema-> Preferenze-> Configurazione azioni Nautilus.


3

Era del 29 novembre 2016 Ubuntu 14.04, 16.04 e 16.10 e versioni precedenti.

Vedi le istruzioni di Nautilus per creare il tuo script qui ( Aiuto Ubuntu - Come usare gli script Nautilus ). Fondamentalmente tu:

  • Passare alla directory ~/.local/share/nautilus/scripts/
  • Inserisci lì la tua sceneggiatura (scritta in Bash, Perl o Python).
  • Contrassegnare lo script come eseguibile utilizzando Nautilus o dal terminale con chmod +x script_name
  • Nautilus rende disponibili variabili ambientali per il tuo script: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI e NAUTILUS_SCRIPT_WINDOW_GEOMETRY

Ci sono script di esempio disponibili in ( Aiuto Ubuntu - Nautilus Sample Scripts ) per inviare file di posta elettronica, montare un file ISO, impostare i file in sola lettura, modificare i file con privilegi ROOT gedit, aprire il terminale nella posizione corrente, ecc.

Guarda gli script e prendine uno come modello per crittografare i file, caricarli sul cloud, comprimere per eseguire il backup o qualunque cosa tu debba fare.


2

TL; DR

La migliore soluzione per gli sviluppatori di app è usare python-nautilus .

Crea il tuo script Python ( seguenti esempi e documentazione errata ) e copiarlo nella cartella corretta:

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

Spiegazione dettagliata

Supponiamo che tu voglia creare un'applicazione che l'utente installa con uno script o un .debfile, tenendo presente che spiegherò perché penso che python-nautilussia una soluzione migliore rispetto alle azioni nautilus e agli script nautilus .

Azioni Nautilus

Questa è l'unica soluzione per offrire una GUI e quindi rende facile creare comportamenti complessi, ad esempio decidere quali voci di menu mostrare se il tipo mime del file selezionato è text/plain.

Il problema principale con questa soluzione è che non è facile (se possibile) importare le voci su un altro computer senza lo strumento di configurazione e l'utente che lo importa, diciamo solo che non sarebbe possibile fare con uno script.

Script di Nautilus

Questa è la soluzione più semplice, prendi uno script, mettilo in una cartella e il gioco è fatto. Ciò consentirebbe sicuramente a uno script di installazione o un .debfile di creare una nuova voce nel menu di scelta rapida. Quali sono i problemi? Da dove comincio...

  • Appare sempre sotto un sottomenu Script.
  • Non mostra se non hai selezionato nulla.
  • Non ti consente di decidere se mostrare o meno la voce.
  • Non consente descrizioni comandi o titoli diversi. (forse sono pignolo)

Una buona app non usa scorciatoie come questa, perché rovina l'esperienza dell'utente.

python-nautilus

Non è facile da creare come le soluzioni precedenti, ma offre il meglio di entrambi i mondi. Scripting e personalizzazione.

Questa soluzione consente di creare uno script Python che riceve i file selezionati in nautilus e decidiamo se si desidera mostrare una voce o meno e cosa fare con quella voce. Ti permette anche di creare sottomenu e / o cose interessanti.

Lo svantaggio è la grande mancanza di documentazione e gli sviluppatori che vogliono solo aggiungere una voce potrebbero ritrovarsi a perdere un paio d'ore per creare un prototipo funzionante (nella mia ricerca ho trovato una soluzione basata su C che era molto più complicata di così).

Normalmente uso Visual Studio Code, mentre su Windows offre una voce di menu contestuale Open with Visual Studio Code, manca la stessa funzionalità su Linux, con la soluzione Python sarebbe facile risolvere il problema. Penso che le app in Linux potrebbero trarre vantaggio dall'integrazione di nautilus.

Spero che questa spiegazione ti abbia aiutato a decidere cosa scegliere.


Questo è esattamente il motivo per cui volevo aggiungere anche un menu di scelta rapida. Potresti forse pubblicare la tua soluzione python-nautilus "Apri con codice VS"? Grazie.
Sharpiro,

Cra0zy ha migliorato la mia versione in una soluzione adatta: gist.github.com/cra0zy/f8ec780e16201f81ccd5234856546414
Ricardo Rodrigues
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.