#!/bin/bash # omarchy:summary=Pick a webcam and start a screen recording with it # omarchy:examples=omarchy capture screenrecording-with-webcam set -o pipefail webcam_list() { v4l2-ctl --list-devices 2>/dev/null | while IFS= read -r line; do if [[ $line != $'\t'* && -n $line ]]; then local name="$line" local device IFS= read -r device || break device=$(tr -d '\t' <<<"$device" | head -1) [[ -n $device ]] && echo "$device $name" fi done } mapfile -t devices < <(webcam_list) if (( ${#devices[@]} == 0 )); then omarchy-notification-send "No webcam devices found" -u critical -t 3000 exit 1 fi if (( ${#devices[@]} == 1 )); then device="${devices[0]%%[[:space:]]*}" else selection=$(omarchy-menu-select "Select Webcam" "${devices[@]}" -- --width 520 --maxheight 520) || exit 1 device="${selection%%[[:space:]]*}" fi exec omarchy-capture-screenrecording \ --with-desktop-audio --with-microphone-audio \ --with-webcam --webcam-device="$device"