Skocz do zawartości

[Kde4] Umieszczenie Obrazu (Png,Jpg) W Schowku


3k_PL

Rekomendowane odpowiedzi

Przerasta mnie prosta czynność w KDE4 (Fedora 16), chciałbym zrobić screenshota do schowka (clipboard), bez żadnych wyskakujących okien.

Próbowałem tak:

scrot /tmp/screenshot.jpg; echo /tmp/screenshot.jpg | xclip -selection c

Niestety w schowku (klipper<?>) znajduje się tylko "/tmp/screenshot.jpg". Jeśli zaznaczę "Włącz działanie schowka" to wtedy pojawia mi się okno z wyborem programów i mogę coś zrobić z tym obrazem, ale jest to funkcja działająca globalnie i niepożądana.

 

Użycie ksnapshot i wciśnięcie "Kopiuj" wkleja do schowka screena, tylko jak tego dokonać z wiersza poleceń, albo bez tego wyskakującego okna?

Odnośnik do komentarza
Udostępnij na innych stronach

Ksnapshot musi być uruchomiany, ale można korzystać z dbus np:

qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot #lista dostępnych opcji
qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot slotGrab #robi zrzut
qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot slotCopy #kopiuje do schowka

"Problemem" jest samo zrobienie zrzutu, być może za pomocą grabMode można to zautomatyzować.

Jest jeszcze import - http://www.imagemagi...ript/import.php

Odnośnik do komentarza
Udostępnij na innych stronach

Dzieki za info o qdbus, przyda sie przy innych programach. Niestety, o ile mozna przezyc jedno otwarte okno ksnapshot i wywolywac juz na nim slotGrab, o tyle nie da sie przezyc albo koniecznosci klikniecia:

ksnapshot & sleep 1;  qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot setGrabMode 0; qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot slotGrab; qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot slotCopy

albo koniecznosci zaczekania 1 sekunde:

ksnapshot & sleep 1; qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot setGrabMode 0; qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot setTime 1; qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot slotGrab; qdbus org.kde.ksnapshot-`pidof -s ksnapshot` /KSnapshot slotCopy

Zaraz pobawie sie z importem, ale tu pewnie znowu bedzie problem z klipperem bo nie przyjmuje on niczego innego jak stringa:

qdbus org.kde.klipper /klipper
method void org.kde.klipper.klipper.clearClipboardContents()
method void org.kde.klipper.klipper.clearClipboardHistory()
method QString org.kde.klipper.klipper.getClipboardContents()
method QString org.kde.klipper.klipper.getClipboardHistoryItem(int i)
method QStringList org.kde.klipper.klipper.getClipboardHistoryMenu()
method void org.kde.klipper.klipper.setClipboardContents(QString s)   <<<-------
method void org.kde.klipper.klipper.showKlipperManuallyInvokeActionMenu()
method void org.kde.klipper.klipper.showKlipperPopupMenu()
method QDBusVariant org.freedesktop.DBus.Properties.Get(QString interface_name, QString property_name)
method QVariantMap org.freedesktop.DBus.Properties.GetAll(QString interface_name)
method void org.freedesktop.DBus.Properties.Set(QString interface_name, QString property_name, QDBusVariant value)
method QString org.freedesktop.DBus.Introspectable.Introspect()

Odnośnik do komentarza
Udostępnij na innych stronach

Próbowalem tak:

scrot /tmp/screenshot.jpg; echo /tmp/screenshot.jpg | xclip -selection c

Niestety w schowku (klipper<?>) znajduje sie tylko "/tmp/screenshot.jpg".

echo wypisuje tylko tekst, za to cat wypisuje zawartosc pliku (-;

Spróbuj:

scrot /tmp/screenshot.jpg; cat /tmp/screenshot.jpg | xclip -selection c

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

Spróbuj:

scrot /tmp/screenshot.jpg; cat /tmp/screenshot.jpg | xclip -selection c

Niestety to tez nie dziala. X-y nie pozwalaja na umieszczenie czegokolwiek innego niz text w schowkach wiec trzeba robic obejscia tego. Próbowalem równiez znalezionego skryptu

#! /usr/bin/python
import pygtk
pygtk.require('2.0')
import gtk
import os
import sys
def copy_image(f):
assert os.path.exists(f), "file does not exist"
image = gtk.gdk.pixbuf_new_from_file(f)
clipboard = gtk.clipboard_get()
clipboard.set_image(image)
clipboard.store()

copy_image(sys.argv[1]);

Skrypt ten dziala dla Gnome3 (GTK), ale niestety nie dziala dla KDE.

Odnośnik do komentarza
Udostępnij na innych stronach

W systemie jest kilka schowków. Ostatnio jeden z uzytkowników Archa napisal wlasne narzedzie https://github.com/Cloudef/PKGBUILDS/tree/master/loliclip

W opisie i temacie na forum widze, ze mozna cos robic z obrazkami https://bbs.archlinux.org/viewtopic.php?id=144741

Poza tym jesli chcesz napisac rozwiazanie w Pythonie pod KDE to wydaje sie naturalne skorzystanie z Qt, a nie GTK. Przyklady pewnie znajdziesz na Stack overflow, a jesli chodzi o dokumentacje to ta wydaje sie ok http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qclipboard.html

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...