Commit Graph

2 Commits (447ee5467b0b9272de53fdd6c98620b2be3c1656)

Author SHA1 Message Date
Amir Alexander Abdelbaki e295910234 add photobooth.py: curses TUI rewrite of the live preview loop
Replaces per-frame fswebcam process spawns with a persistent OpenCV/v4l2
capture handle for the highest achievable refresh rate, while still
shelling out to ascii-image-converter for conversion and txt2printr.sh
for printing. Renders a bordered live preview with a status/keybind-help
bar via curses, works on a plain TTY with no graphical environment.

Reuses webcam.conf/ascii.conf/keybinds.conf, parsed as plain key=value
(not sourced, so a config file can no longer execute arbitrary code).
Brightness/exposure now go through v4l2-ctl with percentage mapped onto
each control's actual min/max range; added DEVICE/BRIGHTNESS_CTRL_ID/
EXPOSURE_CTRL_ID to webcam.conf and KEY_QUIT to keybinds.conf for this,
kept separate from the bash-oriented keys so the existing bash scripts
are unaffected. Bash scripts are left in place as a fallback.

New deps: python-opencv, v4l-utils.
2026-07-03 13:07:53 +02:00
Amir Alexander Abdelbaki ed7c0d0813 add live brightness/exposure controls and a webcam.conf config file
exec-cycle.sh's live preview now shows brightness/exposure and lets
+/-, ./, adjust them per-frame via fswebcam --set, with r to reset;
webcam.conf centralizes the starting values, step size, capture
resolution/quality, and the v4l2 control names (which vary by camera)
so hardware-specific tuning doesn't require editing the scripts.
2026-07-03 11:29:24 +02:00