Il suffit d'enregistrer ce fichier en tant que 'Marquer comme exécutable', de le rendre exécutable lui-même et de le déposer dans ~/.gnome2/nautilus-scripts
. Il sera affiché dans votre menu contextuel, sous le sous-menu Scripts
Vous voudrez peut-être supprimer le gksudo
de là si vous envisagez de marquer comme exécutable uniquement les fichiers que vous possédez (sous votre répertoire personnel), sinon, chaque fois que vous exécutez le script via le menu contextuel, il vous demandera un mot de passe...
MAIS le script que vous avez là-haut ne fonctionnera pas pour les fichiers qui contiennent des espaces dans leur nom de fichier. Pour les faire fonctionner 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=
DE PLUS, vous pouvez avoir votre propre entrée pour votre machin "Marquer comme exécutable". Mais, pour activer cela, vous devrez installer le paquet python-nautilus :
sudo apt-get install python-nautilus
Ensuite, enregistrez 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='Marquer comme exécutable', tip='Ajouter le bit exécutable au fichier sélectionné')
item.connect('activate', self.menu_activate_cb, file)
return item,
Ce qui précède ne fonctionnera que pour des fichiers uniques également, si vous souhaitez ajouter la prise en charge de plusieurs fichiers, vous devez coller ceci à l'intérieur du script python, cependant :
#!/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='Marquer comme exécutable', tip='Ajouter le bit exécutable au fichier sélectionné')
for yourfile in files:
if yourfile.get_uri_scheme() != 'file':
return
item.connect('activate', self.menu_activate_cb, yourfile)
return item,
Pour pouvoir utiliser la fonctionnalité, vous devrez également redémarrer nautilus :
nautilus -q
et puis ouvrez une fenêtre nautilus.