From 7ac840b7c068cd99067e42bf117668b3479b56c6 Mon Sep 17 00:00:00 2001 From: Laurent Ghigonis Date: Wed, 27 Mar 2013 14:52:16 +0100 Subject: add qvm-screenrecord, to record desktop in Qubes Dom0 and copy video to AppVM --- tools/qvm-screenrecord.sh | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 tools/qvm-screenrecord.sh (limited to 'tools') 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 + +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" -- cgit v1.2.3-59-g8ed1b