#1 Le 29/08/2013, à 20:37
- fewad
Nemo / utilisation des extensions nautilus
Bonjour à tous !
Comme beaucoup, je suis récemment passé à Némo après avoir découvert le nouveau Nautilus.
Le truc c'est que j'utilise pas mal d'extensions Nautilus (notamment nautilus-image-converter) et en farfouillant (longtemps) à droite à gauche, j'ai vu (ici, entre autres... et pas d'info contradictoire) qu'une simple copie du fichier de l'extension (depuis /usr/lib/nautilus/extensions-3.0 vers /usr/lib/nemo/extensions-3.0) permettait de faire une "importation" de l'extension voulue.
J'ai essayé, ça n'a pas fonctionné (même après redémarrage de l'ordinateur).
Est ce que quelqu'un a tenté le coup ? Est-ce que ça marche pour de vrai ? Est-ce que j'ai éventuellement raté une étape ? et toutes les questions qui s'ensuivent
Je tourne sous Gnome-Ubuntu 13.04 avec Nemo 1.8.4
Merci pour les coups de mains !
fouad
PS : j'étais tellement content d'avoir trouvé cette astuce, que j'avais même commencer à rédiger une note la dessus pour la documentation, donc si vous avez la suite du schmilblick, je suis même au taquet pour inscrire ça dans le marbre !
Dernière modification par fewad (Le 29/08/2013, à 21:02)
Hors ligne
#2 Le 31/10/2013, à 14:11
- xou816
Re : Nemo / utilisation des extensions nautilus
Salut!
EDIT: Ooops, peut être qu'on parle pas exactement des mêmes extensions. Je pensais aux extensions python... dans ces dossiers: /usr/share/nemo-python/extensions et /usr/share/nautilus-python/extensions à voir pour les autres!
À première vue je dirais qu'il faut "simplement" remplacer toutes les occurences de "Nautilus" par "Nemo" dans les fichiers python des extensions, si on regarde par exemple l'extension compare qui est sous Nautilus et Nemo par exemple:
Pour Nemo:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# nemo-compare --- Context menu extension for Nemo file manager
# Copyright (C) 2011 Guido Tabbernuk <boamaod@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import os
import urllib
import gettext
import locale
from gi.repository import Nemo, GObject, Gio
sys.path.append("/usr/share/nemo-compare")
import utils
class NemoCompareExtension(GObject.GObject, Nemo.MenuProvider):
'''Class for the extension itself'''
# to hold an item for later comparison
for_later = None
def __init__(self):
'''Load config'''
self.config = utils.NemoCompareConfig()
self.config.load()
def menu_activate_cb(self, menu, paths):
'''Telling from amount of paths runs appropriate comparator engine'''
if len(paths) == 1:
self.for_later = paths[0]
return
args = ""
for path in paths:
args += "\"%s\" " % path
cmd = None
if len(paths) == 2:
cmd = (self.config.diff_engine + " " + args + "&")
elif len(paths) == 3 and len(self.config.diff_engine_3way.strip()) > 0:
cmd = (self.config.diff_engine_3way + " " + args + "&")
elif len(self.config.diff_engine_multi.strip()) > 0:
cmd = (self.config.diff_engine_multi + " " + args + "&")
if cmd is not None:
os.system(cmd)
def valid_file(self, file):
'''Tests if the file is valid comparable'''
if file.get_uri_scheme() == 'file' and file.get_file_type() in (Gio.FileType.DIRECTORY, Gio.FileType.REGULAR, Gio.FileType.SYMBOLIC_LINK):
return True
else:
return False
def get_file_items(self, window, files):
'''Main method to detect what choices should be offered in the context menu'''
paths = []
for file in files:
if self.valid_file(file):
path = urllib.unquote(file.get_uri()[7:])
paths.append(path)
# no files selected
if len(paths) < 1:
return
# initialize i18n
locale.setlocale(locale.LC_ALL, '')
gettext.bindtextdomain(utils.APP)
gettext.textdomain(utils.APP)
_ = gettext.gettext
item1 = None
item2 = None
item3 = None
# for paths with remembered items
new_paths = list(paths)
# exactly one file selected
if len(paths) == 1:
# and one was already selected for later comparison
if self.for_later is not None:
# we don't want to compare file to itself
if self.for_later not in paths:
item1 = Nemo.MenuItem(
name="NemoCompareExtension::CompareTo",
label=_('Compare to ') + self.for_later,
tip=_("Compare to the file remembered before")
)
# compare the one saved for later to the one selected now
new_paths.insert(0, self.for_later)
# if only one file selected, we offer to remember it for later anyway
item3 = Nemo.MenuItem(
name="NemoCompareExtension::CompareLater",
label=_('Compare Later'),
tip=_("Remember file for later comparison")
)
# can always compare, if more than one selected
else:
# if we have already remembered one file and add some more, we can do n-way compare
if self.for_later is not None:
if self.for_later not in paths:
# if multi compare enabled and in case of 2 files selected 3way compare enabled
if len(self.config.diff_engine_multi.strip()) > 0 or (len(paths) == 2 and len(self.config.diff_engine_3way.strip()) > 0):
item1 = Nemo.MenuItem(
name="NemoCompareExtension::MultiCompare",
label=_('Compare to ') + self.for_later,
tip=_("Compare selected files to the file remembered before")
)
# compare the one saved for later to the ones selected now
new_paths.insert(0, self.for_later)
# if multi compare enabled, we can compare any number
# if there are two files selected we can always compare
# if three files selected and 3-way compare is on, we can do it
if len(self.config.diff_engine_multi.strip()) > 0 or len(paths) == 2 or (len(paths) == 3 and len(self.config.diff_engine_3way.strip()) > 0):
item2 = Nemo.MenuItem(
name="NemoCompareExtension::CompareWithin",
label=_('Compare'),
tip=_("Compare selected files")
)
if item1: item1.connect('activate', self.menu_activate_cb, new_paths)
if item2: item2.connect('activate', self.menu_activate_cb, paths)
if item3: item3.connect('activate', self.menu_activate_cb, paths)
items = [item1, item2, item3]
while None in items:
items.remove(None)
return items
def get_background_items(self, window, item):
return []
et la version Nautilus:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# nautilus-compare --- Context menu extension for Nautilus file manager
# Copyright (C) 2011 Guido Tabbernuk <boamaod@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import os
import urllib
import gettext
import locale
from gi.repository import Nautilus, GObject, Gio
sys.path.append("/usr/share/nautilus-compare")
import utils
class NautilusCompareExtension(GObject.GObject, Nautilus.MenuProvider):
'''Class for the extension itself'''
# to hold an item for later comparison
for_later = None
def __init__(self):
'''Load config'''
self.config = utils.NautilusCompareConfig()
self.config.load()
def menu_activate_cb(self, menu, paths):
'''Telling from amount of paths runs appropriate comparator engine'''
if len(paths) == 1:
self.for_later = paths[0]
return
args = ""
for path in paths:
args += "\"%s\" " % path
cmd = None
if len(paths) == 2:
cmd = (self.config.diff_engine + " " + args + "&")
elif len(paths) == 3 and len(self.config.diff_engine_3way.strip()) > 0:
cmd = (self.config.diff_engine_3way + " " + args + "&")
elif len(self.config.diff_engine_multi.strip()) > 0:
cmd = (self.config.diff_engine_multi + " " + args + "&")
if cmd is not None:
os.system(cmd)
def valid_file(self, file):
'''Tests if the file is valid comparable'''
if file.get_uri_scheme() == 'file' and file.get_file_type() in (Gio.FileType.DIRECTORY, Gio.FileType.REGULAR, Gio.FileType.SYMBOLIC_LINK):
return True
else:
return False
def get_file_items(self, window, files):
'''Main method to detect what choices should be offered in the context menu'''
paths = []
for file in files:
if self.valid_file(file):
path = urllib.unquote(file.get_uri()[7:])
paths.append(path)
# no files selected
if len(paths) < 1:
return
# initialize i18n
locale.setlocale(locale.LC_ALL, '')
gettext.bindtextdomain(utils.APP)
gettext.textdomain(utils.APP)
_ = gettext.gettext
item1 = None
item2 = None
item3 = None
# for paths with remembered items
new_paths = list(paths)
# exactly one file selected
if len(paths) == 1:
# and one was already selected for later comparison
if self.for_later is not None:
# we don't want to compare file to itself
if self.for_later not in paths:
item1 = Nautilus.MenuItem(
name="NautilusCompareExtension::CompareTo",
label=_('Comparer à ') + self.for_later,
tip=_("Comparer les fichiers sélectionnés aux fichiers mémorisés")
)
# compare the one saved for later to the one selected now
new_paths.insert(0, self.for_later)
# if only one file selected, we offer to remember it for later anyway
item3 = Nautilus.MenuItem(
name="NautilusCompareExtension::CompareLater",
label=_('Comparer plus tard'),
tip=_("Mémoriser pour comparer plus tard")
)
# can always compare, if more than one selected
else:
# if we have already remembered one file and add some more, we can do n-way compare
if self.for_later is not None:
if self.for_later not in paths:
# if multi compare enabled and in case of 2 files selected 3way compare enabled
if len(self.config.diff_engine_multi.strip()) > 0 or (len(paths) == 2 and len(self.config.diff_engine_3way.strip()) > 0):
item1 = Nautilus.MenuItem(
name="NautilusCompareExtension::MultiCompare",
label=_('Comparer à ') + self.for_later,
tip=_("Comparer les fichiers sélectionnés aux fichiers mémorisés")
)
# compare the one saved for later to the ones selected now
new_paths.insert(0, self.for_later)
# if multi compare enabled, we can compare any number
# if there are two files selected we can always compare
# if three files selected and 3-way compare is on, we can do it
if len(self.config.diff_engine_multi.strip()) > 0 or len(paths) == 2 or (len(paths) == 3 and len(self.config.diff_engine_3way.strip()) > 0):
item2 = Nautilus.MenuItem(
name="NautilusCompareExtension::CompareWithin",
label=_('Comparer les fichiers sélectionnés'),
tip=_("Comparer les fichiers sélectionnés")
)
if item1: item1.connect('activate', self.menu_activate_cb, new_paths)
if item2: item2.connect('activate', self.menu_activate_cb, paths)
if item3: item3.connect('activate', self.menu_activate_cb, paths)
items = [item1, item2, item3]
while None in items:
items.remove(None)
return items
Y'a pas mal de ressemblances, et deux trois différences uniquement Avec un peu de chance, ça marche! Je fais des backs up et je teste
Dernière modification par xou816 (Le 31/10/2013, à 14:12)
Hors ligne
#3 Le 18/05/2014, à 11:26
- fewad
Re : Nemo / utilisation des extensions nautilus
Ouais il me semble que ce ne sont pas les mêmes types d'extensions. Ceux que j'aimerai utiliser sont au format .so donc si mes souvenirs de cours d'informatique sont exacts, ce sont des fichiers compilés. Il faudrait donc que je puisse retrouver les sources, les modifier puis les recompiler mais je ne saurai pas faire
Hors ligne
#4 Le 18/09/2014, à 21:06
- corneliux
Re : Nemo / utilisation des extensions nautilus
Bonjour,
Je cherche également un nemo-image-converter ou son petit frère. As-tu trouvé une solution ?
Blogger : http://www.corneliux.fr
Hors ligne
#5 Le 15/10/2014, à 19:59
- fewad
Re : Nemo / utilisation des extensions nautilus
Salut,
Pas plus tard qu'hier je suis tombé là dessus (voir en bas) par hasard.
Les dépots fonctionnent jusqu'à Saucy seulement
et si t'es sous Trusty
En allant à la pèche au fichier deb sur le dépôt c'est possible de l'installer sur Trusty // Par contre il y a quelques dépendances provenant des dépôts Cinnamon à respecter mais deux problèmes :
Je n'ai pas réussi à avoir le menu qui est censé apparaitre (sous gnome en tout cas)
si t'es sous unity ou gnome, l'installation du dépôt en question mettra à jour nemo avec la dernière version de Cinnamon et ne suivra plus les dépôts officiels donc met en place toutes les dépendances originales de nemo et les télécharge à la mise à jour (donc tu te retrouve avec un cinnamon complet d'installé). Autant dire que ça prend du temps à nettoyer (et je suis même pas sur d'avoir tout cleaner)
Bref quoi qu'il en soit, voilà le lien. Bonne chance !
http://www.webupd8.org/2013/12/manipula … -nemo.html
et le site officiel du monsieur (en espagnol) http://www.atareao.es/ubuntu/modificand … age-tools/
Hors ligne