Comment personnaliser le menu contextuel dans Nautilus?

29

De temps en temps, je trouve des idées d'actions que j'aimerais avoir disponibles dans le menu contextuel de Nautilus. Comment puis-je les ajouter là-bas? Existe-t-il quelque chose comme un plugin Thunar UCA pour Nautilus?

Ivan
la source
pour "Créer un nouveau document" sur un clic droit, référez-vous à ce askubuntu.com/questions/777711/…
HMagdy

Réponses:

25

La réponse ci-dessous est obsolète: une réponse récemment mise à jour est celle-ci .


Les menus contextuels de Nautilus étaient auparavant personnalisables par les extensions Nautilus . Soyez averti que ce lien mène à un document archivé; Les développeurs Gnome ont supprimé cette documentation et ne prennent plus en charge ce type de personnalisation. Cela peut quand même fonctionner.

Vous pouvez également placer des scripts shell simples sous le répertoire ~/.local/share/nautilus/scripts( ~/.gnome2/nautilus-scriptsdans les premières versions), et ils apparaîtront dans le menu contextuel du fichier sous le sous-menu Scripts .

ulidtko
la source
3
Veuillez noter que, comme indiqué dans askubuntu.com/questions/281062/… si vous êtes sur ubuntu 13.04 qui utilise une version plus récente de Nautilus, vous êtes censé utiliser un ~/.local/share/nautilus/scriptsdossier pour y mettre vos scripts. Et même alors, il affichera uniquement les scripts lorsque vous faites un clic droit sur un fichier ou un dossier et non sur un espace vide.
Logan
2
n'est-ce pas dépassé?
@cipricus c'est. Répondu en 2011, il y a 6 ans . 12 versions d'Ubuntu antérieures.
ulidtko
la question n'est pas marquée comme spécifique à l'édition et il y a des réponses très récentes
@dessert - Je ne vois aucun intérêt à ajuster la question à une réponse obsolète simplement parce que cette réponse a été marquée comme définitive dans le passé. Cela rendrait la réponse mise à jour (et la plus votée) hors de propos ici, alors que la voie à suivre serait de simplement marquer cette dernière réponse comme définitive. - Une autre façon de procéder serait d'ajouter une courte modification à la réponse définitive désormais obsolète reliant à la mise à jour: ce que je viens de faire.
30

Mise à jour pour Ubuntu 18.04

À la date de sortie d'Ubuntu 18.04, Nautilus-Actions n'était / n'est plus disponible. Il semble également avoir été remplacé par un nouveau programme, appelé Filemanager-Actions, qui par ailleurs semble identique.


Pour installer ce programme, consultez cette solution.


Actions Nautilus

Nous pouvons définir nos propres éléments de menu contextuel avec un clic droit avec des actions nautilus Installez nautilus-actions .

  • Exécutez l' outil de configuration Nautilus-Actions à partir du tableau de bord ou d'un terminal avec

    nautilus-actions-config-tool
    

entrez la description de l'image ici

  • Dans l' onglet Action, donnez à votre action une étiquette sensible, par exemple "Ouvrir dans Terminator" et choisissez de l'afficher dans la sélection ou le menu contextuel.

  • Ouvrez ensuite l' onglet Commande pour entrer les commandes à exécuter

entrez la description de l'image ici

  • Donnez le chemin complet à vos /usr/bin/command_to_runoptions de commande ( ) et de programme.

  • Après vous être déconnecté et reconnecté, le menu contextuel du clic droit ci-dessous s'affiche:

entrez la description de l'image ici


Takkat
la source
1
Est-ce toujours à jour?
RolandiXor
2
Nautilus Actions fonctionne comme prévu en 12.04
Takkat
11

On peut utiliser l' extension python-nautilus comme alternative à nautilus-actions.

À installer:

sudo apt-get install python-nautilus

Un exemple simple:

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,

Copiez ce script python sous ~/.local/share/nautilus-python/extensionset redémarrez nautilus. Lorsque vous faites un clic droit sur le bureau et sélectionnez votre élément, votre commande bash simple sera exécutée :)

mnrl
la source
vous devrez peut-être créer des dossiers nautilus-pythonet extensionss'ils ne sont pas là.
souravc
J'ai essayé la plupart des solutions de cette rubrique et j'ai trouvé que la solution python était la meilleure. Bien qu'il ne soit pas parfait, principalement en raison du manque de documentation, il permet des scripts et une portabilité plus flexibles.
Ricardo Rodrigues
3

Si vous voulez pouvoir faire quelque chose à tout moment, faites comme ulidtko et utilisez ~/.gnome2/nautilus-scripts.

