-
Notifications
You must be signed in to change notification settings - Fork 0
fun facts
"Capto" is a Latin verb meaning roughly "I take / seize / try to catch", which suits a screen recorder nicely. The project positions itself in the README as a spiritual successor to Captura, but it is an MIT-licensed clean-room implementation rather than a fork. The Latin reading is not stated anywhere in the repo, so it is a plausible gloss rather than a documented origin.
Both the CLI and the desktop app might naturally be called "capto", but they cannot be. Cargo would write two target/debug/capto.exe files, and Windows paths are case-insensitive, so Capto.exe and capto.exe would collide anyway. The CLI owns the capto name while the desktop crate is capto-app, and the installer places the CLI at cli\capto.exe rather than as a separate download. The whole reasoning is spelled out in docs/CLI.md.
The default recording hotkeys live in the Alt+F5 through Alt+F8 cluster. The choice is deliberate: Alt+F4 is reserved by Windows for closing windows, and the source comment notes that "F5-F8 is a compact cluster". A normalize_hotkeys step silently migrates older Ctrl+Shift defaults to the new cluster, so people upgrading don't have to reconfigure by hand. See crates/capto-hooks/src/lib.rs.
On August 12 the installer's PATH handling went through three consecutive commits: "Fix NSIS PATH hooks to never overwrite the user PATH on failed reads or empty values", "Fix NSIS IfErrors usage in PATH hooks to native NSIS syntax", then "Use EnVar NSIS plugin for PATH to survive long user PATH values." That last one matters, because the classic Windows PATH registry trick silently truncates when the value is too long. Capto chased this hard so its installer could set up the capto command without ever clobbering the user's existing PATH.
Inside the recording loop there is a deliberately noisy log line: if a single write to the FFmpeg process's stdin blocks for 250ms or more, Capto logs "slow ffmpeg write: capture outrunning encoder". It is profiling instrumentation that exists because users reported dropped frames, and it turned an intermittent symptom into a measurable threshold. It lives in crates/capto-core/src/session.rs.
- Lore for the full timeline behind these details
- Glossary for the terminology
- Design decisions for the rationale behind the choices