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:
- Zaznaczamy wybrane zdjęcia w digiKam.
- Ctrl+C
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.

wtorek, 2 grudnia 2008 @ 17:17
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
wtorek, 2 grudnia 2008 @ 18:47
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! :)
niedziela, 8 lutego 2009 @ 22:32
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.
poniedziałek, 9 lutego 2009 @ 8:39
@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ł :)