Xournal + Screenshot // Screen Capture

Um schnell und einfach ein Screenshot-Bereich in Xournal einzubinden, habe ich mir folgendes Script geschrieben:

#!/bin/bash
#place and name to store tmp picture
PICTURE=/tmp/picture.png
#get window id of active window
winid=`xdotool getactivewindow`
#hide this window
xdotool windowunmap $winid
#creat screen capture
import $PICTURE
#copy picture into clipboard by external python tool
python ~/scripte/imgclip.py $PICTURE
#show last active window 
xdotool windowmap $winid

Dieses Script versteckt das derzeitige Aktive-Fenster (bei mir dann Xournal), öffnet ein Tool um ein Bildschirmausschnitt zu erstellen, welches als Bild im Tmp-Verzeichnis abgelegt wird. Ein externes Python-Script kopiert dann dieses Bild in den Zwischenspeicher. Zum Schluss wird das vorhin aktive Fenster wieder angezeigt.

Anmerkung: Damit das gut funktioniert, muss z.B. ein entsprechendes PDF eine Ebene unter Xournal geöffnet sein.

Hier ist das Python Script imgclip.py , welches ich mir von hier geklaut habe: http://www.cheshirekow.com/wordpress/?p=435

#! /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]);

Ich gehe davon aus, dass beide Scripte hier liegen: ~/scripte/. Ist das nicht der Fall, muss der Pfad im Bash-Script angepasst werden.

Damit das Script funktioniert, muss folgendes Tool aus dem Repository installiert werden:

sudo apt-get install xdotool

Getestet habe ich das mit Ubuntu 12.04 LTS, mit anderen Version wird es aber sicher auch funktionieren.

Anmerkung: Nicht vergessen beide Scripte per chmod +x „script_name“ ausführbar zu machen.

Um das Script selber gut ausführen zu können, kann man sich das auf eine Taste legen oder als Anwendung in den Unity-Launcher ziehen. Um letzteres zu machen, muss man unter ~/.local/share/applications/ eine Datei screencapture.desktop mit folgendem Inhalt anlegen:

[Desktop Entry]
Name=ScreenCapture
Comment=
Exec=~/scripte/screenCapture
Icon=kig
Terminal=false
Type=Application
StartupNotify=true

Den Exec-Pfad muss man vielleicht noch anpassen.
Wenn man jetzt im Dashboard nach „ScreenCapture“ sucht, kann man diese Anwendung wie gewohnt in den Unity-Launcher ziehen und aufrufen.

Hinterlasse eine Antwort

Deine Email-Adresse wird niemals veröffentlicht. Pflichtfelder sind mit * gekennzeichnet.