Si vous voulez pouvoir personnaliser quand vous le voyez, installez le paquet nautilus-actions, puis allez dans Système-> Préférences-> Configuration des actions Nautilus.

zpletan
la source
3

29 novembre 2016 ère Ubuntu 14.04, 16.04 et 16.10 ainsi que les versions antérieures.

Voir les instructions Nautilus pour créer votre propre script ici ( Aide Ubuntu - Scripts Nautilus Comment faire ). Fondamentalement, vous:

  • Accédez au répertoire ~/.local/share/nautilus/scripts/
  • Placez-y votre script (écrit en Bash, Perl ou Python).
  • Marquer le script comme exécutable à l'aide de Nautilus ou du terminal avec chmod +x script_name
  • Nautilus met des variables d'environnement à la disposition de votre script: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI et NAUTILUS_SCRIPT_WINDOW_GEOMETRY

Il existe des exemples de scripts situés dans ( Aide Ubuntu - Exemples de scripts Nautilus ) pour envoyer des fichiers par courrier électronique, monter un fichier ISO, définir des fichiers en lecture seule, éditer un fichier avec les privilèges gedit ROOT, ouvrir le terminal à l'emplacement actuel, etc.

Parcourez les scripts et prenez-en un comme modèle pour chiffrer les fichiers, les télécharger sur le cloud, les compresser pour les sauvegarder ou tout ce que vous devez faire.

WinEunuuchs2Unix
la source
2

TL; DR

La meilleure solution pour les développeurs d'applications est d'utiliser python-nautilus .

Créez votre script python ( exemples suivants et mauvaise documentation ) et copiez-le dans le bon dossier:

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

Explication détaillée

Disons que vous voulez créer une application que l'utilisateur installe avec un script ou un .debfichier, dans cet esprit, je vais expliquer pourquoi je pense que python-nautilusc'est une meilleure solution par rapport aux actions nautilus et aux scripts nautilus .

Actions Nautilus

C'est la seule solution à proposer une interface graphique et permet donc de créer facilement un comportement complexe, par exemple décider quelles entrées de menu afficher si le type MIME du fichier sélectionné est text/plain.

Le principal problème avec cette solution est qu'il n'est pas facile (si possible) d'importer les entrées sur un autre ordinateur sans l'outil de configuration et l'utilisateur l'important, disons simplement qu'il ne serait pas possible de le faire avec un script.

Scripts Nautilus

C'est la solution la plus simple, prenez un script, placez-le dans un dossier et c'est fait. Cela permettrait certainement à un script d'installation ou à un .debfichier de créer une nouvelle entrée dans le menu contextuel. Quels sont les problèmes? Où est-ce que je commence...

  • Il apparaît toujours sous un sous-menu Scripts.
  • Il ne s'affiche pas si vous n'avez rien sélectionné.
  • Il ne vous permet pas de décider si vous devez afficher l'entrée ou non.
  • N'autorise pas les info-bulles ou différents titres. (peut-être que je suis difficile)

Une bonne application n'utilise pas de raccourcis comme celui-ci, car elle ruine l'expérience utilisateur.

python-nautilus

Pas aussi facile à créer que les solutions précédentes, mais offre le meilleur des deux mondes. Script et personnalisation.

Cette solution vous permet de créer un script python qui reçoit les fichiers sélectionnés dans nautilus et vous laisse décider si vous souhaitez afficher une entrée ou non et quoi faire avec cette entrée. Il vous permet également de créer des sous-menus et / ou des trucs sympas.

L'inconvénient est le grand manque de documentation et les développeurs qui veulent simplement ajouter une entrée peuvent se retrouver à perdre quelques heures pour créer un prototype fonctionnel (dans mes recherches, j'ai trouvé une solution basée sur C qui était bien plus compliquée que cela).

J'utilise normalement Visual Studio Code, tandis que sous Windows, il propose une entrée de menu contextuel Open with Visual Studio Code, il manque les mêmes fonctionnalités sous Linux, avec la solution Python, il serait facile de résoudre le problème. Je pense que les applications sous Linux pourraient bénéficier d'une intégration nautilus.

J'espère que cette explication vous a aidé à décider quoi choisir.

Ricardo Rodrigues
la source
C'est exactement la raison pour laquelle je voulais également ajouter un menu contextuel. Pourriez-vous peut-être publier votre solution python-nautilus "Ouvrir avec VS Code"? Merci.
Sharpiro
Cra0zy a amélioré ma version en une solution adaptée: gist.github.com/cra0zy/f8ec780e16201f81ccd5234856546414
Ricardo Rodrigues