removed any mention of Windows or MacOS support since there are no plans to support them

This commit was merged in pull request #6.
This commit is contained in:
2025-10-04 20:05:04 -05:00
committed by Jason Ross
parent 8549064c5b
commit f77f6dfc5d
2 changed files with 18 additions and 22 deletions
+10 -11
View File
@@ -59,8 +59,8 @@ The rewrite is in early stages. The original C codebase in `../legacy/` should b
The Rust rewrite should maintain the modular architecture of the original:
**Core modules to implement:**
- Gamma adjustment backends (DRM, RANDR, VidMode, Quartz, Windows GDI)
- Location providers (manual, GeoClue2, CoreLocation)
- Gamma adjustment backends (DRM, RANDR, VidMode)
- Location providers (manual, GeoClue2)
- Solar position calculations
- Color temperature to RGB conversion
- Configuration parsing
@@ -105,20 +105,19 @@ Follow standard Rust conventions:
## Platform Support
The original supports:
- **Linux:** DRM (TTY), RANDR (X11 multi-output), VidMode (X11 legacy)
- **macOS:** Quartz
- **Windows:** GDI
This rewrite targets Linux only:
- **DRM:** Direct Rendering Manager (TTY/framebuffer)
- **RANDR:** X11 RandR extension (multi-output support, preferred)
- **VidMode:** X11 VidMode extension (legacy, single output)
Each platform requires different system APIs for gamma manipulation. Conditional compilation via `cfg` attributes will be needed.
Each method requires different system APIs for gamma manipulation. Conditional compilation via `cfg` attributes will be needed for feature detection.
## Configuration
The original uses INI-format config files at:
- Linux/macOS: `~/.config/redshift.conf`
- Windows: `%USERPROFILE%\AppData\Local\redshift.conf`
Configuration files should be in INI format at:
- `~/.config/redshift.conf` (XDG standard location)
Maintain this format for compatibility.
Maintain this format for compatibility with the original.
## Testing Strategy
+8 -11
View File
@@ -90,26 +90,23 @@ src/
**Gamma Methods** ([gamma.rs](src/gamma.rs))
- Trait-based design for multiple adjustment methods
- Currently implements dummy method (prints temperature, no display changes)
- Ready for additional methods: DRM, RandR, VidMode, Quartz, WinGDI
- Ready for additional methods: DRM, RandR, VidMode
**Location Providers** ([location.rs](src/location.rs))
- Trait-based design for multiple location sources
- Currently implements manual provider (user-specified lat/lon)
- Ready for additional providers: GeoClue2, CoreLocation
- Ready for additional provider: GeoClue2
## Next Steps
To complete the rewrite, the following work remains:
1. **Real Gamma Methods** - Port platform-specific gamma adjustment methods:
- DRM (Linux TTY)
- RandR (X11, preferred)
- VidMode (X11, legacy)
- Quartz (macOS)
- WinGDI (Windows)
2. **Additional Location Providers** - Port automatic location detection:
- GeoClue2 (Linux)
- CoreLocation (macOS)
1. **Real Gamma Methods** - Port Linux gamma adjustment methods:
- DRM (Direct Rendering Manager for TTY/framebuffer)
- RandR (X11 RandR extension, preferred, multi-output)
- VidMode (X11 VidMode extension, legacy, single output)
2. **Additional Location Provider** - Port automatic location detection:
- GeoClue2 (Linux location service)
3. **Configuration File Support** - Parse and apply INI-style config files
4. **Signal Handling** - Respond to SIGUSR1 (toggle), SIGINT/SIGTERM (restore & exit)
5. **Hook Scripts** - Execute user scripts on period changes