Skip to content

Conversation

@sassman
Copy link
Owner

@sassman sassman commented Dec 27, 2025

  • feat: using crossterm key events to intercept the screenshot trigger
  • feat: add countdown when t-rec starts, fix auto-skip countdown
  • feat: create a lazy logger, so that no empty log file flies around
  • chore: fix lints
  • fix: fix outdated convert command call in docblock
  • feat: use skylight as on-screen-display lib to show screenshot indicators
  • feat: restructure to Cargo workspace with modular crates

Signed-off-by: Sven Kanoldt <[email protected]>
…tors

- also restructure threading and messaging so that we can broadcast events between threads (e.g. screenshots)

Signed-off-by: Sven Kanoldt <[email protected]>
Enable cleaner architecture by splitting into workspace with skylight-osd crate for on-screen display functionality.
@sassman sassman force-pushed the feat/crossterm-input-interception branch from 0e1b555 to c9d0388 Compare December 27, 2025 23:56
- also add a README.md explaining a quickstart and the API and the examples
- fix glitch with one particular but random white border showing up

Signed-off-by: Sven Kanoldt <[email protected]>
Signed-off-by: Sven Kanoldt <[email protected]>
@sassman sassman force-pushed the feat/crossterm-input-interception branch from 0307c39 to dc85c53 Compare December 30, 2025 00:27
…se backend internals in the prelude module

Signed-off-by: Sven Kanoldt <[email protected]>
- Add layout module (Padding, Margin, Border, BoxModel)
- Add style module (Paint, TextStyle)
- Add background() and corner_radius() to OsdFlashBuilder
- Add examples: battery, equalizer, radar, sierpinski
- Fix canvas trait to use ref parameters
- Fix content bounds and center positioning
- Add a keyframe based API to the OsdWindowBuilder
  - interpolates numerical values of color and scale between the phases of keyframes
  - has change detection based on object order in the keyframe "drawing"
  - based on the the architecture at `.planning/osd-flash-animation-architecture.md` the documentation is on a module level at `crates/osd-flash/src/animation/mod.rs`
- Add a pulsing animation example (crates/osd-flash/examples/recording_indicator_pulse.rs)
- todo: there is a small flickering, so we explore if double buffering from CALayer might help us
Add `osd-flash-indicator` feature flag (enabled by default) that:
- Uses dual cfg guard (target_os + feature) for proper platform handling
- Falls back to NoopPresenter when disabled or on non-macOS
- Removes osd-flash from dependency tree when disabled

This provides a rollback strategy if OSD issues arise:
  cargo build --release --no-default-features

Also adds --no-default-features CI testing to verify rollback path.
@sassman sassman force-pushed the feat/crossterm-input-interception branch from ede5dd5 to 6f0d864 Compare January 8, 2026 23:39
…ngs for the core-animation examples

Signed-off-by: Sven Kanoldt <[email protected]>
- we are just about to overhaul osd-flash and simplify it greatly

Signed-off-by: Sven Kanoldt <[email protected]>
@sassman sassman force-pushed the feat/crossterm-input-interception branch from f4d7a9a to 98f3401 Compare January 11, 2026 08:46
Signed-off-by: Sven Kanoldt <[email protected]>
@sassman sassman force-pushed the feat/crossterm-input-interception branch from 98f3401 to e089d8d Compare January 11, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants