From 28e8bdf7f8286bd431b7f3b709e79f3827b31469 Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Wed, 24 Dec 2025 13:54:03 +0900 Subject: updates --- debian/.local/bin/webcam | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 debian/.local/bin/webcam (limited to 'debian/.local/bin/webcam') diff --git a/debian/.local/bin/webcam b/debian/.local/bin/webcam new file mode 100755 index 0000000..0a4a297 --- /dev/null +++ b/debian/.local/bin/webcam @@ -0,0 +1,48 @@ +#!/bin/sh + +case "$1" in +-h | h | hflip) flip="--vf=lavfi=hflip" ;; +-v | v | vflip) flip="--vf=lavfi=vflip" ;; +-hv | hv | hvflip) flip="--vf=lavfi=hflip,vflip" ;; +*) flip="" ;; +esac + +# Extract full camera names and their first /dev/video* device +cameras=$( + v4l2-ctl --list-devices | awk ' + BEGIN { RS=""; FS="\n" } + { + name = $1; + sub(/ \(.*$/, "", name); + gsub(/^[ \t]+|[ \t]+$/, "", name); + for (i=2; i<=NF; i++) { + if ($i ~ /\/dev\/video/) { + gsub(/^[ \t]+/, "", $i); + print name "|" $i; + break; + } + } + }' +) + +# Extract only camera names for dmenu +names=$(echo "$cameras" | cut -d '|' -f1) + +# Select camera with dmenu +choice=$(echo "$names" | dmenu -i -p 'Choose a camera:') + +# Find corresponding /dev/video* device +camera=$(echo "$cameras" | awk -F '|' -v sel="$choice" '$1 == sel {print $2}') + +# If no selection, exit +[ -z "$camera" ] && exit 1 + +mpv --untimed \ + --no-cache \ + --no-osc \ + --no-input-default-bindings \ + --profile=low-latency \ + --input-conf=/dev/null \ + --title=webcam \ + --x11-name=webcam \ + $flip "$camera" -- cgit v1.2.3