A Matrix-style screensaver for macOS with a personalized intro sequence and real-time falling green characters.
- Personalized intro — "Wake up, <your name>..." typed with a blinking cursor, using your Mac username
- Authentic digital rain — Matrix-Code font with 57 custom glyphs, glowing white heads and fading green trails
- Frame-rate independent — wall-clock timing for the intro, delta-time for the rain. Consistent speed at any FPS
- Multi-display & adaptive — scales to any screen resolution across all connected displays
- Download
MatrixDigitalRain.saver.zipfrom Releases - Unzip and double-click
MatrixDigitalRain.saverto install - Select it in System Settings > Screen Saver
git clone https://github.com/cassmtnr/matrix-macos-screensaver.git
cd matrix-macos-screensaver
xcodebuild -project MatrixDigitalRain.xcodeproj \
-scheme MatrixDigitalRain \
-configuration Release \
-derivedDataPath build \
build
open build/Build/Products/Release/MatrixDigitalRain.saverRequires macOS 11.0+.
# Build
xcodebuild -project MatrixDigitalRain.xcodeproj \
-scheme MatrixDigitalRain -configuration Release \
-derivedDataPath build build
# Preview (Cmd+Q to quit)
swift preview.swift
swift preview.swift --duration 30
# Tests
xcodebuild -project MatrixDigitalRain.xcodeproj \
-scheme MatrixDigitalRain -configuration Debug test
# Generate preview GIF (requires ffmpeg)
swift generate_preview.swift --helpReleases are signed with a Developer ID Application certificate, notarized, and published manually from a local Mac. The short version:
./scripts/sign-and-notarize.sh
gh release create vX.Y.Z MatrixDigitalRain.saver.zip --generate-notesSee RELEASING.md for prerequisites (Developer ID cert, App Store Connect API key, notarytool keychain profile), step-by-step instructions, verification, and troubleshooting.
MatrixDigitalRain/
├── MatrixConfig.swift # All tunable constants
├── MatrixColumn.swift # Single falling column logic
├── IntroSequence.swift # "Wake up..." intro state machine
├── MatrixDigitalRainView.swift # Main ScreenSaverView subclass
├── Matrix-Code.ttf # Custom font (57 glyphs)
└── Info.plist
MIT
