Ohne zusätzliche Pakete und Bibliotheken ist es unter LXDE schwierig, einen Screenshot zu erstellen. Hier gibt es eine „Minimal“-Anleitung 😉
Als erstes benötigen wir die Pakete x11-apps (ist zu 99,9% schon installiert) und Imagemagick.
apt-get install x11-apps imagemagick
Das Paket x11-apps beinhaltet das Tool xwd , welches unseren Screenshot macht, aber nur als xwd-Datei abspeichern kann. Deshalb konvertieren wir das Bild (in diesem Fall Imagemagick) in eine PNG. Sofern man eine andere Software nehmen will, um xwd-Dateien nach PNG oder JPG zu konvertieren, kann man das natürlich gern tun.
Dann schreiben wir uns ein kleines Skript, welches entweder einen gesamten Screenshot macht, oder ein einzelnes Fenster „fotografiert“, abhängig vom Parameter „-s“:
$ cat <<EOF > /usr/local/bin/myscreenshot.sh
> #!/bin/sh
>
> MYSCREENSHOT_FILE="screenshot_$(date +%Y-%m-%d-%H-%M-%S)"
> MYSCREENSHOT_PREFIX=0
>
> echo $SCREENSHOT_FILE
>
> while [ -e "~/${MYSCREENSHOT_FILE}_${MYSCREENSHOT_PREFIX}.png" ]; do
> MYSCREENSHOT_PREFIX=$((MYSCREENSHOT_PREFIX + 1))
> done
>
> if [ $# -gt 0 ] && [ "$1" = "-s" ]; then
> xwd | convert - ${MYSCREENSHOT_FILE}_${MYSCREENSHOT_PREFIX}.png
> else
> xwd -root | convert - ${MYSCREENSHOT_FILE}_${MYSCREENSHOT_PREFIX}.png
> fi
> EOF
Damit wir das Programm nicht händisch starten müssen, können wir uns bei LXDE ein Tastenkürzel definieren. Dazu muss man einfach die Datei ~/.config/openbox/lxde-rc.xml editieren, und in der Sektion
<keybind key="Print">
<action name="Execute">
<command>/usr/local/bin/myscreenshot.sh</command>
</action>
</keybind>
<keybind key="S-Print">
<action name="Execute">
<command>/usr/local/bin/myscreenshot.sh -s</command>
</action>
</keybind>
Wir haben also jetzt die Taste „Druck“ bzw. „Print“ an unser Skript gebunden. Außerdem können wir mit Shift+Print auswählen, welches Fenster wir haben wollen. Leider wird die Tastenkombination nicht direkt aktiv, sondern erst nach dem Ab- und wie Anmelden. Abgelegt werden die Erstellten Screenshots im Home-Verzeichnis des jeweiligen Nutzers. Den Speicherort bzw. den Dateiname kann man im Skript jederzeit ändern.
Fragen oder Fehler bitte in die Kommentare 🙂