Como personalizo o menu de contexto no Nautilus?

29

De tempos em tempos, tenho idéias de ações que gostaria de ter disponíveis no menu de contexto do Nautilus. Como os adiciono lá? Existe algo como um plugin Thunar UCA para o Nautilus?

Ivan
fonte
para "Criar novo documento", clique com o botão direito do mouse, consulte este askubuntu.com/questions/777711/…
HMagdy

Respostas:

25

A resposta abaixo está desatualizada: uma resposta atualizada recentemente é essa .


Os menus de contexto do Nautilus costumavam ser personalizáveis ​​pelas extensões do Nautilus . Esteja avisado de que esse link leva ao documento arquivado; Os desenvolvedores do Gnome removeram essa documentação e não suportam mais esse tipo de personalização. Ainda pode funcionar.

Você também pode colocar scripts de shell simples no diretório ~/.local/share/nautilus/scripts( ~/.gnome2/nautilus-scriptsem versões anteriores) e eles aparecerão no menu de contexto do arquivo no submenu Scripts .

ulidtko
fonte
3
Observe que, como foi dito em askubuntu.com/questions/281062/…, se você estiver no ubuntu 13.04, que usa uma versão mais recente do Nautilus, você deve usar a ~/.local/share/nautilus/scriptspasta para inserir seus scripts. E mesmo assim, apenas os scripts serão exibidos quando você clica com o botão direito do mouse em um arquivo ou pasta e não em um espaço vazio.
Logan
2
isso não está desatualizado?
@cipricus é. Respondida em 2011, há 6 anos . 12 versões do Ubuntu anteriores.
26617 ulidtko
a questão não é marcado como edição específica e há respostas muito recentes
@dessert - Não vejo sentido em ajustar a pergunta a uma resposta desatualizada apenas porque essa resposta foi marcada como definitiva no passado. Isso faria com que a resposta atualizada (e mais votada) parecesse deslocada aqui, quando o caminho a seguir seria simplesmente marcar a última resposta como definitiva. - Outro caminho a seguir seria adicionar uma edição curta à resposta definitiva, agora desatualizada, com o link para a resposta atualizada: o que acabei de fazer.
30

Atualização para o Ubuntu 18.04

Na data em que o Ubuntu 18.04 foi lançado, o Nautilus-Actions estava / não está mais disponível. Também parece ter sido substituído por um novo programa, chamado Filemanager-Actions, que parece idêntico.


Para instalar este programa, consulte esta solução.


Ações do Nautilus

Podemos definir nossos próprios itens de menu de contexto com ações nautilus Instale ações nautilus .

  • Execute a Ferramenta de configuração do Nautilus-Actions no Dash ou em um terminal com

    nautilus-actions-config-tool
    

insira a descrição da imagem aqui

  • Na guia Ação, dê um rótulo sensível à sua ação, por exemplo, "Abrir no Terminator" e escolha exibi-lo na seleção ou no menu de contexto.

  • Em seguida, abra a guia Comando para inserir os comandos a serem executados

insira a descrição da imagem aqui

  • Indique o caminho completo para o comando ( /usr/bin/command_to_run) e as opções do programa.

  • Depois de sair e entrar novamente, o menu de contexto do botão direito abaixo será exibido:

insira a descrição da imagem aqui


Takkat
fonte
1
Isso ainda está atualizado?
RolandiXor
2
As ações do Nautilus têm o desempenho esperado em 12.04
Takkat 21/02/2012
11

Pode-se usar a extensão python-nautilus como uma alternativa para nautilus-actions.

Para instalar:

sudo apt-get install python-nautilus

Um exemplo simples:

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 esse script python em ~/.local/share/nautilus-python/extensionse reinicie o nautilus. Quando você clica com o botão direito na área de trabalho e seleciona seu item, seu simples comando bash será executado :)

mnrl
fonte
pode ser necessário criar nautilus-pythone extensionspastas se elas não estiverem lá.
souravc 11/06/14
Tentei a maioria das soluções neste tópico e descobri que a solução python é a melhor. Embora não seja perfeito, principalmente devido à falta de documentação, permite scripts e portabilidade mais flexíveis.
Ricardo Rodrigues
3

Se você quiser fazer algo a qualquer momento, faça como ulidtko diz e use ~/.gnome2/nautilus-scripts.

