Initial commit
This commit is contained in:
59
dm-recording/dm-recording.sh
Executable file
59
dm-recording/dm-recording.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
if ! hash dmenu 2>/dev/null; then
|
||||
notify-send "Error" "dmenu is not installed. Aborting."
|
||||
echo "dmenu is not installed."
|
||||
echo "Did you really try to run a dmenu utility without having dmenu installed?"
|
||||
echo "Aborting."
|
||||
exit 1
|
||||
fi
|
||||
if ! hash ffmpeg 2>/dev/null; then
|
||||
notify-send "Error" "ffmpeg is not installed.\n\nAborting."
|
||||
echo "ffmpeg is not installed."
|
||||
echo "Aborting."
|
||||
exit 1
|
||||
fi
|
||||
if ! ldconfig -p | grep libxcb >/dev/null; then
|
||||
notify-send "Error" "libxcb is not installed.\n\nffmepg requires libxcb for it's x11grab option.\n\nAborting."
|
||||
echo "libxcb is not installed."
|
||||
echo "ffmepg requires libxcb for it's x11grab option."
|
||||
echo "Aborting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
IFS=$'\n'
|
||||
options="Fullscreen\nSelection"
|
||||
choice=$(echo -e $options | sort | dmenu -p "Record" -i)
|
||||
|
||||
if [ -z $choice ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
case $choice in
|
||||
"Fullscreen")
|
||||
echo "Recording fullscreen"
|
||||
file=$(mktemp -u /tmp/recording_XXXXXX.mp4)
|
||||
notify-send --icon=panel/simplescreenrecorder-recording -t 900 'Recording starts' 'as soon as this notification closes'
|
||||
sleep 1
|
||||
ffmpeg -f x11grab -framerate 20 -video_size 1366x768 -i :0.0 $file
|
||||
notify-send --icon=panel/simplescreenrecorder-paused 'Recording stopped'
|
||||
ln -sf $file /tmp/recording_latest.mp4
|
||||
;;
|
||||
|
||||
"Selection")
|
||||
# need IFS = ' ' for read to be able to split the arguments
|
||||
IFS=$' '
|
||||
echo "Recording region"
|
||||
read -r x y w h <<< $(slop -f "%x %y %w %h" -q -l -c 0.3,0.4,0.6,0.4 )
|
||||
file=$(mktemp -u /tmp/recording_XXXXXX.mp4)
|
||||
notify-send --icon=panel/simplescreenrecorder-recording -t 900 'Recording starts' 'as soon as this notification closes'
|
||||
sleep 1
|
||||
ffmpeg -f x11grab -framerate 20 -show_region 1 -video_size "${w}x${h}" -i ":0.0+${x},${y}" $file
|
||||
notify-send --icon=panel/simplescreenrecorder-paused 'Recording stopped'
|
||||
ln -sf $file /tmp/recording_latest.mp4
|
||||
;;
|
||||
|
||||
*)
|
||||
exit
|
||||
;;
|
||||
|
||||
esac
|
||||
Reference in New Issue
Block a user