feat: CRT scanlines + editable Neo message lines + multi-screen sync fixes - #30
Merged
Conversation
- add characters field to options model and configure sheet - make glyph pool instance-level in renderer - deduplicate custom characters and fall back to full default set when empty - update README with new option
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- add CHANGELOG.md with history from all previous releases - use TriPSs/conventional-changelog-action in the prepare job to generate a new section from commits since the last tag - include CHANGELOG.md in the release branch commit Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- extract the current version's section from CHANGELOG.md - pass it to gh release create via --notes-file Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- supportedScalars returns union of default pool and active pool so custom glyphs (e.g. ATGC) are included in the glyph cache - resolveGlyphPool filters out whitespace, control, and non-grapheme scalars so invalid input fails gracefully instead of blank columns - sanitized() trims and deduplicates characters so storage, Equatable comparison, and rendering all use a canonical form - widen the Characters text field to ~24 M-widths so longer custom sets remain fully visible in the options sheet Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- add diacritic filter to sanitized() so persisted value matches rendered glyphs - cache supportedScalars before loop in makeNativeGlyphCaches to avoid repeated recomputation - preserve activeGlyphPool insertion order in supportedScalars instead of iterating a Set - align README Characters description with charactersDescription string Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
feat: add custom character set option
feat: add CHANGELOG and auto-update on release
- conventional-changelog-action defaults to v prefix - repo uses unprefixed tags (e.g. 0.0.9) - without tag-prefix: "" the action cannot find the previous tag and generates changelog from the wrong commit range Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
fix: set tag-prefix to empty string in changelog action
- add neoMessageLines field to MatrixScreenSaverOptions with persist/load/save - add Edit… button in options sheet opening a secondary lines editor sheet - editor uses NSTableView with drag-and-drop row reordering via grab handle - support add/remove/reset lines; 1–10 lines, max 256 chars each - pass custom lines through renderer config to NeoMessageScene.reset - keep four original lines as defaults Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- increase sync window to 10 s to tolerate slow-waking screens - sceneStartTime always targets the next 10-second boundary so no display fast-forwards past the start of the Neo scene - replace fraction-based blackout rounds with a fixed count of 10 so all screens finish the blackout at the same wall-clock time regardless of display width - keep cursor blinking after 'Call trans opt' finishes typing through the pause before 'Trace program: running' replaces it Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Changes - Add editable Neo message lines in the options sheet behind an `Edit…` button - Secondary editor sheet with `NSTableView`; drag handle (⠿) for reordering rows - Add / remove lines with +/− buttons; Reset to defaults - 1–10 lines, max 256 characters each; persisted via `ScreenSaverDefaults` - Increase sync window to 10 s so slow-waking screens join the same scene sequence - Fix Neo scene being skipped on late-activating screens: `sceneStartTime` now always targets the next 10-second boundary, eliminating fast-forward - Sync number scene blackout end across screens with different widths: fixed 10 blackout rounds regardless of column count - Keep cursor blinking on the `Call trans opt` line after typing completes, until the line is replaced
feat: add CRT scanlines effect with intensity slider - draw 1px dark stripes every 2px over the terminal area each frame - intensity controlled by a 0–100% slider in the options sheet (default 35%) - alpha maps directly to percentage: 100% = fully opaque - effect is skipped entirely when intensity is 0 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- add 'macOS Matrix Screen Saver' headline at top of sheet (left-aligned) - add 'About' link button that opens the GitHub repository Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- replace NSStackView+spacer with plain NSView container - pin title to leading, About button to trailing via explicit anchors - avoids constraint conflict with NSStackView edge insets Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- replace NSStackView+spacer with plain NSView container - pin title to leading, About button to trailing via explicit anchors - avoids constraint conflict with NSStackView edge insets Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges development into main.