diff options
author | Laurent Ghigonis <laurent@p1sec.com> | 2013-03-27 14:52:16 +0100 |
---|---|---|
committer | Laurent Ghigonis <laurent@p1sec.com> | 2013-03-27 14:52:16 +0100 |
commit | 7ac840b7c068cd99067e42bf117668b3479b56c6 (patch) | |
tree | a2c1efa8d687f42e9ed2105e0b4200150984b046 /tools | |
parent | qvm-screenshot: small fixes (diff) | |
download | laurent-tools-7ac840b7c068cd99067e42bf117668b3479b56c6.tar.xz laurent-tools-7ac840b7c068cd99067e42bf117668b3479b56c6.zip |
add qvm-screenrecord, to record desktop in Qubes Dom0 and copy video to AppVM
Diffstat (limited to 'tools')
-rw-r--r-- | tools/qvm-screenrecord.sh | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tools/qvm-screenrecord.sh b/tools/qvm-screenrecord.sh new file mode 100644 index 0000000..a50440c --- /dev/null +++ b/tools/qvm-screenrecord.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +# Record desktop in Qubes Dom0 and copy video to AppVM +# If you want create a keyboard shortcut, use "konsole -e qvm-screenrecord.sh -n" +# Dependencies: recordmydesktop (sudo qubes-dom0-update recordmydesktop) +# 2013, Laurent Ghigonis <laurent@p1sec.com> + +DOM0_SHOTS_DIR=$HOME/shots +APPVM_SHOTS_DIR=/home/user/shots +QUBES_DOM0_APPVMS=/var/lib/qubes/appvms/ + +usage() { + echo "$program [-hn]" + echo -e "\t-n : after capturing, run nautilus in AppVM" +} + +program="`basename $0`" +mode_nautilus=0 +opts="$(getopt -o hn -n "$program" -- "$@")" +err=$? +eval set -- "$opts" +while true; do case $1 in + -h) usage; exit 1 ;; + -n) mode_nautilus=1; shift ;; + --) shift; break ;; +esac done +[[ $err -ne 0 ]] && usage && exit 1 + +mkdir -p $DOM0_SHOTS_DIR ||exit 1 +d=`date +"%Y%m%d-%H%M"` +tmpname=$d.ogv +echo "===================================" +echo "Hit Crtl-C to terminate the capture" +echo "===================================" +recordmydesktop --no-sound -o $DOM0_SHOTS_DIR/$tmpname $@ + +title=`kdialog --inputbox "Enter capture title" --title "$program"` +[[ X"$title" = X"" ]] && exit 1 +vidname=${d}_${title}.ogv + +echo "[-] saving $DOM0_SHOTS_DIR/$vidname" +mv $DOM0_SHOTS_DIR/$tmpname $DOM0_SHOTS_DIR/$vidname + +choice=`ls $QUBES_DOM0_APPVMS |sed 's/\([^ ]*\)/\1 \1/g'` +appvm=`kdialog --menu "Select destination AppVM" $choice --title "$program"` + +if [ X"$appvm" != X"" ]; then + if [ $mode_nautilus -eq 1 ]; then + echo "[-] running nautilus in AppVM" + qvm-run $appvm "nautilus $APPVM_SHOTS_DIR" + fi + + echo "[-] copy to AppVM $appvm" + qvm-run $appvm "mkdir -p $APPVM_SHOTS_DIR" + echo "[-] copying $APPVM_SHOTS_DIR/$vidname" + cat $DOM0_SHOTS_DIR/$vidname \ + |qvm-run --pass-io $appvm "cat > $APPVM_SHOTS_DIR/$vidname" +else + echo "no AppVM name provided" +fi + +echo "[*] done" |