Screenshots von WM/DM/Konsole: Unterschied zwischen den Versionen
Yehudi (Diskussion | Beiträge) (doppelte Überschrift entfernt) |
Itu (Diskussion | Beiträge) (das sollte schon verraten werden ........) |
||
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
<br/> | <br/> | ||
− | Ein Script um Screenshots vom Windowmanager, Displaymanager oder der Konsole zu erstellen | + | Ein Script um Screenshots vom Windowmanager, Displaymanager oder der Konsole zu erstellen. Eine Kurzversion des Scriptes mit Verwendung von Tastaturkomandos steht bei den [[Screenshots#Script für Screenshots|Screenshots]] |
<br/><br/> | <br/><br/> | ||
Das Script wird wie folgt aufgerufen: | Das Script wird wie folgt aufgerufen: | ||
<pre>/pfad/zu/x-shot [OPTIONEN]</pre> | <pre>/pfad/zu/x-shot [OPTIONEN]</pre> | ||
− | Optionen | + | ==Optionen== |
<pre>-d | --dir /home/user/screenshots | <pre>-d | --dir /home/user/screenshots | ||
Zeile 60: | Zeile 60: | ||
− | + | {{Box Installation|| | |
*'''import''' und '''convert''' (ImageMagick) | *'''import''' und '''convert''' (ImageMagick) | ||
*'''xwd''' | *'''xwd''' | ||
*'''fbgrab''' | *'''fbgrab''' | ||
+ | }} | ||
− | + | ==Script== | |
− | Script | ||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
Zeile 169: | Zeile 169: | ||
echo -e "No or unknown mode specified.\nExiting ..."; exit 1; | echo -e "No or unknown mode specified.\nExiting ..."; exit 1; | ||
esac; | esac; | ||
+ | |||
+ | echo | ||
+ | echo Screenshot saved as "${DIR}/${DATE}/${PREF}_${SCREEN}" | ||
+ | echo | ||
# End of file | # End of file | ||
</pre> | </pre> | ||
<br/><br/> | <br/><br/> | ||
− | + | ---- | |
[[Shellscripte|Zurück zu den Shellscripten]]<br/> | [[Shellscripte|Zurück zu den Shellscripten]]<br/> | ||
+ | [[Grafik|Zurück zur Grafik]] | ||
[[Kategorie:Scripte]] | [[Kategorie:Scripte]] | ||
+ | [[Kategorie:Grafik]] |
Aktuelle Version vom 9. Juni 2019, 16:32 Uhr
Ein Script um Screenshots vom Windowmanager, Displaymanager oder der Konsole zu erstellen. Eine Kurzversion des Scriptes mit Verwendung von Tastaturkomandos steht bei den Screenshots
Das Script wird wie folgt aufgerufen:
/pfad/zu/x-shot [OPTIONEN]
Optionen
-d | --dir /home/user/screenshots Pfad unter dem die Screenshots gespeichert werden. Ein Unterordner (Jahr-Monat-Tag - z.B. 2007-03-12) wird automatisch angelegt. -e | --ext [jpg | png | ...] Format des Bildschirmphotos. Grundsätzlich sollten alle Formate, die von ImageMagick (import / convert) unterstützt werden, erlaubt sein - getestet wurden aber nur jpg und png. Ausnahme: Modus console - da fbgrab nur PNGs ausgibt, wird das Format automatisch auf png gesetzt. -w | --wait <num> Verzögerung bis zur Aufname des Bildschirmphotos -q | --quality <num> Qualität des Bildschirmphotos. Von 0 = schlechteste bis 100 = beste Qualität. Je nach Qualität ändert sich natürlich auch die Größe der Bilddatei (hohe Qualität = große Datei | schlechte Qualität = kleine Datei). -m | --modus [screen | area | window | dm | console] Modus des Screenshots: console = Screenshot mit fbgrab aus der Konsole. dm = Screenshot des X-Servers mit xwd aus der Konsole. Um z.B. einen Screenshot von Displaymanager zu machen. area = Screenshot eines Bildschirm-Bereichs. Auswahlrechteck mit der Maus aufziehen. window = Screenshot eines Fensters. Auswahl mit Mausklick. screen = Screenshot des gesamten Bildschirms
Defaultwerte (wenn das Script ohne Parameter aufgerufen wird):
Verzeichnis: Homeverzeichnis (des jeweiligen Users)
Format: JPEG
Qualität: 75%
Verzögerung: Keine (0)
Modus: Kompletter Bildschirn (screen)
Folgende Pakete (inkl. eventueller Abhängigkeiten) müssen installiert sein: |
|
Script
#!/bin/sh ################################################################################ # Filename: /usr/local/bin/x-shot # Purpose: screenshot script # License: This file is licensed under the Creative Commons ################################################################################ ARGV="$@" PRGNAME=$(basename $0) DIR="${HOME}"; EXT="jpg"; # jpeg png WAIT="0"; QUALITY="75"; # 0-100 MODUS="screen"; # area window dm console MAGICK=`which import 2> /dev/null`; XWD=`which xwd 2> /dev/null`; FBGRAB=`which fbgrab 2> /dev/null`; SLEEP=`which sleep 2> /dev/null`; CHVT=`which chvt 2> /dev/null`; DATE=`date "+%Y-%m-%d"`; FILE=`date "+%Y%m%d_%H%M"`; ########################################################################## if [ $# -gt 0 ]; then set -- $ARGV; OPT="ext:,dir:,quality:,wait:,modus:"; TEMP=$(getopt --options=e:d:q:w:m: --long $OPT -n $PRGNAME -- "$@"); if [ $? -ne 0 ]; then echo "Exiting..." >&2; exit 100; fi; eval set -- "$TEMP"; while true; do case $1 in --ext|-e) if [ $MODUS == "console" ]; then EXT="png"; else EXT="$2"; fi; shift; ;; --dir|-d) DIR="$2"; shift; ;; --quality|-q) QUALITY="$2"; shift; ;; --wait|-w) WAIT="$2"; shift; ;; --modus|-m) MODUS="$2"; case $MODUS in area|window|screen) PREF="wm"; ;; dm) PREF="dm"; ;; console) PREF="console"; ;; esac; shift; ;; --) break;; *) echo "Unknow argument \"$1\"!"; exit 100;; esac; shift; done; fi; [ ! -d "${DIR}/${DATE}" ] && (mkdir -p "${DIR}/${DATE}" || (echo -e "Cannot create directory ${DIR}/${DATE}!\nExiting ..."; exit 1;)); if [ -e "${DIR}/${DATE}/${PREF}_${FILE}.${EXT}" ]; then x=0; while [ -e "${DIR}/${DATE}/${PREF}_${FILE}-$x.${EXT}" ]; do x=`expr $x + 1`; done; SCREEN="${FILE}-$x.${EXT}"; else SCREEN="${FILE}.${EXT}"; fi; case $MODUS in screen) if [ -z "$MAGICK" ]; then echo -e "import (ImageMagick) not found!\nExiting ..."; exit 1; else [ "$WAIT" -gt 0 ] && "$SLEEP" "$WAIT"; "$MAGICK" -quiet -silent -quality "$QUALITY" -window root "${DIR}/${DATE}/${PREF}_${SCREEN}"; fi; ;; area|window) if [ -z "$MAGICK" ]; then echo -e "import (ImageMagick) not found!\nExiting ..."; exit 1; else [ "$WAIT" -gt 0 ] && "$SLEEP" "$WAIT"; "$MAGICK" -quiet -silent -quality "$QUALITY" "${DIR}/${DATE}/${PREF}_${SCREEN}"; fi; ;; dm) if [ -z "$XWD" ]; then echo -e "xwd not found!\nExiting ..."; exit 1; else "$CHVT" 7; "$([ "$WAIT" -gt 0 ] && echo -n "$SLEEP $WAIT")"; XAUTHORITY="$(ps ax | grep '[-]auth' | awk '{print $NF}')"; "$XWD" -display :0 -root | convert - "$EXT":"${DIR}/${DATE}/${PREF}_${SCREEN}"; fi; ;; console) if [ -z "$XWD" ]; then echo -e "fbgrab not found!\nExiting ..."; exit 1; else "$FBGRAB" -s "$([ "$WAIT" -gt 0 ] && echo -n "$WAIT")" "${DIR}/${DATE}/${PREF}_${SCREEN}"; fi; ;; *) echo -e "No or unknown mode specified.\nExiting ..."; exit 1; esac; echo echo Screenshot saved as "${DIR}/${DATE}/${PREF}_${SCREEN}" echo # End of file