feat(capture): screen recording — menu start, bar-click stop (item 12)
All checks were successful
Check / eval (push) Successful in 2m56s
All checks were successful
Check / eval (push) Successful in 2m56s
nomarchy-record owns the lifecycle: start prefers wl-screenrec (VAAPI hardware encode) and falls back to wf-recorder if it dies at startup (the no-VAAPI case), stop SIGINTs so the file finalizes cleanly, and status feeds a self-gating Waybar ⏺ REC (alert red) whose click is the one stop surface — signal 8 pokes make it appear/vanish instantly. Capture gains Record region/screen (+ audio variants) and self-swaps to '■ Stop recording' while one runs. Parity: both summer whole-swap bars carry the same module. Recordings land in ~/Videos/Recordings with the screenshot timestamp naming (deviation from 'next to Screenshots': an .mp4 in Pictures felt wrong). V1: rendered bar config + CSS asserted, summer jsonc parse, recorder dry-run state machine correct (idle/active/usage exits), both recorders in home-path. Real capture needs a session → V3 queued (incl. the VAAPI-vs-fallback check on the AMD box). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -341,11 +341,23 @@ ${themeRows}
|
||||
fi ;;
|
||||
|
||||
capture)
|
||||
# Screenshots + screen recording. Recording rows self-swap: while
|
||||
# one runs, the only offer is Stop (same surface as the bar's ⏺).
|
||||
choice=$( {
|
||||
row "Region → clipboard" applets-screenshooter
|
||||
row "Region → file" applets-screenshooter
|
||||
row "Full screen → clipboard" camera-photo
|
||||
row "Full screen → file" camera-photo
|
||||
if command -v nomarchy-record >/dev/null 2>&1; then
|
||||
if nomarchy-record active; then
|
||||
row "■ Stop recording" media-playback-stop
|
||||
else
|
||||
row "Record region" media-record
|
||||
row "Record screen" media-record
|
||||
row "Record region + audio" audio-input-microphone
|
||||
row "Record screen + audio" audio-input-microphone
|
||||
fi
|
||||
fi
|
||||
back
|
||||
} | rofi -dmenu -show-icons -p Capture) || exit 0
|
||||
dir="$HOME/Pictures/Screenshots"
|
||||
@@ -358,6 +370,11 @@ ${themeRows}
|
||||
*"Full screen → clipboard"*) grim - | wl-copy ;;
|
||||
*"Full screen → file"*) mkdir -p "$dir"; grim "$file" \
|
||||
&& notify-send "Screenshot saved" "$file" ;;
|
||||
*"Stop recording"*) exec nomarchy-record stop ;;
|
||||
*"Record region + audio"*) exec nomarchy-record start region audio ;;
|
||||
*"Record screen + audio"*) exec nomarchy-record start screen audio ;;
|
||||
*"Record region"*) exec nomarchy-record start region ;;
|
||||
*"Record screen"*) exec nomarchy-record start screen ;;
|
||||
esac ;;
|
||||
|
||||
keybinds)
|
||||
|
||||
Reference in New Issue
Block a user