Screenshot erstellen

Aus PandoraWiki

Wechseln zu: Navigation, Suche

Um auf der Pandora einen Screenshot zu erstellen gibt es das Programm fbgrab, welches über das Terminal aufgerufen wird. Da der Aufruf über die Konsole für den normalen Gebrauch eher unpraktisch ist, gibt es die Möglichkeit ein Shell Skript zu nutzen. Wie so ein Skript aussieht und funktioniert, wird in den folgenden Schritten erläutert.

Inhaltsverzeichnis

Schritt 1: Erstellen des Skriptes

Öffne einen Text-Editor nach deiner Wahl. Als Beispiel kann hier Mousepad genutzt werden. Als nächstes schreibe folgenden Text in das Dokument und speichere es an einen gewünschten Ort als snapsnap.sh (der Name kann natürlich auch je nach Wunsch anders lauten, solange die Dateiendung .sh vorhanden ist).

#!/bin/bash
fbgrab ~/screen`date +%y%m%d-%H%M%S`.png
notify-send snapsnap


Erläuterung zum Skript:

#!/bin/bash

Die erste Zeile unseres Skriptes definiert mit welcher Shell das Skript ausgewertet werden soll. Auch wenn normalerweise das #-Zeichen ein Kommentar einleitet, wird diese Zeile trotzdem ausgewertet, jede weitere darauf folgende Zeile die mit dem #-Zeichen beginnt, ist ein Kommentar und wird beim Ausführen des Skriptes übersprungen.

Fbgrab
Hierbei handelt es sich um ein Programm, welches die aktuell angezeigten Pixel aus dem Grafikspeicher holt und als Bild abspeichert.

~/
Das ist ein Kürzel welches auf das aktuelle Home-Verzeichnis zeigt.

date +%y%m%d-%H%M%S
Diese Funktion holt dich das aktuelle Datum. Da bei jedem Screenshot das Datum um min eine Sekunde inkrementiert wird, wird immer ein neues Bild gespeichert und kein Altes überschrieben. Die hier verwendete Kombination, erzeugt ein Datum im folgenden Format; Jahr, Monat, Tag - Stunde, Minute, Sekunde.

notify-send snapsnap
Hierbei handelt es sich um ein weiteres Programm, welches die gewünschte Nachricht nach notify-send per Pop-Up anzeigt. So wird nach jedem erfolgreichen Screenshot ein Pop-Up mit dem Text snapsnap angezeigt. So ist sichergestellt, dass der Screenshot korrekt erstellt wurde.

Schritt 2: Das Skript im NAND speichern:

Als erstes ist es wichtig das Skript ausführbar zu machen. Um diesen Schritt zu erledigen navigieren wir im Dateibrowser Thunar, in den Ordner in dem das Skript gespeichert wurde, und klicken rechts neben die Icons in den weißen Bereich und gehen auf „Open Terminal here“. Alternativ kann auch über das Terminal mit dem cd-Kommando zum jeweiligen Ordner navigiert werden.

Hier geben wir dann folgende Befehle ein, um erstens das Skript für alle Benutzer zugreifbar zu machen.

chmod ugo+rwx snapsnap.sh

Zudem ermöglichen wir dem aktuellen Benutzer, mit dem nächsten Befehl, das ausführen zu dürfen.

chmod +x snapsnap.sh

Erläuterung zu diesen 2 Befehlen:

chmod
Hierbei handelt es sich um ein Programm, welches uns ermöglicht Benutzerrechte für die angegebene Datei, zu vergeben.

ugo
Mit diesem Kommando teilen wir chmod mit, dass wir die Rechte für den Benutzer (u = user), für die Benutzergruppe (g = group), so wie jedem außerhalb der Benutzergruppe (o = other), ändern möchten.

+
Hiermit setzen wir alle Rechte auf „Erlauben“.

rwx
Diesen Befehl benutzen wir, um Lese- (r = read), Schreib- (w = write) und Ausführungsrechte (x = execute) der angegeben Datei zu erhalten.

An dieser Stelle testen wir das Skript noch schnell, um sicher zu stellen, dass wir keinen Fehler begangen haben. Führe das Skript daher mit folgendem Befehl aus.

./snapsnap.sh

Schritt 3: Das Skript installieren

Um das Skript von jeder Stelle des Systems ausführen zu können, muss das Skript in den /usr/bin Ordner des Systems kopiert werden, welches sozusagen das Heimverzeichnis für Skripte ist. Hierbei hilft uns der cp Befehl.

sudo cp snapsnap.sh /usr/bin/snapsnap

sudo (superuser do)
sudo gibt dir nach der Eingabe des Passwortes die kompletten Admin-Rechte, sodass man auch in Systemordnern rumhantieren kann. Sudo gilt dabei nur für den gerade ausgeführten Befehl, nachdem Ausführen des Befehls besitzt man daher wieder die normalen Benutzerrechte. Um das Skript jetzt auszuführen reicht die einfache Eingabe von snapsnap in das Terminal. Egal in welchem Verzeichnis man sich zur Zeit befinden.

