De temps en temps, je propose des idées d’actions que je souhaiterais voir figurer dans le menu contextuel de Nautilus. Comment puis-je les ajouter là? Existe-t-il un plugin Thunar UCA pour Nautilus?
La réponse ci-dessous est obsolète: une réponse récemment mise à jour est celle-ci .
Les menus contextuels de Nautilus étaient personnalisables avec extensions de Nautilus . Soyez averti que ce lien mène à la documentation archivée; Les développeurs Gnome ont supprimé cette documentation et ne prennent plus en charge ce type de personnalisation. Cela peut quand même marcher.
Vous pouvez également placer des scripts Shell simples dans le répertoire ~/.local/share/nautilus/scripts
(~/.gnome2/nautilus-scripts
dans les versions précédentes). Ils apparaîtront dans le menu contextuel du fichier sous le sous-menu Scripts .
À la date de publication Ubuntu 18.04, Nautilus-Actions était/n'est plus disponible. Il semble également avoir été remplacé par un nouveau programme, appelé Filemanager-Actions, qui semble sinon identique.
Pour installer ce programme, voir la solution this .
Nous pouvons définir nos propres éléments de menu contextuel par clic droit avec nautilus-actions .
Exécutez le Outil de configuration Nautilus-Actions à partir du tableau de bord ou d'un terminal avec
nautilus-actions-config-tool
Dans l'onglet Action, attribuez à votre action une étiquette sensible, par exemple: "Open in Terminator" et choisissez de l'afficher dans la sélection ou dans le menu contextuel.
Ouvrez ensuite l’onglet Commande pour entrer les commandes à exécuter.
Indiquez le chemin complet de votre commande (/usr/bin/command_to_run
) et des options du programme.
Après la déconnexion et l'entrée , le menu contextuel du clic droit ci-dessous s'affiche:
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/extensions
et 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 :)
29 novembre 2016 ère Ubuntu 14.04, 16.04 et 16.10 plus les versions antérieures.
Voir les instructions de Nautilus pour créer votre propre script ici ( Aide Ubuntu - Scripts Nautilus Comment) ). En gros vous:
~/.local/share/nautilus/scripts/
chmod +x script_name
Des exemples de scripts sont disponibles à l'adresse ( Aide Ubuntu - Exemples de scripts Nautilus ) pour l'envoi de fichiers par courrier électronique, le montage d'un fichier ISO, la définition des fichiers en lecture seule, la modification du fichier avec les privilèges gedit ROOT, l'ouverture du terminal à l'emplacement actuel. , etc.
Parcourez les scripts et utilisez-en un pour chiffrer des fichiers, les télécharger dans le cloud, les compresser pour les sauvegarder ou tout autre travail à effectuer.
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.
La meilleure solution pour les développeurs d'applications consiste à utiliser python-nautilus .
Créez votre script python ( suivantexemples et mauvais documentation ) et copiez-le dans le bon dossier:
mkdir -p ~/.local/share/nautilus-python/extensions && cp script.py ~/.local/share/nautilus-python/extensions
Supposons que vous souhaitiez créer une application que l'utilisateur installe avec un script ou un fichier .deb
. Dans cet esprit, je vais expliquer pourquoi je pense que python-nautilus
est une meilleure solution par rapport à nautilus-actions et le scripts nautile .
Cette solution est la seule à offrir une interface graphique et facilite donc la création de comportements complexes, 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 de cette solution est qu’il n’est pas facile (voire possible) d’importer les entrées sur un autre ordinateur sans l’Outil de configuration et l’utilisateur qui l’importe, disons simplement qu’il ne serait pas possible de le faire avec un script.
C’est la solution la plus simple: choisir un script, le placer dans un dossier et le faire. Cela permettrait certainement à un script d'installation ou à un fichier .deb
de créer une nouvelle entrée dans le menu contextuel. Quels sont les problèmes? Où est-ce que je commence...
Une bonne application n'utilise pas de raccourcis comme celui-ci, car elle gâche l'expérience utilisateur.
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 permet de 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 choses cool.
L'inconvénient est le grand manque de documentation et de développeurs qui veulent juste ajouter une entrée risquent de perdre quelques heures pour créer un prototype fonctionnel (In mes recherches, j’ai trouvé une solution basée sur C qui était bien plus compliquée que cela).
J'utilise normalement le code Visual Studio, alors que sous Windows, il offre une entrée de menu contextuel Open with Visual Studio Code
, il lui manque la même fonctionnalité sous Linux. Avec la solution Python, il serait facile de résoudre le problème. Je pense que les applications Linux pourraient bénéficier d’une intégration Nautilus.
J'espère que cette explication vous a aidé à décider quoi choisir.