Se você quiser personalizar quando o vir, instale o pacote nautilus-actions e vá para Sistema-> Preferências-> Configuração de Ações do Nautilus.

zpletan
fonte
3

Era 29 de novembro de 2016, Ubuntu 14.04, 16.04 e 16.10 e versões anteriores.

Veja as instruções do Nautilus para criar seu próprio script aqui ( Ajuda Ubuntu - Como usar o Nautilus Scripts ). Basicamente você:

  • Navegue para o diretório ~/.local/share/nautilus/scripts/
  • Coloque seu script (escrito em Bash, Perl ou Python) lá.
  • Marque o script como executável usando o Nautilus ou a partir do terminal com chmod +x script_name
  • O Nautilus disponibiliza variáveis ​​ambientais para o seu script: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI e NAUTILUS_SCRIPT_WINDOW_GEOMETRY

Existem scripts de amostra localizados em ( Ajuda Ubuntu - Nautilus Sample Scripts ) para enviar arquivos por e-mail, montar um arquivo ISO, configurar arquivos como somente leitura, editar arquivos com privilégios de raiz do gedit, abrir terminal no local atual etc.

Examine os scripts e use um como modelo para criptografar arquivos, fazer upload para a nuvem, compactar para backup ou o que for necessário.

WinEunuuchs2Unix
fonte
2

TL; DR

A melhor solução para desenvolvedores de aplicativos é usar python-nautilus .

Crie seu script python (a seguir exemplos a e documentação incorreta ) e copie-o para a pasta correta:

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

Explicação detalhada

Digamos que você queira criar um aplicativo que o usuário instale com um script ou um .deb arquivo, com isso em mente explicarei por que acho que python-nautilusé uma solução melhor em comparação com o nautilus-actions e os scripts do nautilus .

Ações do Nautilus

Essa é a única solução para oferecer uma GUI e, portanto, facilita a criação de um comportamento complexo, por exemplo, decida quais entradas do menu serão exibidas se o tipo MIME do arquivo selecionado for text/plain.

O principal problema com esta solução é que não é fácil (se possível) importar as entradas para outro computador sem a Ferramenta de Configuração e o usuário importando, digamos que não seria possível fazer com um script.

Scripts Nautilus

Esta é a solução mais direta, escolha um script, coloque-o em uma pasta e pronto. Definitivamente, isso permitiria que um script de instalação ou um .debarquivo criasse uma nova entrada no menu de contexto. Quais são os problemas? Onde eu começo ...

  • Ele sempre aparece no submenu Scripts.
  • Não mostra se você não tem nada selecionado.
  • Não permite que você decida se deve mostrar a entrada ou não.
  • Não permite dicas de ferramentas ou títulos diferentes. (talvez eu esteja sendo exigente)

Um bom aplicativo não usa atalhos como esse, porque estraga a experiência do usuário.

python-nautilus

Não é tão fácil de criar quanto as soluções anteriores, mas oferece o melhor dos dois mundos. Script e personalização.

Esta solução permite criar um script python que receba os arquivos selecionados no nautilus e vamos decidir se você deseja mostrar uma entrada ou não e o que fazer com essa entrada. Também permite criar submenus e / ou coisas legais.

A desvantagem é a grande falta de documentação e desenvolvedores que apenas querem adicionar uma entrada podem perder algumas horas para criar um protótipo funcional (em minha pesquisa, encontrei uma solução baseada em C que era muito mais complicada do que isso).

Eu normalmente uso o Código do Visual Studio, enquanto no Windows ele oferece uma entrada no menu de contexto Open with Visual Studio Code , não possui a mesma funcionalidade no Linux. Com a solução Python, seria fácil resolver o problema. Acho que os aplicativos no Linux podem se beneficiar de uma integração com o nautilus.

Espero que esta explicação tenha ajudado a decidir o que escolher.

Ricardo Rodrigues
fonte
Essa é exatamente a razão pela qual eu também queria adicionar um menu de contexto. Você poderia postar sua solução python-nautilus "Abrir com código VS"? Obrigado.
Sharpiro 01/12/18
Cra0zy melhorou a minha versão em uma solução de montagem: gist.github.com/cra0zy/f8ec780e16201f81ccd5234856546414
Ricardo Rodrigues