Schritt 4: Tastenkürzel für das Skript anlegen

Um das Skript mit einer einfachen Tastenkombination aufzurufen, muss diese Kombination erstmal in den Einstellungen des Systems eingegeben werden.

  1. Hierfür geht man einfach über das Menü, auf Settings > Keyboard.
  2. Nachdem sich das Fenster geöffnet hat, klickt man auf das Tab Application Shortcuts.
  3. Als nächstes schiebt man das Fenster mit gedrückter linken Schultertaste (L) nach oben und fügt mit Add ein neues Tastenkürzel hinzu.
  4. In dem neuen Fenster „Shortcut Command“ gibt man einfach bei „Command:“ sein Skriptname snapsnap ein und bestätigt dies mit OK.
  5. Jetzt darf sich einige beliebige Kombination ausgesucht werden. Hierbei sollte darauf geachtet werden, dass die Kombination nicht schon anderweitig genutzt wurde, so dass man sein Skript nicht ausversehen ausführt. Eine gute Kombination ist dabei CTRL+ALT+S.

Quelle zur Original-Anleitung: http://www.gp32x.com/board/index.php?/topic/54397-guide-screenshots/ (Englisch)

Hinweise zum 1. Skript:

  1. Alle Screenshots werden im Home-Verzeichnis des gerade aktiven Nutzers gespeichert. Je nach Anzahl der erstellen Screenshots, kann es dort recht „unordentlich“ werden.
  2. Leider gibt es mit dieser Methode noch ein paar Probleme. So kann das Skript nicht in Emulatoren oder Programmen genutzt werden, die die Tastatur für sich beanspruchen. In diesem Fall bekommt das System nichts von der gerade ausgeführten Tastenkombination mit und erstellt daher auch keinen Screenshot.
  3. Ein weiterer Nachteil ist das permanente Speichern der Screenshots in den NAND-Speicher. Wobei dieser trotz intensiver Nutzung nach Jahren immer noch unbeschadet bleibt, wollte ich auf diesen Punkt hinweisen.

Mögliche Abwandlungen des Skriptes:

Um jetzt trotzdem Screenshots innerhalb eines Emulators/Spiels auf der Pandora erstellen zu können, gibt es die Möglichkeit das Skript so abzuändern, dass zum Beispiel alle 20 Sekunden ein Screenshot erstellt wird. Das soll das Skript solange machen bis eine vorgegebene Anzahl von Screenshots erstellt wurde.

#!/bin/bash
echo Anzahl von Screenshots:
read sn
echo Wartezeit in s nach einem Screenshot
read t
i=1
while [ $i -le $sn ]
do
sleep $t
fbgrab screen`date +%y%m%d-%H%M%S`.png
notify-send screen $i
i=`expr $i + 1`
done

echo
Mit diesem Befehl kann man sich im Terminal den darauffolgenden Text anzeigen lassen. In diesem Fall ist das besonders nützlich um zu erfahren, was für eine Information das Skript haben möchte.

read
Liest den eingegebenen Wert ein und verarbeitet diesen im Skript.

sleep
Mit diesem Befehl kann man das Skript für die angegebene Zeit warten lassen. Erst nach dieser bestimmten Zeit, wird das Skript weiter ausgeführt.

$t
In diese Variable wird die Zeit gespeichert, die man vorher beim Ausführen des Skriptes eingegeben hat.

while [ $i -le $sn ]
Hierbei handelt es sich um eine While-Schleife die solange die darin befindlichen Befehle ausführt bis die Variable $i größer, als der zu Anfang angegeben Anzahl von Screenshots, ist.

i=`expr $i + 1`
Inkrementiert den Wert bzw. die Variable $i nach jedem Durchlauf der While-Schleife um 1.

Hinweise zum 2. Skript:

  1. Dieses Skript funktioniert nicht im Playstation-Emulator „psx4pandora“. Hier werden nur schwarze Bilder erstellt, da hier anscheinend keine aktuellen Bilder im Framebuffer vorhanden sind.
  2. Da das Skript dauerhaft ausgeführt wird, kann es zu Performance-Einbrüchen kommen, sodass das jeweilige Programm ein wenig langsamer läuft.
  3. Achtung: Das Skript kann auf die SD-Karte gespeichert werden, da hier das ~/ im Skript entfernt wurde. Screenshots werden also in dem Ordner gespeichert, in dem das Skript liegt.
  4. Achtung: Das Skript kann per sh snapsnap.sh im Terminal ausgeführt werden. Dafür muss man sich aber in dem Ordner befinden, in dem das Skript liegt.