Remove mentions of Windows or MacOS support #6
+10
-11
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user