Kopiowanie zdjęć z digiKama do Nautilusa

digiKam należy do moich ulubionych programów, mam z nim jednak jeden poważny problem — nie potrafię go zintegrować z GNOME-owym Nautilusem. W szczególności daje to o sobie znać, gdy chcę wydrukować zdjęcia w fotolabie albo po prostu skopiować je komuś na pendrive’a. Otóż digiKam pozwala mi otagować zdjęcia (np. „Do wydruku”), ale cóż z tego, jeżeli otagowanych zdjęć nie mogę skopiować na nośnik? Zwykłe Ctrl+C i Ctrl+V nie działa, gdyż najwyraźniej Nautilus i digiKam różnie podchodzą do kwestii przechowywania plików w schowku. Szukałem czegoś w opcjach digiKama, ale znalazłem tylko możliwość wypalenia płyty, a przecież nie o to mi chodzi. Wiem, że, przynajmniej kiedyś, tagi digiKama można było za pomocą odpowiedniego protokołu przeglądać w Konquerorze, nic mi jednak nie wiadomo na temat podobnych możliwości w Nautilusie.

Miałem więc do wyboru: kombinować i googlować, lub napisać skrypcik, który od ręki rozwiąże problem. I tak powstał DigikamCopier (żeby było zabawniej, niedługo po wydaniu RiverCopiera).

Skrypcik poniżej. Sposób użycia:

  1. Zaznaczamy wybrane zdjęcia w digiKam.
  2. Ctrl+C
  3. digikamcopier.py '/media/disk/Zdjęcia z wakacji'
#!/usr/bin/env python
#-*- coding: utf-8 -*-
 
import os,sys,shutil
import pygtk
pygtk.require('2.0')
import gtk
 
# ustalamy, gdzie kopiować
if len(sys.argv)==2:
	CEL=sys.argv[1] # ścieżka podana jako argument
else:
	CEL="/tmp" # domyślna ścieżka
 
# odczytujemy zawartość schowka jako tekst i tworzymy tablicę plików
pliki=gtk.clipboard_get().wait_for_text().split("\n")
 
# kopiujemy
for row in pliki:
	if row: # ignorujemy ostatnią pustą linię
		sciezka=row[7:] # wycinamy file://
		nowaSciezka=os.path.join(CEL,os.path.split(sciezka)[1])
		print("Kopiuję '%s' -> '%s'" % (sciezka,nowaSciezka))
		shutil.copy(sciezka,nowaSciezka)

(Dostęp do schowka realizuję z użyciem pyGTK, gdyż metoda z xsel nie chciała mi zadziałać. Zainteresowanych tymi szczegółami odsyłam tutaj.)

Oczywiście, jeżeli ktoś zna prostsze rozwiązanie problemu kopiowania zdjęć z digiKam w GNOME, proszę o komentarz.

Komentarzy: 4 do „Kopiowanie zdjęć z digiKama do Nautilusa“

  1. shiny komentuje:

    Tak z ciekawosci, probowales metoda drag’n'drop? Pamietam ze czesc aplikacji pod gtk/qt sobie z tym radzila (chodzi mi o kopiowanie nawzajem).

    Poz

  2. vmario komentuje:

    No przecież! Tak często rezygnuję z myszki na rzecz klawiatury, że zapomniałem o drag’n'drop. Używanie skryptu mija się zatem z celem, chyba, że chcemy na zdjęciach wykonywać jakieś bardziej złożone operacje niż kopiowanie.

    Dzięki, shiny! :)

  3. dreamer komentuje:

    Wielkie dzięki za ten skrypt.
    Jest o tyle lepszy od drag’n'drop, że działa na zasadzie kopiowania a nie przenoszenia, więc nie wywala zdjęć z oryginalnych folderów jak przeciąganie.
    Zrobiłem sobie do niego aktywator i już eksportowanie jest banalne jak np. w Picasie (ta linuksowa działa fatalnie)

    Jeszcze raz wielkie dzięki.

  4. vmario komentuje:

    @dreamer: Możesz spróbować drag’n'drop z wciśniętym przyciskiem Ctrl, co powinno zapewnić kopiowanie zamiast przenoszenia. Jeżeli jednak, mimo wszystko, wygodniej jest Ci posługiwać się moim skryptem, to cieszę się bardzo, że się komuś przydał :)

Dodawanie komentarzy

XHTML: Możesz używać tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">