Duplicate possible:
Comment personnaliser le menu contextuel dans Nautilus?
J'essaie de créer une commande Mark as executable
pour le clic droit dans Nautilus pour un flux de travail plus rapide. Je suis venu avec ce script:
#! /bin/bash
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
gksudo "chmod +x $file" &
done
Comment puis-je obtenir que cela fonctionne bien. J'ai actuellement un fichier .sh
et je ne sais pas où le mettre.
Enregistrez simplement ce fichier sous "Marquer comme exécutable", rendez-vous exécutable et déposez-le dans ~/.gnome2/nautilus-scripts
Il apparaîtra dans le menu contextuel, dans le sous-menu Scripts
Vous voudrez peut-être supprimer la gksudo
de là si vous prévoyez de marquer comme exécutables uniquement les fichiers que vous possédez (dans votre répertoire personnel). Sinon, chaque fois que vous exécutez le script via le menu contextuel, vous demander un mot de passe ...
MAIS le script que vous avez là-haut ne fonctionnera pas pour les fichiers contenant des espaces dans leur nom de fichier. Pour que cela fonctionne pour eux, vous devez modifier le script comme suit:
#!/bin/bash
IFS_BAK=$IFS
IFS="
"
for line in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
if [[ "$line" = "" || "$line" = " " ]]; then
exit
else
chmod +x "$line"
fi
done
IFS=$IFS_BAK
IFS_BAK=
AUSSI, vous pouvez avoir votre propre entrée pour votre truc "Marquer comme exécutable". Toutefois, pour cela, vous devrez installer le paquet python-nautilus:
Sudo apt-get install python-nautilus
Enregistrez ensuite ce fichier sous le nom mark_as_executable.py
sous ~/.local/share/nautilus-python/extensions/
:
#!/usr/bin/env python
# -*- coding: utf8 -*-
from gi.repository import Nautilus, GObject, Gio
from os import system
import urllib
class BackgroundImageExtension(GObject.GObject, Nautilus.MenuProvider):
def __init__(self):
print 'Mark as executable extensions is being initialized'
def menu_activate_cb(self, menu, file):
if file.is_gone():
return
system("chmod +x '"+urllib.unquote(file.get_uri()[7:])+"' &")
def get_file_items(self, window, files):
if len(files) != 1:
return
file = files[0]
if file.get_uri_scheme() != 'file':
return
item = Nautilus.MenuItem(name='Nautilus::set_executable_bit', label='Mark as executable', tip='Add the executable bit to the selected file')
item.connect('activate', self.menu_activate_cb, file)
return item,
Ce qui précède ne fonctionnera également que pour des fichiers individuels. Si vous souhaitez ajouter la prise en charge de plusieurs fichiers, vous devez le coller dans le script python, bien que:
#!/usr/bin/env python
# -*- coding: utf8 -*-
from gi.repository import Nautilus, GObject, Gio
from os import system
import urllib
class BackgroundImageExtension(GObject.GObject, Nautilus.MenuProvider):
def __init__(self):
print 'Mark as executable extensions is being initialized'
def menu_activate_cb(self, menu, file):
if file.is_gone():
return
system("chmod +x '"+urllib.unquote(file.get_uri()[7:])+"' &")
def get_file_items(self, window, files):
item = Nautilus.MenuItem(name='Nautilus::set_executable_bit', label='Mark as executable', tip='Add the executable bit to the selected file')
for yourfile in files:
if yourfile.get_uri_scheme() != 'file':
return
item.connect('activate', self.menu_activate_cb, yourfile)
return item,
Pour pouvoir utiliser cette fonctionnalité, vous devrez également redémarrer Nautilus:
nautilus -q
puis ouvrez une fenêtre Nautile.