summary refs log tree commit diff
path: root/bin/hibiki
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2020-04-10 13:57:48 +0200
committerRobert Günzler <r@gnzler.io>2020-04-10 13:57:48 +0200
commit2292ee099d45843574541b7806a21e2f82c2bd1b (patch)
treec329afc1f87779c2f5c4942c4beb195e14f9844a /bin/hibiki
parent6b59e79946019b8ac9fcb25d85d9683cb90467cf (diff)
Add bin/hibiki/vncez and move wfez to bin/hibiki
Diffstat (limited to 'bin/hibiki')
-rwxr-xr-xbin/hibiki/vncez15
-rwxr-xr-xbin/hibiki/wfez38
2 files changed, 53 insertions, 0 deletions
diff --git a/bin/hibiki/vncez b/bin/hibiki/vncez
new file mode 100755
index 0000000..021c35b
--- /dev/null
+++ b/bin/hibiki/vncez
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+trap '{ pkill wshowkeys; pkill wayvnc; pkill remmina; }' EXIT
+
+echo "=> starting wshowkeys"
+swaymsg exec "wshowkeys -a bottom -a left -F 'Iosevka Sparkle 25' -t 1" >/dev/null
+echo "=> starting wayvnc"
+swaymsg exec "wayvnc 0.0.0.0 5500" >/dev/null
+echo "=> starting remmina"
+swx -g "1820,50 720x450" -b none -s -I "org.remmina.Remmina" remmina -c $HOME/.local/share/remmina/group_vnc_wayvnc_localhost-5500.remmina
+
+while true; do
+	sleep $((1024*1024))
+done
diff --git a/bin/hibiki/wfez b/bin/hibiki/wfez
new file mode 100755
index 0000000..d2f296c
--- /dev/null
+++ b/bin/hibiki/wfez
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# set -x
+
+output_file=${1:-"${HOME}/Videos/rec_$(now).mkv"}
+audio_output=${WF_AOUT:-alsa_output.pci-0000_00_1f.3.analog-stereo}
+audio_input=${WF_AIN:-alsa_input.pci-0000_00_1f.3.analog-stereo}
+video_output=${WF_VOUT:-DP-5}
+showkeys=${WF_KEYS}
+
+mux_sink=${WF_ASINK}
+if [ -z "${mux_sink}" ]; then
+	mux_sink=wf-mux
+	mux_sink_id=
+	output_loopback_id=
+	input_loopback_id=
+	prepare_mux_sink() {
+		mux_sink_id=$(pactl load-module module-null-sink sink_name="${mux_sink}")
+		output_loopback_id=$(pactl load-module module-loopback sink="${mux_sink}" source="${audio_output}.monitor")
+		input_loopback_id=$(pactl load-module module-loopback sink="${mux_sink}" source="${audio_input}")
+	}
+	teardown_mux_sink() {
+		pactl unload-module "${mux_sink_id}"
+		pactl unload-module "${output_loopback_id}"
+		pactl unload-module "${input_loopback_id}"
+	}
+	trap '{ teardown_mux_sink >/dev/null; }' EXIT
+	prepare_mux_sink >/dev/null
+fi
+
+if [ -n "${showkeys}" ]; then
+	echo "Starting wshowkeys on ${video_output}"
+	echo "WARNING: currently the -o flag to force display to a specific output is not implemented" >&2
+	sway exec "wshowkeys -a bottom -a left -F 'Iosevka Sparkle 25' -t 1 -o ${video_output}" >/dev/null
+	trap '{ pkill wshowkeys; }' EXIT
+fi
+
+wf-recorder -c h264_vaapi -d /dev/dri/renderD128 -o "${video_output}" -a "${mux_sink}.monitor" -f "${output_file}"